Skip to content

JennifferLockwood/Goalboost

 
 

Repository files navigation

Goalboost

Goalboost is a time and billing application written using Python, Flask, and MongoDb. It is employee owned source, not open source -- see the license.

Getting Started.

You'll need Python 3 and MongoDb installed, as well as PIP3 if that doesn't come with your python3 distribution. Once you have these, follow these steps: Make sure the mongo service is running (mongod) To install the dependencies run "pip3 install -r /path/to/requirements.txt" (requirements.txt is in the source code folder root). Once you've done this you should be able to run the server in the source code root with the following command:

python3 manage.py runserver_debug

At this point you if all goes well you'll have a server running at http://localhost:5000. Because we're running mongo no datbase setup is needed other than to run the server -- collections will be created as we go along.

Hours

We keep track of our hours in docs/hours.json

Time and Billing App (Specification -- First Try)

Some Ideas / Competitors:

See also the time and billing section of this article re Bill4Time and Chrometa.

Concepts:

  • Team -- this is our customer's employees or associates, the folks doing the billing
  • People -- "Subclasses" (conceptually) are TeamPeople (aka Users) or ClientPeople. The difference will be modeled this way:
  • "userCredentials" will be none on non-users, or will contain userCredentials for users.
  • Client -- This is a company (or person) which we bill for services
  • Projects / Matters - a body of work that can be billed separately or used for tracking. Related to Clients / ClientPeople.
  • Timers (Description, plus 1-N dates and times. Second precision but may need rounding rules for invoices?)
  • "Billable" -- can be a project, a company, or a person.
  • Invoices, which consist of invoice lines and reference a billable.
  • InvoiceItem:
    • Is either a service or expense
    • Assumption for services is rate * hours = amount. May elect to show hours and rates on invoice or not.
    • Contains a description of task (timer description), a short service title (e.g senior partner, designer, paralegal, etc.)
    • Edit form contains simple checkbox to exclude or not, edit controls for everything else to adjust (hours etc.)
  • Rates:
    • Are either by Billable (client, project etc.) or by ServiceTitle (Senior Partner, Senior Partner Courtroom, etc.), or both.

About

An employee owned time tracking system

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • CSS 57.8%
  • HTML 27.5%
  • JavaScript 9.2%
  • Python 5.4%
  • Ruby 0.1%