Home

Awesome

BillProcess

BillProcess is a full-stack app that lets different internal stakeholders efficiently process monthly customer bills. It is built with Ruby on Rails, PostgreSQL, and React/Redux.

Live demo found here! http://billprocess.herokuapp.com/

Alternatively, to run this app locally:

Features

Database Schema

Users (stakeholders)

column namedata typedetails
idintegernot null, primary key
namestringnot null, indexed, unique
emailstring
rolestringnot null
password_digeststringnot null
session_tokenstringnot null, indexed, unique

Implemented Roles: "Finance", "Customer Success", "Sales"

Customers

column namedata typedetails
idintegernot null, primary key
csm_idintegerforeign key (references users), indexed
namestring
billing_addressstring
billing_emailstring
monthly_api_limitinteger
overage_unit_costfloat
start_datedate
end_datedate
require_csm_approvalboolean

Usage

column namedata typedetails
idintegernot null, primary key
customer_idintegernot null, foreign key (references customers), indexed
monthinteger
yearinteger
api_usageinteger

Bill

column namedata typedetails
idintegernot null, primary key
customer_idintegernot null, foreign key (references customers), indexed
monthinteger
yearinteger
overage_unitsinteger
overage_unit_costinteger
overage_amountinteger
statusstring
created_atdatetime
updated_atdatetime

A bill's overage_unit cost by default will be a customer's overage_unit_cost, but could be altered for flexibility. Therefore, overage_unit_cost is stored in two models.

Bill Actions

column namedata typedetails
idintegernot null, primary key
bill_idintegernot null, foreign key (references bills), indexed
stakeholder_idintegernot null, foreign key (references users), indexed
actionstring
commentstring
created_atdatetimenot null
updated_atdatetimenot null

Routes

HTML API

JSON API

User

Session

Customer

Usage

Bill

Creating or updating a bill create BillActions which log the activity.

Frontend Routes

Future Implementation

Note: Currently an assumption is that either Sales or CustomerSuccess can approve a bill. Future implementation will ensure that a bill passes through a 2-step approval system if it needs to.

Screenshots

welcome