A todo app with authentication, shareable tasks and comments.
- Nodejs and TypeScript
- Express
- Graphql / Apollo + type-graphql
- mongoose + typegoose
- Jest
To run the app using Docker (Recommended) . In your terminal execute :
docker-compose up -d
To run the app without Docker. You need a mongodb instance running. change MONGO_URL in .env file and then execute :
npm run dev
Apollo playground will be available at http://localhost:4000/graphql.
-
Remember that when you login you get a jwt token. You need to provide that token with every request authorization header with this format:
{ "Authorization": "Bearer <token here>" }
-
If you're using docker. remember to stop containers after you finish.
docker-compose down
To run the tests. In your terminal execute :
npm test
Note that only optimal scenario is tested. with critical exceptions.
- Authenticate
- List all Tasks (own and shared by others)
- Get, edit and delete task
- Mark task as done
- Comment on task (owner and users shared with)
- share task with a user
- This app in not tested on production.
- More tests are needed.
- Graphql schema docs need to be improved.
- Graphql Response ( error messages and status ) need to be improved.
- Maybe something else... ¯\_(ツ)_/¯