Simple time management app written in Node and React
- Type some Markdown on the left
- See HTML in the right
- Magic
- Allows users to sign up and keep track of their daily activities
- Will mark a row red if the total amount of hours worked on that day is less then the desired workload specified during registration
- Allows USERS to edit their info and tasks, MANAGERS to edit user info, and ADMINS to edit everything
This project was developed with the following tools
- Node.js - Web server
- Express - awesome web-based text editor
- JWT - Authentication tokens
- Mongo - Document database
- Mongoose - Mongo middleware
- React - Front-end
- Bootstrap - Basic styling
| Folder | Description |
|---|---|
| / | project root |
| /db/seed.js | Initial user, admin and manager data |
| /web/src | ExpressJs app that serves the React app |
| /web/src/app/config/index.jsx | Configuration file |
| /api/src | ExpressJs api |
| /api/src/config/index.js | Configuration file |
| docker-compose.yml | Docker Componse environment definitions |
| Dockerfile-api | Container definitions |
| Dockerfile-web | Container definitions |
| Dockerfile-db | Container definitions |
| env | Environment variables used in the containers |
This approach requires Docker CE and Docker Compose V2.
From the root directory
$ docker-compose -f docker-compose.yml up -d
$ docker-compose exec db /bin/bash -r /home/seed.shThis approach requireds NodeJs v4+, bcrypt, webpack and a Mongodb instance up and running on 127.0.0.1:27017 (see api/src/config/index.js to edit URI and credentials)
Deploy the api
$ cd api/src
$ npm install bcrypt
$ npm installDeploy the web app
$ cd web/src
$ npm installUse webpack and npm to fire up local environment
Open your favorite Terminal and run these commands.
First Tab:
$ cd api/src
$ npm startSecond Tab:
$ cd web/src
$ webpack -wThird Tab:
$ cd web/src
$ npm startSeed Database:
$ cd db
$ ./mongo localhost:27017/timemanagement --quiet seed.jsAPI tests:
$ cd api/src
$ npm test- Write e2e Tests
- improve redux integration
MIT