๐ 1. Overview
GGCourse is a modern course platform (Mini implementaion for platforms like Coursera and Udemy) built to serve both students and instructors seamlessly. It offers a simple, smooth experience from signing up to completing a course.
- ๐จโ๐ซ Instructors can create, structure, and publish courses.
- ๐จโ๐ Students can explore, enroll, and review top-rated courses based on filters and community feedback.
The platform empowers educators to share knowledge while enabling learners to achieve their goals effectively.
๐ 2. User Flow
๐จโ๐ Student
- ๐ Sign in to the platform
- ๐ Search for a course using filters or browse top-reviewed courses
- โ Enroll in the selected course
- ๐ Progress through lessons and sections
- ๐ Leave a review after completing the course
- ๐ The course is automatically marked as completed when all sections are done
๐จโ๐ซ Instructor
- ๐ Sign in to the platform
- ๐๏ธ Start building a course by creating lessons and organizing them into sections
- ๐ Publish the course when it's ready
- ๐ The course becomes visible to students in the search
โ๏ธ 3. Key Features
- ๐ JWT Authentication using Passport (NestJS strategy)
- โ๏ธ Role-Based Access Control (Student / Instructor)
- ๐ Pagination, Filtering, and Ordering on course listings
- ๐ Full-Text Search support for finding courses
- ๐ Rate Limiting to protect sensitive or high-traffic endpoints
- ๐ฆ RESTful API Design with standardized response formatting
- ๐งฉ Lesson-to-Section-to-Course Completion Cascade
- ๐๏ธ Enrollment Tracking with automatic course completion updates
- ๐ Course Review System allowing students to rate and review completed courses
๐งฐ 5. Tech Stack
- ๐ง Main Language: TypeScript
- ๐ Backend Framework: NestJS
- ๐ API Type: RESTful APIs
- ๐๏ธ Database & ORM: PostgresSQL + Prisma
- ๐ณ Containerization: Docker
- ๐งพ API Documentation: Swagger UI
๐ก 4. API Endpoints
You can explore the complete list of API endpoints for GGCourse via Swagger:
๐ก Ideas in mind:
- Improve auth strategies (oauth, ...etc)
- Implement email notifications for enrollment, course publishing, and completion.
- Utilizing caching to improve search and listing performance at scale.
