Skip to content

nishatayub/LearnSphere

Repository files navigation

πŸŽ“ LearnSphere

Empowering Education Through Technology

A Scalable, Role-Based Learning Management System
Built with ASP.NET Core MVC


ASP.NET Core C# Entity Framework


πŸ“– Table of Contents


πŸ“š Overview

LearnSphere is a full-stack, enterprise-grade Learning Management System designed to deliver structured, accessible, and engaging educational experiences. Built on ASP.NET Core MVC, LearnSphere combines robust backend architecture with intuitive user interfaces to serve students, instructors, and administrators.

This platform is engineered with clean architecture principles, ensuring scalability, maintainability, and securityβ€”making it suitable for real-world deployment in educational institutions, corporate training programs, and online learning platforms.

🌟 What Sets LearnSphere Apart

  • Industry-Standard Architecture – Follows separation of concerns and SOLID principles
  • Role-Based Access Control – Granular permissions for students, instructors, and administrators
  • Production-Ready Security – ASP.NET Core Identity with claims-based authorization
  • Scalable Design – Built to grow from startup to enterprise scale
  • Future-Proof Foundation – Structured for API integration and mobile expansion

🎯 Vision & Objectives

Our Mission

To create an accessible, scalable learning environment that empowers educators to deliver high-quality content and enables learners to achieve their educational goals efficiently.

Project Goals

Goal Description
πŸ—οΈ Scalability Build a system that grows with institutional needs
πŸ›‘οΈ Security Implement industry-standard authentication and authorization
πŸ“ Clean Code Maintain separation of concerns and testable architecture
🎨 User Experience Design intuitive interfaces for all user types
πŸ”„ Maintainability Enable easy updates, debugging, and feature additions
πŸš€ Future-Ready Prepare for API services and mobile integration

πŸ›οΈ System Architecture

LearnSphere implements a layered architecture that separates concerns and promotes maintainability:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         PRESENTATION LAYER (MVC)                β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚ Controllers β”‚ Razor Views β”‚ ViewModels  β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                      ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         APPLICATION LAYER                       β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚ Business Logic  β”‚ Service Interfaces      β”‚ β”‚
β”‚  β”‚ (Services)      β”‚ Data Transfer Objects   β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                      ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         DATA ACCESS LAYER                       β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚  Entities   β”‚  DbContext  β”‚ Repositoriesβ”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                      ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         INFRASTRUCTURE LAYER                    β”‚
β”‚  β€’ Authentication & Authorization               β”‚
β”‚  β€’ Logging & Error Handling                     β”‚
β”‚  β€’ External Services Integration                β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Architecture Benefits

βœ… Prevents "Fat Controllers" – Business logic resides in service layer
βœ… Enhances Testability – Each layer can be tested independently
βœ… Improves Readability – Clear separation makes codebase navigable
βœ… Enables Scalability – Easy to extend without breaking existing code
βœ… Facilitates Migration – Smooth transition to microservices if needed


πŸ‘₯ User Roles & Capabilities

πŸ‘€ Student Portal

Students access a personalized learning environment with comprehensive tools to manage their educational journey.

Feature Description
πŸ“ Account Management Self-service registration and profile management
πŸ” Course Discovery Browse catalog with advanced search and filters
πŸ“š Enrollment Enroll in courses with prerequisite validation
πŸ“Š Progress Tracking Real-time visualization of course completion
πŸ“₯ Resource Access Download course materials and supplementary content
πŸŽ“ Certification Receive verifiable certificates upon course completion

πŸ‘¨β€πŸ« Instructor Hub

Instructors receive powerful content management tools to create and deliver engaging courses.

Feature Description
βž• Course Creation Build structured courses with rich content
πŸ“€ Content Upload Add lessons, videos, PDFs, and interactive materials
πŸ‘₯ Enrollment Monitoring View and manage student enrollments
πŸ“ˆ Analytics Dashboard Track learner progress and engagement metrics
πŸ”„ Version Control Update content with course versioning system
βœ… Assessment Tools Create and manage course evaluations

πŸ›‘οΈ Administrator Console

Administrators maintain platform integrity with comprehensive oversight and control tools.

Feature Description
βœ”οΈ Content Moderation Review and approve instructor-submitted courses
πŸ‘€ User Management Manage accounts, roles, and permissions
πŸ“Š Platform Analytics Monitor system usage, enrollments, and trends
πŸ”’ Access Control Configure course visibility and availability
🚨 Reporting System Handle flags, disputes, and quality concerns
βš™οΈ System Configuration Manage platform settings and policies

✨ Feature Catalog

πŸ” Authentication & Security

  • ASP.NET Core Identity – Industry-standard user management
  • Role-Based Authorization – Granular access control by user type
  • Claims-Based Permissions – Fine-grained feature access
  • CSRF Protection – Anti-forgery tokens on all forms
  • Secure Password Hashing – Industry-standard encryption
  • Session Management – Secure token-based authentication

πŸ“š Course Management System

  • Multi-State Workflow – Draft β†’ Under Review β†’ Published lifecycle
  • Approval Pipeline – Administrative review before publication
  • Version Control – Non-breaking content updates
  • Categorization – Organize by subject, difficulty, and tags
  • Prerequisites – Define course dependencies
  • Rich Metadata – Descriptions, learning objectives, duration estimates

🧩 Lesson Framework

  • Hierarchical Structure – Organized modules and lessons
  • Multi-Format Support – Video, PDF, text, and interactive content
  • Secure File Handling – Validated uploads with size/type restrictions
  • Access Control – Role-based content visibility
  • Sequential Learning – Enforce lesson order when required
  • Embedded Media – Rich content presentation

πŸ“ˆ Progress & Analytics

  • Lesson Tracking – Individual lesson completion status
  • Course Progress – Percentage-based completion calculation
  • Time Investment – Track learner engagement duration
  • Completion Logic – Automated eligibility for certificates
  • Learner Dashboard – Visual progress indicators
  • Instructor Insights – Student performance overview

πŸ… Certification System

  • Automated Generation – Issue certificates upon completion
  • Unique Verification – Each certificate has a verification ID
  • Public Validation – Verify certificate authenticity online
  • Duplicate Prevention – One certificate per user per course
  • Professional Design – PDF certificates with branding
  • Permanent Records – Certificates stored indefinitely

πŸ”Ž Discovery & Search

  • Keyword Search – Find courses by title, description, or content
  • Advanced Filters – Category, difficulty, instructor, rating
  • Sorting Options – By popularity, date, rating, enrollment
  • Pagination – Efficient browsing of large catalogs
  • Responsive Results – Fast search with optimized queries

πŸ“Š Role-Specific Dashboards

Dashboard Key Metrics
Student Active courses, progress, upcoming deadlines, achievements
Instructor Course performance, enrollment stats, student engagement
Admin Platform activity, user growth, revenue, content quality

🎫 Support Ticket System

Comprehensive Student Support & Feedback Mechanism

Students can raise tickets for various concerns through an intuitive workflow:

Ticket Flow

1. Click "Raise Ticket" button
   ↓
2. Select Ticket Type from dropdown:
   β”œβ”€β”€ πŸ“ Feedback
   β”œβ”€β”€ 😞 Complaint
   β”œβ”€β”€ ❓ Doubt/Question
   β”œβ”€β”€ πŸ”§ Technical Issue
   └── ⚠️ Platform Issue
   ↓
3. Fill detailed description
   ↓
4. Submit & receive ticket ID
   ↓
5. Track status & receive responses

Ticket Categories

Category Purpose Assigned To
πŸ“ Feedback Course reviews, suggestions, improvement ideas Instructor + Admin
😞 Complaint Instructor behavior, course quality, unfair practices Admin
❓ Doubt/Question Academic doubts beyond course content Instructor
πŸ”§ Technical Issue Video not playing, download issues, broken links Support Team
⚠️ Platform Issue Login problems, enrollment bugs, payment issues Technical Team

Features

  • Priority Levels – Auto-assigned based on ticket type
  • Status Tracking – Open β†’ In Progress β†’ Resolved β†’ Closed
  • Response Timeline – SLA-based response times
  • Attachment Support – Upload screenshots for technical issues
  • Email Notifications – Updates on ticket status
  • Ticket History – View all previous tickets
  • Rating System – Rate support quality after resolution

Why This Matters:
Most LMS platforms have poor support systems. This dedicated ticketing flow ensures every student concern is tracked, prioritized, and resolved systematically.

πŸ† Peer Learning Reputation System

Turn Learners into Teachers, Build Real Communities

How Students Earn Reputation

Activity Points Verification
Explain Concepts +15 Upvoted by peers/instructor
Review Peer Assignments +10 Quality review verified
Help Debug Code +20 Solution marked as helpful
Answer Forum Questions +5 Answer accepted
Create Study Guides +30 Downloaded 10+ times
Mentor Juniors +25 Mentee completes milestone

Reputation Tiers

🌱 Novice        (0-50 points)    - Learning Phase
πŸ“š Contributor   (51-200 points)  - Active Helper
⭐ Expert       (201-500 points) - Recognized Authority
πŸŽ“ Mentor       (501-1000 points)- Community Leader
πŸ† Master       (1000+ points)   - Top 1% Contributors

Anti-Gaming Mechanisms

  • Diminishing Returns – Helping same person repeatedly gives fewer points
  • Quality Checks – AI + instructor review of explanations
  • Downvote System – Poor quality content reduces reputation
  • Time Investment – Points unlock only after peer engagement
  • Plagiarism Detection – Copied explanations flagged automatically

Employer-Visible Benefits

  • Reputation Badge on certificates
  • Skill Endorsements from peers
  • Public Profile showcasing contributions
  • Recommendation Letters auto-generated for top mentors

Why Most LMS Avoid This:
❌ Hard to prevent gaming
❌ Moderation overhead
❌ Fear of toxic competition

Why It's Powerful:
βœ… Learning-by-teaching solidifies knowledge
βœ… Builds vibrant learning communities
βœ… Demonstrates soft skills to recruiters
βœ… Reduces instructor support burden

πŸ“Š Skill Score System

Measure Competence, Not Just Completion

Beyond Course Completion Certificates

Traditional LMS issue certificates for watching videos. LearnSphere measures actual competence.

Skill Score Components

Total Skill Score (0-100)
β”œβ”€β”€ 40% - Project-Based Assessments
β”‚   └── Real-world tasks, not multiple choice
β”œβ”€β”€ 25% - Code Quality (for technical courses)
β”‚   └── Automated analysis of submitted code
β”œβ”€β”€ 20% - Peer Review Performance
β”‚   └── How well you explain concepts to others
β”œβ”€β”€ 10% - Time Efficiency
β”‚   └── Problem-solving speed
└── 5% - Consistency
    └── Regular practice over time

Skill Gap Analysis

After course completion, students see:

Skill Area Your Score Industry Standard Gap Analysis
API Design 72/100 80/100 πŸ“ˆ Practice REST principles
Database Optimization 45/100 75/100 ⚠️ Review indexing strategies
Authentication 88/100 70/100 βœ… Above average

Job-Readiness Indicator

🎯 Skill Score: 78/100
πŸ“Š Industry Benchmark: 75/100
βœ… Job Ready for: Junior Backend Developer
πŸ“ˆ Next Level: Senior Role (requires 85+)

Recommended Actions:
1. Complete "Advanced Database Design" module
2. Build 2 more portfolio projects
3. Contribute to open-source (reputation boost)

Why LMS Don't Have This:
❌ Hard to standardize across courses
❌ Requires subjective evaluation
❌ Instructors resist grading complexity

Why It's Powerful:
βœ… Recruiters trust competence scores over completion certificates
βœ… Students understand their exact gaps
βœ… Differentiates serious learners from passive viewers
βœ… Data-driven career guidance

🧠 Post-Course Memory Decay Prevention

Maintain Real Competence After Completion

The Forgetting Curve Problem

Research shows learners forget 70% of course content within 30 days without reinforcement. Most LMS stop caring after course completion. LearnSphere doesn't.

Spaced Repetition System

Course Completion
  ↓
+7 days  β†’ Quick Quiz (10 min) - Core concepts
  ↓
+30 days β†’ Skill Check (20 min) - Practical application
  ↓
+90 days β†’ Full Re-assessment (45 min) - Comprehensive test
  ↓
+180 days β†’ Project Challenge - Build something real

Forgotten Skill Detection

Adaptive Testing Algorithm:

  1. Identify Weak Areas – Questions you got wrong
  2. Re-test Periodically – Spaced intervals (7, 30, 90 days)
  3. Detect Skill Decay – Score drops below 70%
  4. Auto-suggest Refreshers – "You scored 55% on SQL Joins. Revisit Lesson 4?"

Refresher Micro-Courses

  • 5-10 minute modules reviewing key concepts
  • Interactive challenges not passive videos
  • Real-world scenarios not theoretical questions
  • Progress tracking shows retention improvement

Gamification for Long-Term Engagement

Streak Reward
30-day refresh streak πŸ”₯ "Consistent Learner" badge
90-day retention score >80% πŸ… "Knowledge Keeper" achievement
1-year active skill maintenance πŸ’Ž "Lifelong Learner" certification

Employer Integration

Certificate Validity Indicator:

John Doe - Full-Stack Development Certificate
Issued: Jan 2025
Last Verified: Nov 2025
Retention Score: 87% βœ… (Skills actively maintained)

vs.

Jane Smith - Full-Stack Development Certificate  
Issued: Jan 2024
Last Verified: Jan 2024
Retention Score: N/A ⚠️ (Skills may have decayed)

Recruiters can trust certificates with recent verification.

Why LMS Ignore This

❌ Engagement ends at course completion (revenue captured)
❌ Long-term tracking is complex
❌ Students resist "more tests"

Why It's Game-Changing

βœ… Maintains actual competence, not just credentials
βœ… Certificates stay valuable over time
βœ… Students build habits of continuous learning
βœ… Data shows who's truly job-ready vs. credential collectors
βœ… Instructors get feedback on content retention

Implementation Note:
This feature uses background jobs (Hangfire/Quartz) to schedule periodic assessments and email reminders.


🧠 Design Philosophy

LearnSphere was architected with real-world educational challenges in mind:

🎯 Problem-Solving Approach

Challenge Solution
Content Updates Break Progress Course versioning preserves learner continuity
Quality Control Multi-stage approval workflow ensures standards
Learner Dropouts Prerequisite system builds foundational knowledge
Engagement Metrics Comprehensive analytics inform content strategy
Scalability Limits Clean architecture supports horizontal scaling
Security Vulnerabilities Defense-in-depth security implementation

πŸ’‘ Design Principles

  • User-Centric Design – Interfaces designed for ease of use
  • Data-Driven Decisions – Analytics inform feature development
  • Fail-Safe Operations – Graceful error handling and recovery
  • Performance Optimization – Lazy loading and caching strategies
  • Accessibility – WCAG-compliant interfaces
  • Mobile-First Thinking – Responsive design throughout

πŸ› οΈ Technology Stack

Backend Framework

Technology Purpose
ASP.NET Core MVC Web application framework
C# 10+ Primary programming language
Entity Framework Core Object-relational mapper (ORM)
LINQ Data query and manipulation

Database

Supported Databases:
β”œβ”€β”€ SQL Server (Primary)
β”œβ”€β”€ PostgreSQL (Recommended for cloud)
└── MySQL (Community edition)

Configuration: Code-First Migrations

Frontend Technologies

  • Razor Views – Server-side templating engine
  • Bootstrap 5 – Responsive CSS framework
  • JavaScript (ES6+) – Client-side interactivity
  • AJAX – Asynchronous data operations

Development Practices

βœ… Dependency Injection (Built-in DI Container)
βœ… Repository Pattern (Data access abstraction)
βœ… Service Layer (Business logic separation)
βœ… Async/Await (Non-blocking operations)
βœ… Global Exception Handling (Centralized error management)
βœ… Structured Logging (Diagnostic tracking)
βœ… Model Validation (Data integrity)


πŸ—„οΈ Database Schema

Core Entities

User
β”œβ”€β”€ Id (PK)
β”œβ”€β”€ Email
β”œβ”€β”€ PasswordHash
β”œβ”€β”€ Role (FK β†’ Role)
└── Profile Information

Course
β”œβ”€β”€ Id (PK)
β”œβ”€β”€ Title
β”œβ”€β”€ Description
β”œβ”€β”€ InstructorId (FK β†’ User)
β”œβ”€β”€ CategoryId (FK β†’ Category)
β”œβ”€β”€ Status (Draft/Review/Published)
└── CurrentVersionId (FK β†’ CourseVersion)

CourseVersion
β”œβ”€β”€ Id (PK)
β”œβ”€β”€ CourseId (FK β†’ Course)
β”œβ”€β”€ VersionNumber
β”œβ”€β”€ PublishedDate
└── Changelog

Lesson
β”œβ”€β”€ Id (PK)
β”œβ”€β”€ CourseVersionId (FK β†’ CourseVersion)
β”œβ”€β”€ Title
β”œβ”€β”€ ContentType (Video/PDF/Text)
β”œβ”€β”€ ContentUrl
└── OrderIndex

Enrollment
β”œβ”€β”€ Id (PK)
β”œβ”€β”€ UserId (FK β†’ User)
β”œβ”€β”€ CourseId (FK β†’ Course)
β”œβ”€β”€ EnrolledDate
└── Status (Active/Completed/Dropped)

Progress
β”œβ”€β”€ Id (PK)
β”œβ”€β”€ EnrollmentId (FK β†’ Enrollment)
β”œβ”€β”€ LessonId (FK β†’ Lesson)
β”œβ”€β”€ CompletedDate
└── TimeSpent

Certificate
β”œβ”€β”€ Id (PK)
β”œβ”€β”€ UserId (FK β†’ User)
β”œβ”€β”€ CourseId (FK β†’ Course)
β”œβ”€β”€ VerificationId (Unique)
└── IssuedDate

Key Relationships

  • One-to-Many: Course β†’ Lessons, User β†’ Enrollments, User β†’ Tickets
  • Many-to-One: Enrollment β†’ CourseVersion (version locking), Ticket β†’ User
  • One-to-One: User + Course β†’ Certificate (uniqueness constraint)

Extended Entities (Innovation Features)

SupportTicket
β”œβ”€β”€ Id (PK)
β”œβ”€β”€ UserId (FK β†’ User)
β”œβ”€β”€ TicketType (Feedback/Complaint/Doubt/Technical/Platform)
β”œβ”€β”€ Subject
β”œβ”€β”€ Description
β”œβ”€β”€ Status (Open/InProgress/Resolved/Closed)
β”œβ”€β”€ Priority (Low/Medium/High/Critical)
β”œβ”€β”€ AssignedTo (FK β†’ User - Support/Instructor/Admin)
β”œβ”€β”€ CreatedDate
└── ResolvedDate

ReputationScore
β”œβ”€β”€ Id (PK)
β”œβ”€β”€ UserId (FK β†’ User)
β”œβ”€β”€ TotalPoints
β”œβ”€β”€ Tier (Novice/Contributor/Expert/Mentor/Master)
β”œβ”€β”€ ActivityLog (JSON - tracks point sources)
└── LastUpdated

SkillScore
β”œβ”€β”€ Id (PK)
β”œβ”€β”€ UserId (FK β†’ User)
β”œβ”€β”€ CourseId (FK β†’ Course)
β”œβ”€β”€ OverallScore (0-100)
β”œβ”€β”€ ProjectScore
β”œβ”€β”€ CodeQualityScore
β”œβ”€β”€ PeerReviewScore
β”œβ”€β”€ TimeEfficiencyScore
└── JobReadinessStatus

RetentionTest
β”œβ”€β”€ Id (PK)
β”œβ”€β”€ UserId (FK β†’ User)
β”œβ”€β”€ CourseId (FK β†’ Course)
β”œβ”€β”€ TestDate
β”œβ”€β”€ Score
β”œβ”€β”€ ScheduledDate (Next test)
└── DecayDetected (Boolean)

πŸš€ Getting Started

Prerequisites

Before you begin, ensure you have the following installed:

  • .NET SDK 6.0+ (Download)
  • SQL Server / PostgreSQL / MySQL
  • Visual Studio 2022 or VS Code with C# extension
  • Git (for version control)

Installation

1️⃣ Clone the Repository

git clone https://github.com/nishatayub/learnsphere-lms.git
cd learnsphere-lms

2️⃣ Restore Dependencies

dotnet restore

3️⃣ Configure Database Connection

Edit appsettings.json:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=localhost;Database=LearnSphereDB;Trusted_Connection=True;"
  }
}

