Skip to content

A robust, modular monolith e-learning platform built with .NET Core, designed to simulate core functionalities of Udemy.

Notifications You must be signed in to change notification settings

1AhmedGalal/Mini-Udemy

Repository files navigation

Mini-Udemy

A robust, modular monolith e-learning platform built with .NET Core, designed to simulate core functionalities of Udemy.

The platform supports key e-learning features including course creation and management, a payment system for purchasing courses, student reviews, and search capabilities. It also includes comprehensive admin controls to manage the system effectively.

Tech Stack

  • .NET Core
  • Entity Framework Core
  • SQL Server
  • Swagger (Documentation)
  • xUnit + FakeItEasy (Unit Testing)

Features

  • Course Management: Complete lifecycle management for courses and lectures, simulating Udemy's workflow. This includes admin approval for courses, instructor capabilities to update their content, and the ability to structure courses into lectures with attached files.
  • Enrollment & Access: Secure access control ensuring only enrolled students can access course files. Even if a course is deleted, enrolled students retain access. The system also tracks student progress and allows enrolled students to review courses.
  • Authentication: Implemented using JWT with Refresh Tokens and Role-Based Access Control.
  • Email Integration: Notifications handled via Resend.
  • Payments: Secure payment processing with Stripe.
  • Rate Limiting: API protection against abuse, specifically on authentication endpoints.
  • Caching: In-memory caching implemented for the course list with a 5-minute duration to improve performance.
  • Pagination: Implemented using PagedList, allowing clients to request paginated lists of courses, lectures, and other resources.

Architecture

The project follows a Modular Monolith architecture, where each module is structured with N-Layered architecture.

Modular Monolith Architecture

Modules are decoupled and communicate asynchronously via an Event Bus.

Single Module Structure

API Documentation

View API Documentation

About

A robust, modular monolith e-learning platform built with .NET Core, designed to simulate core functionalities of Udemy.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages