- NodeJS (>=v14)
- MongoDB (Either install locally or using
docker-compose up -d
)
- ExpressJS backend
- Logging capabilities using winston
- Authentication using bcrypt and JWT
- Simple authorization (normal users and admin users)
- Users can register, login, edit profile and logout
- Admins can do all the above and also modify other users info
- Securely create admins via script
- Rate limiting to prevent DoS and Bruteforce
npm run build
npm start
- PORT - Server port
- MONGO_URI - MongoDB connection URI
- COMBINED_LOGFILE - File for combined logs
- ERROR_LOGFILE - File for error logs
- JWT_SECRET_KEY - JWT secret
To try out the endpoints you can install REST Client VSCode extension and send request from rest.http file
npm test
Server will be running on http://localhost:3000/