4️⃣ Apply Database Migrations

dotnet ef database update

5️⃣ Run the Application

dotnet run

The application will be available at: https://localhost:5001

πŸŽ“ Seeding Test Data

To populate the database with sample data for testing:

dotnet run --seed

πŸ§ͺ Running Tests

dotnet test

πŸ§ͺ Testing Strategy

Test Coverage

  • βœ… Unit Tests – Service layer and business logic
  • βœ… Integration Tests – Repository and database operations
  • βœ… Manual Testing – UI workflows and edge cases

Key Test Scenarios

Category Test Cases
Authentication Login, registration, password reset, role assignment
Authorization Role restrictions, claim validation, unauthorized access
Enrollment Prerequisites, duplicate enrollment, course capacity
File Upload Type validation, size limits, malicious file detection
Progress Tracking Completion logic, percentage calculation, edge cases
Certification Generation, uniqueness, verification

πŸ—ΊοΈ Roadmap

πŸš€ Phase 1: Foundation (Complete)

  • βœ… Core MVC architecture
  • βœ… User authentication & authorization
  • βœ… Course and lesson management
  • βœ… Basic progress tracking

πŸ“ˆ Phase 2: Enhancement (In Progress)

  • πŸ”„ REST API development
  • πŸ”„ Advanced analytics dashboard
  • πŸ”„ Discussion forums
  • πŸ”„ Assignment submission system

🌟 Phase 3: Expansion (Planned)

  • πŸ“± Mobile application (iOS/Android)
  • πŸ”” Real-time notifications (SignalR)
  • πŸ€– AI-powered course recommendations
  • πŸ’³ Payment gateway integration
  • 🌍 Multi-language support (i18n)
  • ☁️ Cloud storage integration (Azure Blob/AWS S3)
  • πŸŽ₯ Live streaming capabilities
  • πŸ“Š Advanced reporting & export

πŸš€ Phase 4: Innovation Features (Competitive Differentiators)

  • 🎫 Support Ticket System – Multi-category student support workflow
  • πŸ† Peer Learning Reputation – Gamified community learning system
  • πŸ“Š Skill Score System – Competence measurement beyond completion
  • 🧠 Memory Decay Prevention – Spaced repetition & skill retention tracking
  • 🎯 Job Readiness Score – Industry benchmark comparison
  • 🀝 Peer Code Review – Collaborative learning assignments
  • πŸ“ˆ Dynamic Skill Gap Analysis – Personalized learning paths

πŸ“œ License

This project is licensed for educational and demonstration purposes.

Copyright Β© 2026 Nishat Ayub
All rights reserved.

This software is provided for educational purposes only.
Commercial use requires explicit permission.

πŸ‘¨β€πŸ’» About the Developer

Nishat Ayub

Aspiring Software Engineer | Backend & Full-Stack Developer

Passionate about building scalable, secure, and user-centric applications.
LearnSphere represents a commitment to clean code, thoughtful architecture, and real-world problem solving.

LinkedIn GitHub Portfolio


⭐ Project Highlights

This LMS is more than a projectβ€”it's a production-grade system demonstrating:

πŸ—οΈ Clean Architecture πŸ”’ Security Awareness
Scalable Design Backend Fundamentals

πŸ“Š Technical Achievements

  • 🎯 Separation of Concerns – Layered architecture prevents code coupling
  • πŸ” Defense-in-Depth Security – Multiple security layers protect data
  • πŸ“ˆ Optimized Performance – Efficient queries and caching strategies
  • πŸ§ͺ Testable Codebase – High code coverage with meaningful tests
  • πŸ“š Comprehensive Documentation – Self-documenting code with XML comments
  • 🎨 Professional UI/UX – Intuitive interfaces for all user types

🌟 Built with passion for education and technology 🌟

If you find this project valuable, please consider giving it a ⭐ on GitHub!


"Education is the most powerful weapon which you can use to change the world."
β€” Nelson Mandela

About

πŸŽ“ LearnSphere is a full-stack, enterprise-grade Learning Management System designed to deliver structured, accessible, and engaging educational experiences. Built on ASP.NET Core MVC, LearnSphere combines robust backend architecture with intuitive user interfaces to serve students, instructors, and administrators.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors