E-Learning Platform Backend

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.

Express + Node.js
TypeScript
PostgreSQL
Resend Mail Service
Password Hashing
Filters and Pagination

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.