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.
- .NET Core
- Entity Framework Core
- SQL Server
- Swagger (Documentation)
- xUnit + FakeItEasy (Unit Testing)
- 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.
The project follows a Modular Monolith architecture, where each module is structured with N-Layered architecture.
Modules are decoupled and communicate asynchronously via an Event Bus.
