A personal project for Tutoring Schedule web-app backend using NodeJS, ExpressJS, MongoDB, and TypeScript.
The application uses JWT for secure authentication. Besides, to increase the security, all users have a distinct salt string adding to their password. All passwords are encrypted and stored in database.
Tutors can add their weekly schedule by adding their availability periods. And when students would like to see the availability, the server will divide the periods into 30-minute sessions for the schedule.
The code utilize pipeline MongoDB operations for reducing the runtime performance. Also, the database design implements 1-to-1, 1-to-many relationships.
The backend follows MVC design by separating model
, controller
, and route
.
Create a .env
file for enviroment variables with the format below:
CANVAS_DB_URI=""
ACCESS_TOKEN_SECRET=""
REFRESH_TOKEN_SECRET=""
PORT=5000
You need a MongoDB Atlas cluster to run the web app. The port number can be changed if you like.
Install all dependencies for the web-app
Run the web-app on the desired port (e.g. 500).
The API docs can be accessed at this page
I'm open for any contribution to this web-app, either improve the code quality, add more features, or a frontend. Please contact me at [email protected]