- Hours counting (calendar style).
- Project management (Linking documents, following time left, members, task affectation, ...).
- Fully responsive, progressive app.
The repository uses npm & bash for automation.
The folders & files :
- client : Frontend code (Angular 2+).
- deployments : Deploy scripts examples, Docker images & workbench schema.
- requirements : The requirements of the App (Python pip). Two files : dev and prod.
- tasks : Automated bash tasks.
- config.py : App configuration. Only a dummy example.
- notification_config.py : Configuraton for email notifications.
- main.py : Entry point of the Python API.
To setup the project, you need the angular cli, Python 2, pip, and virtualenv.
virtualenv -p python2 venv
source venv/bin/activate
pip2 install -r requirements/dev.txt
cd client
npm install
This application uses MySQL. To develop localy, install docker and a Mysql image.
# Install docker
sudo apt-get install docker
# Pull the image
sudo docker pull mysql
# Start the local server
sudo docker run --name hours-count -p 3306:3306 -e MYSQL_ROOT_PASSWORD=localroot1234 -d mysql
# Install MySql Client
sudo apt-get install mysql-client
# Connect to DB
mysql -h 127.0.0.1 -u root -p
If you change the login and / or the passowrd, don't forget to update it in the config.py file.
From the root of the project :
Start the CLI dev server.
cd client
npm run watch
In another terminal :
source venv/bin/activate
python2 main.py
The repo contains an ansible script to create the MySQL database starting from a Ubuntu 17.04.
The command to start the script is :
ansible-playbook ansible/mysql-setup.yaml -i '<machine-ip>,' --extra-vars "mysql_toolbox_password=<password>"
The repo supplies a build.sh files in the tasks folder to generate a final folder with only the necessary dependencies.
Usage :
./tasks/build.sh user_api_login user_api_password user_api_secret user_api_host db_api_login db_api_password db_api_host