Skip to content

Latest commit

Β 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Online Learning Management System (LMS)

Internship Project for Codec Technologies
Complete Online Learning Platform & Administration Panel
A real-world, high-performance web application optimized for education & e-learning! ⚑
Covers Public Course Catalog, Interactive Student Player, Quizzes & PDF Certificates, Instructor Workspace, and Admin Moderation Console.
Tech Stack: Vue 3 (Composition API), TypeScript, Tailwind CSS v4, Pinia, Django REST Framework, PostgreSQL, Docker

Vue 3 TypeScript Tailwind CSS Django REST PostgreSQL Docker


🧠 Introduction

Developed as part of my internship with Codec Technologies, this project is a state-of-the-art, production-grade Online Learning Management System (LMS) designed with modern web standards, role-based workflows, and clean UI aesthetics.

It combines a seamless learning storefront & course player experience for students with a powerful workspace for instructors to build courses & quizzes, alongside an executive administrative back-office for course moderation, user management, and platform governance.


🌟 Key Platform Features

🌐 1. Public Website & Catalog

  • Dynamic Hero Banner Sliders: Glassmorphic, auto-transitioning sliders (changing every 5 seconds) loaded dynamically from backend settings.
  • Advanced Course Search & Filter: Real-time filtering by category, difficulty level (Beginner, Intermediate, Advanced), pricing (Free/Paid), and instant keyword search.
  • Detailed Course Overview: Interactive section curriculum preview, target learning outcomes, instructor cards with ratings, and instant enrollment.
  • Public Certificate Verification: Public URL (/certificate/verify/:id) to validate authentic, QR-stamped PDF certificates.
  • Instructor Directory: Dedicated teacher profiles detailing bio, profile avatar, statistics, and authored courses.

πŸŽ“ 2. Student Learning Hub (/student)

  • Executive Student Dashboard: Real-time metrics for active courses, total enrolled, completed courses, active hours, and earned certificates.
  • Interactive Course Learning Player:
    • Multi-Format Content: HTML text content viewer, YouTube/MP4 video player progress tracking, text-to-speech audio reader, and downloadable resources.
    • Automated Progress Tracking: Server-validated lesson completion criteria.
    • Private Notes System: Student-isolated per-lesson rich text notes (Create, Edit, Delete, Search).
    • Lesson Bookmarks: Instant lesson bookmarking for quick revision.
  • Interactive Quizzes:
    • Anti-Cheat Engine: Correct answer indices are masked on API responses until server-side submission evaluation.
    • Countdown timer, passing threshold checks, and instant score feedback.
  • Instant Certificate Generator: Dynamic QR-stamped PDF certificates generated via ReportLab upon 100% course completion.

πŸ‘¨β€πŸ« 3. Instructor Workspace (/teacher)

  • Instructor Dashboard: Real DB analytics on authored courses, draft status, enrolled student counts, and average quiz scores.
  • Course Builder: Step-by-step metadata configuration, section reordering, lesson content creation (Video, Text, Audio), and quiz creation.
  • Course Submission Workflow: Submit draft courses for administrative approval.
  • Student Monitoring: Monitor completion percentages of students enrolled across authored courses.

πŸ›‘οΈ 4. Admin Management Control Center (/admin)

  • Platform Analytics: Executive statistics on user growth, active courses, revenue, and certificates issued.
  • Course Moderation Queue: Review pending course drafts with single-click Approval or Rejection (with mandatory feedback reason).
  • User Account Management: Search, filter by role (STUDENT, TEACHER, ADMIN), and toggle Active/Deactivated account status.
  • Hero Slider Manager: Complete CRUD for homepage banner slides and global website settings.
  • Audit Logs: Immutable log of administrative events for security compliance.

πŸ”‘ Default Test Accounts

For evaluation and local testing, use these pre-seeded accounts (passwords initialized via python backend/manage.py seed_lms):

Role Email Address Password Portal Access
πŸ›‘οΈ Administrator admin@edunexus.lms admin123 Full Control Panel (/admin)
πŸ‘¨β€πŸ« Instructor 1 sarah.tech@edunexus.lms password123 Course Builder & Analytics (/teacher)
πŸ‘¨β€πŸ« Instructor 2 david.code@edunexus.lms password123 Authored Courses & Monitoring (/teacher)
πŸŽ“ Student 1 student1@edunexus.lms password123 Enrolled Courses & Player (/student)
πŸŽ“ Student 2 student2@edunexus.lms password123 Learning, Quizzes & Notes (/student)

πŸ› οΈ Tech Stack Breakdown

  • Frontend: Vue 3 (Composition API), TypeScript, Pinia, Vue Router, Tailwind CSS v4, Lucide Icons.
  • Backend: Python 3.10+, Django 5.0, Django REST Framework (DRF), SimpleJWT.
  • PDF & Certificate Engine: ReportLab, QRCode, Pillow.
  • Database: PostgreSQL 15 (Production) / SQLite (Zero-Config Local Dev).
  • DevOps & Tooling: Docker, Docker Compose, Vite.

πŸš€ How to Run the Project

πŸ“‹ System Prerequisites

  • Node.js v18+ & npm v9+
  • Python v3.10+
  • Git
  • (Optional) Docker & Docker Compose

πŸ’» Option 1: Local Development Setup (Recommended)

Step 1: Clone Repository

git clone https://github.com/CodeWithTanim/Online-Learning-Management-System.git
cd Online-Learning-Management-System

