Time tracking and invoicing you can host anywhere. Full export support in multiple formats and easily extensible.
This app is currently very unstable as I have just started coding it. Everything may, and probably will, change.
Want to get up and running quickly?
We create a default username and password with superuser access to get you started, please change it via the admin panel:
- Username:
admin
- Password:
changeme123
I've setup an instance on Heroku of Timestrap that resets every 10 minutes if you want to play with it. The username and password are set to the same as the Quickstart ones. If someone messes up the fun for everyone wait till the next reset or start your own Heroku instance.
For all systems you are going to need:
- Python 2.7, 3.4, 3.5, or 3.6
- Python virtualenv and pip packages
- The ability to compile Python native extensions
Once you have all of that you can run the following and move onto Testing and/or Running Timestrap:
virtualenv .venv
source .venv/bin/activate
pip install -r requirements.txt
You can install everything you need from apt.
sudo apt install build-essential python-dev virtualenv python-pip
Since we include psycopg2
for running on Heroku in the requirements.txt
for
now you will need the build-deps for that or you'll need to remove it from
requirements.txt
before installing them.
sudo apt build-dep psycopg2
I'm trying to push for 100% code coverage on this project! If you want to add or change something and test that everything still works you can do so easily with:
python manage.py test
If you push code to our primary repository we test for style adherence and code coverage. If you get a failed build to either of these we won't accept your code till it's fixed.
Always make sure you are in the virtual environment before running additional
commands by first running source .venv/bin/activate
. If you have already done
this from the previous step and have not left the environment continue on!
If you have not yet migrated your database do so by running:
python manage.py migrate
You'll need to create your first user too:
python manage.py createsuperuser
After this you can run Timestrap and access it from your browser at
localhost:8000
.
python manage.py runserver
Want to see how Timestrap would look after being used a while? Run fake
to
generate some data. Don't run this on a production database or you'll have to
do a lot of clean up.
python manage.py fake
To support email for things like password resetting you need to update Timestrap's settings. I will not presume your email situation and allow you to do this yourself by reading Django's documentation.
If you are using Heroku you can add sendgrid
to your apps addons on the
Heroku admin panel or by running:
heroku addons:create sendgrid
You then need to add these settings to timestrap/settings/heroku.py
:
EMAIL_HOST = 'smtp.sendgrid.net'
EMAIL_HOST_USER = os.environ.get('SENDGRID_USERNAME')
EMAIL_HOST_PASSWORD = os.environ.get('SENDGRID_PASSWORD')
EMAIL_PORT = 587
EMAIL_USE_TLS = True