ELearn

the backend Repo for eLearn, a graduation project for the Computer Science department at South Valley University.

Stars
1
Committers
5

ELearn

Table of Contents

About the Project

ELearn is a comprehensive educational platform that can be devided to 3 subsystems:

  • Learning Management System
  • Quizzing Systym
  • Communication System: Similar to a social media platform that contains both Community Forum and Chatting between system users

This project is developed as a graduation project for the Computer Science department at South Valley University.

Features

  • User Authentication and Authorization using ASP.NET Identity
  • Course Management
    • Creation, updating, and deletion of courses
    • Enrollment of users in courses
  • Quiz and Assignment Modules
    • Creation, updating, and deletion of quizzes and assignments
    • Submission and grading of assignments
  • Real-time Notifications with SignalR
  • Social Media-like Features
    • Posting announcements
    • Commenting on posts
  • File Upload and Management
  • Role-based Access Control

Getting Started

Prerequisites

Installation

  1. Clone the repository:

    git clone https://github.com/MohamedOsamaa74/ELearn.git
    cd ELearn
    
    
    
  2. Setup the backend:

  • Navigate to the backend project directory:

    cd ELearn.Api
    
  • Restore the NuGet packages:

    dotnet restore
    
  • Update the database:

    dotnet ef database update
    

Running the Application

  • Start the backend:

    dotnet run
    

Usage

Once the application is running, you can interact with the API using tools like Postman, swagger or through a frontend client. The API endpoints allow you to manage users, courses, assignments, quizzes, and more.

Project Structure

ELearn/
├── ELearn.Api/           # ASP.NET Core Web API project, Handles HTTP requests and responses.
├── ELearn.Application/   # Application layer, Contains the buisiness logic and helpers classes
├── ELearn.Domain/        # Domain entities
├── ELearn.InfraStructure/# Infrastructure and data access
└── README.md             # Project documentation

Technologies Used

Backend:

  • ASP.NET Core
  • Entity Framework Core
  • SQL Server
  • SignalR
  • ASP.NET Identity
  • JWT Authentication
  • Gmail SMTP
  • CSV Helper
  • FluentValidation
  • AutoMapper

Contact

Mohamed Osama - [email protected]

Contributers

This project exists thanks to all the people who contribute. A special thanks to our BackEnd Developers:

Project Link: https://github.com/MohamedOsamaa74/ELearn