Step 2: Set Up Backend (Django API)

  1. Create and Activate Virtual Environment:

    • Windows (PowerShell):

      python -m venv venv
      .\venv\Scripts\Activate.ps1

      (If PowerShell blocks execution, run Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass first)

    • Windows (CMD):

      python -m venv venv
      venv\Scripts\activate.bat
    • macOS / Linux:

      python3 -m venv venv
      source venv/bin/activate
  2. Install Python Dependencies:

    pip install -r backend/requirements.txt
  3. Run Database Migrations:

    • Windows (PowerShell):
      $env:USE_SQLITE="True"; python backend/manage.py migrate
    • macOS / Linux / CMD:
      USE_SQLITE=True python backend/manage.py migrate
  4. Seed Database with Demo Data:

    • Windows (PowerShell):
      $env:USE_SQLITE="True"; python backend/manage.py seed_lms
    • macOS / Linux / CMD:
      USE_SQLITE=True python backend/manage.py seed_lms
  5. Start Django Server:

    • Windows (PowerShell):
      $env:USE_SQLITE="True"; python backend/manage.py runserver 0.0.0.0:8000
    • macOS / Linux / CMD:
      USE_SQLITE=True python backend/manage.py runserver 0.0.0.0:8000

    API will be live at http://127.0.0.1:8000/api/v1/.


Step 3: Set Up Frontend (Vue 3 + Vite)

Open a NEW terminal window and run:

cd frontend
npm install
npm run dev

Open your browser and navigate to http://localhost:5173.


🐳 Option 2: Docker Compose Setup (One Command)

# Build and launch all services with PostgreSQL
docker-compose up --build

Access the storefront at http://localhost:5173.


πŸ§ͺ Testing & Verifications

Run Backend Test Suite

# Windows PowerShell
$env:USE_SQLITE="True"; python backend/manage.py test apps.accounts

# Linux / macOS
USE_SQLITE=True python backend/manage.py test apps.accounts

Run Frontend TypeScript & Production Build

cd frontend
npm run build

πŸ—‚οΈ Project Structure

Online-Learning-Management-System/
β”œβ”€β”€ πŸ“ backend
β”‚   β”œβ”€β”€ πŸ“ apps
β”‚   β”‚   β”œβ”€β”€ πŸ“ accounts        # JWT Auth, User Roles, Profiles
β”‚   β”‚   β”œβ”€β”€ πŸ“ analytics       # Platform & Instructor Dashboards
β”‚   β”‚   β”œβ”€β”€ πŸ“ certificates    # PDF + QR Code Generation
β”‚   β”‚   β”œβ”€β”€ πŸ“ courses         # Course Catalog, Categories, Reviews
β”‚   β”‚   β”œβ”€β”€ πŸ“ lessons         # Video, Audio, Text Content
β”‚   β”‚   β”œβ”€β”€ πŸ“ notes           # Isolated Student Notes
β”‚   β”‚   β”œβ”€β”€ πŸ“ quizzes         # Anti-cheat Quiz Engine & Grading
β”‚   β”‚   └── πŸ“ website         # Hero Slider & Global Settings
β”‚   β”œβ”€β”€ πŸ“ config              # Django Core Configuration
β”‚   β”œβ”€β”€ πŸ“„ manage.py           # Django CLI
β”‚   β”œβ”€β”€ πŸ“„ requirements.txt    # Backend Dependencies
β”‚   └── πŸ“„ Dockerfile
β”œβ”€β”€ πŸ“ frontend
β”‚   β”œβ”€β”€ πŸ“ src
β”‚   β”‚   β”œβ”€β”€ πŸ“ components      # Reusable Vue Components
β”‚   β”‚   β”œβ”€β”€ πŸ“ layouts         # App Layouts (Student, Teacher, Admin)
β”‚   β”‚   β”œβ”€β”€ πŸ“ router          # Vue Router Guards & Maps
β”‚   β”‚   β”œβ”€β”€ πŸ“ stores          # Pinia State Management
β”‚   β”‚   └── πŸ“ views           # Vue Pages (Catalog, Player, Dashboards)
β”‚   β”œβ”€β”€ πŸ“„ package.json        # Frontend Dependencies
β”‚   β”œβ”€β”€ πŸ“„ vite.config.ts      # Vite Bundler Settings
β”‚   └── πŸ“„ Dockerfile
β”œβ”€β”€ πŸ“„ docker-compose.yml       # Docker Orchestration
β”œβ”€β”€ πŸ“„ .env.example             # Environment Configuration Template
└── πŸ“„ README.md                # Project Documentation

🌟 Key Learnings (Internship)

  • πŸ—οΈ Full-Stack Architecture – Built a modular Django REST API paired with Vue 3 Pinia stores and route guards.
  • πŸ“œ Dynamic PDF & QR Generation – Developed automated certificate generation using ReportLab & QRCode upon course completion.
  • πŸ” Anti-Cheat Engine Design – Implemented server-side quiz question masking to prevent client-side answer inspection.
  • πŸ›‘οΈ Role-Based Access Control (RBAC) – Designed permission decorators across Student, Instructor, and Admin roles.

✍️ Developer

MD SAMIUR RAHMAN TANIM
Intern at Codec Technologies
πŸ”— GitHub | LinkedIn


πŸ“œ Acknowledgments

  • Thanks to Codec Technologies for the internship opportunity.
  • Django REST Framework & Vue.js core development teams.
  • Open-source community for awesome tooling & badges.

🀝 Contribute

Pull requests are welcome! Feel free to fork the repository and submit PRs for any features or improvements.


πŸ“‘ Connect With Me:

Facebook Instagram YouTube

About

A full-stack, responsive, and secure Online Learning Management System (LMS) built with Vue 3 (Composition API, TypeScript, Pinia, Vue Router, Tailwind CSS) on the frontend and Python / Django REST Framework / PostgreSQL on the backend.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages