- NODEJS, Express, MongoDB, Node Mailer, REST API implementation
-
User Authentication with JWT tokens
-
Supports multiple login from different devices
-
User -> creation / deletion/ updates
-
User avator -> add / delete
-
Task -> add / update / delete / batch delete
-
Send Mail -> When new user is created or deleted
-
Image processing with Multer and sharp
-
Tested with JEST
-
Tool use to test APIs - POSTMAN
https://simple-task-planner-app.herokuapp.com
## API Documentation
url = http://localhost:3000
- API ->
{{url}}/users - Method -> POST
- data -> body [ type -> JSON]
{
"name": "Jhon Doe",
"email": "jhon@example.com",
"password": "password",
"age": 26
}- API:
/users/login - Method:
Post - body - JSON
{
email: 'jhon@example.com',
password: 'password'
}- API:
/users/logout - Method:
Post - Header -
'Authorization': 'Bearer token'
- API:
/users/logout-all - Method:
Post - Header -
'Authorization': 'Bearer token'
- API:
/users/me - Method:
Get - Header -
'Authorization': 'Bearer token'
- API:
/users/me - Method:
Patch - Header -
'Authorization': 'Bearer token' - Body - JSON
{
name: 'Jhon',
password: 'password',
age: 23,
email: 'jhon@example.com'
}- API:
/users - Method:
Delete - Header -
'Authorization': 'Bearer token'
- API:
/users/me/avator - Method:
Post - Header -
'Authorization': 'Bearer token' - Body - multipart formdata:
'avator': 'image file'
- API:
/users/me/avator - Method:
Delete - Header -
'Authorization': 'Bearer token'
- API:
/users/:userId/avator - Method:
Get
- API:
/tasks - Method:
Post - Header -
'Authorization': 'Bearer token' - Body - JSON
{
description: 'random tasks :0',
completed: false
}- API:
/tasks - Method:
Get - Header -
'Authorization': 'Bearer token'
- API:
/tasks/:id - Method:
Get - Header -
'Authorization': 'Bearer token'
- API:
/tasks/:id - Method:
Patch - Header -
'Authorization': 'Bearer token'
{
description: 'updated random tasks :p',
completed: true
}- API:
/tasks/:id - Method:
Delete - Header -
'Authorization': 'Bearer token'