E-Learning Platform Backend
RESTful API for users, courses (admin CRUD), and enrollments—built with Express.js + Node.js, PostgreSQL (Neon.tech), JWT auth, Resend emails; and deployed on AWS.
About this Project
• Express.js (Node.js): Chosen as the core backend framework due to its lightweight, non-blocking I/O model and strong ecosystem. Express enables rapid development of scalable REST APIs with middleware flexibility.
• PostgreSQL (Neon.tech Serverless): Used as the primary database for persisting user, course, and enrollment data. Neon.tech’s serverless PostgreSQL provides auto-scaling, reliability, and managed storage without the overhead of traditional DB management.
• JWT Authentication: Secure role-based authentication (user, admin) is implemented using JSON Web Tokens, ensuring safe user sessions and access control.
• Course Management (CRUD): Admins have full control over course lifecycle management — create, update, delete, and retrieve courses. Implemented with optimized database queries to handle scale.
• User Registration & Profile Management: APIs for user onboarding, login, and profile updates. Includes validation, password hashing, and structured error handling.
• Course Enrollment: Users can seamlessly enroll in available courses. The system enforces access rules and ensures referential integrity between users and courses.
• Filters & Pagination: Implemented efficient pagination and filtering mechanisms, reducing unnecessary DB load and enabling smooth navigation of large course catalogs.
• Email Communication (Resend.com): Integrated with Resend.com for transactional emails (welcome emails, enrollment confirmations).
• Error Handling & Logging: Centralized error-handling middleware and structured logging were implemented for easier debugging and monitoring in production environments.
• AWS Deployment: The backend was deployed to AWS EC2 instances in Docker containers. Nginx is configured as a reverse proxy to handle incoming requests securely.