Skip to content
Rails API invoicing system for home health staffing agencies
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.

Turbo Invoice API

Build Status Code Climate

Turbo Invoice API is an open source project to provide an invoicing tool for home health staffing agencies. Home health clinicians make visits in patients' homes, then use this tool to submit information regarding those visits so they can get paid by the staffing agency.

This project is a Rails API, so you won't find views in this project. A compatible Angular frontend is in development and will be posted in this README.




  • Ruby 2.5.3
  • Postgresql 10.0

Preparing a Development Environment

Install Postgres

brew install postgresql

Start Postgres

brew services start postgresql

Create database user

createuser -s foo

Log into Postgres instance


Create development database

CREATE DATABASE turbo_invoice_backend_development;

Log out of Postgres



Clone the repo

git clone

Enter the directory. cd into the directory:

cd turbo-invoice-api

Linux or Mac

Set up your environment:

bundle exec bin/setup
bundle install

Manual or Windows

Install dependencies:

bundle install

Migrate, Seed, and Initialize

Run migrations. See Active Record Migrations for more info.

rails db:migrate

Seed the app

rails db:seed

Initialize the app

rails s
bundle exec rails server



rspec spec/models

rspec spec/controllers


Open http://localhost:3000/api/v1/disciplines to test the application is working. If you see an empty array, the database has not been seeded properly. Otherwise, you should see the entire list of disciplines.

API Endpoints

API endpoints are easily accessible since token authentication has not been configured on the master branch.






See a specific visit


Visit Types





Who uses this application?

This application is used by home health staffing agencies.

What is a home health staffing agency?

A home health staffing agency provides credentialed, qualified clinicians to home health agencies (note distinction).

What is a home health agency?

A home health agency is a state-licensed entity that oversees treatment of patients in their homes as opposed to a hospital or clinical setting. The employ their own staff but often employ the services of a home health staffing agency, which provides contract staff, like PT's, OT's, SLP's, RN's, PTA's, and COTA's.

Who are the users?

A user is a clinician. Clinicians for home health staffing agencies typically include:

  • Physical Therapists (PT)
  • Occupational Therapists (OT)
  • Speech-Language Pathologists (SLP)
  • Registered Nurses (RN)
  • Physical Therapist Assistants (PTA)
  • Certified Occupational Therapy Assistants (COTA)

An admin user, which is not configured as a role in the application yet, is a person with permission to export data so that the data can be compared to the records of home health agency partners.

What are all these other models for?

User - A clinician with permissions to create visits based on the visits they make to patients' homes.

Agency - A home health agency or other referral source partnered with the home health staffing agency.

Clearance - A record that specifies an active, working relationship between a home health agency and a contracted clinician from the home health staffing agency.

Contract - A record holding information regarding the home health staffing agency's contract with the home health agency.

Discipline - A designation indicating both the type of services a patient needs and the clinical specialization of the clinician (user) treating the patient.

Patient - A patient treated by a clinician (user) and whose treatment is overseen by an agency. Note: Authentication is not configured on the master branch. Do not deploy applications in production with patient data (PII) unless authentication, authorization, and HIPAA-compliant security protocols have been installed.

VisitType - A record indicating the nature of the treatment during the visit in the patient's home. Example: An admission visit is time intensive and occurs at the start of a treatment plan, while a discharge visit is less time intensive and occurs at the end of the treatment plan.

Rate - A record describing the agreement between the home health staffing agency and the clinician (user) for a specific visit type. Example: Dr. Tim Smith is paid $100 per visit for visits where the visit type is an admission visit.

Visit - The central record of this application. Describes the date, time of treatment, clinician (user) who treated the patient, agency overseeing the visit, visit type, and patient being treated.

AgencyRate - A record describing the relationship between the home health staffing agency and the home health agency for a specific visit type. Home health staffing agencies profit from on the margins between instances of AgencyRates and Rates.

You can’t perform that action at this time.