GitHub - Amar-Dev1/GGCourse: A Scalable System for GGCourse , a mini platform inspired by Coursera and Udemy

๐Ÿ“Œ 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

  1. ๐Ÿ” Sign in to the platform
  2. ๐Ÿ” Search for a course using filters or browse top-reviewed courses
  3. โœ… Enroll in the selected course
  4. ๐Ÿ“˜ Progress through lessons and sections
  5. ๐Ÿ“ Leave a review after completing the course
  6. ๐Ÿ The course is automatically marked as completed when all sections are done

๐Ÿ‘จโ€๐Ÿซ Instructor

  1. ๐Ÿ” Sign in to the platform
  2. ๐Ÿ—๏ธ Start building a course by creating lessons and organizing them into sections
  3. ๐Ÿš€ Publish the course when it's ready
  4. ๐Ÿ”Ž 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:


API

๐Ÿ’ก 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.