Allow users to register by providing necessary details such as name, email, and password. Implement validation for email uniqueness and password strength.
Enable users to view and update their profile information, including name, email, and password.
Provide an API endpoint to fetch courses available on the platform. Implement filtering options based on parameters such as category, level, popularity, etc. Enable pagination to handle large datasets efficiently.
Implement Create, Read, Update, and Delete operations for courses. Only superadmin users should have permission to perform these operations.
Allow users to enroll in courses they are interested in. Implement validation to ensure users can't enroll in the same course multiple times.
Provide an API endpoint for users to view the courses they have enrolled in.
Implement filtering options for the courses API to enable users to refine their search based on criteria such as category, level, etc. Enable pagination to limit the number of results returned per request and improve performance when dealing with large datasets.
Utilize the free tier of neon.tech database for storing user information, course details, and enrollment data.
Integrate with resend.com's free tier for handling email communications, such as user registration confirmation, password reset requests, and course enrollment notifications.
Implement secure authentication mechanisms, such as JWT (JSON Web Tokens), to authenticate users for accessing protected endpoints.
Ensure sensitive data, such as passwords, is securely hashed before storage in the database.
Implement robust error handling mechanisms to provide meaningful error messages to clients.
Utilize logging to track API requests, responses, and any potential errors or exceptions for debugging purposes.
- PGHOST: [Insert value for PGHOST here] example - ......55zj.ap-southeast-1.aws.neon.tech
- PGDATABASE: eLearning
- PGUSER: eLearning_owner
- PGPASSWORD: [Insert value for PGPASSWORD here] example - ep-rapid-base-a
- ENDPOINT_ID: ep-rapid-base-[Insert additional details for ENDPOINT_ID here]
- JWT_SECRET: [Insert value for JWT_SECRET here]
- RE_SEND_API_KEY: re-[Insert value for RE_SEND_API_KEY here]