- Initialize a new Node.js project
- Add Express, jsonwebtoken, mongoose to it as a dependency
- Create index.js
- Add route skeleton for user login, signup, purchase a course, sees all courses, sees the purchased courses course
- Add routes for admin login, admin signup, create a course, delete a course, add course content.
- Define the schema for User, Admin, Course, Purchase
- Add a database (mongodb), use dotenv to store the database connection string
- Add middlewares for user and admin auth
- Complete the routes for user login, signup, purchase a course, see course (Extra points - Use express routing to better structure your routes)
- Create the frontend
Good to haves
- Use cookies instead of JWT for auth
- Add a rate limiting middleware
- Frontend in ejs (low pri)
- Frontend in React