Skip to content

silassdev/crispy-sniffle

Repository files navigation

Laravel LMS Platform

Overview

A comprehensive Learning Management System built with Laravel, designed to facilitate online education through structured courses, progressive learning paths, and role-based access control. The platform supports multiple user roles (students, trainers, and administrators) with distinct capabilities and interfaces.

Core Features

Multi-Role Architecture

Students

  • Browse and enroll in public and premium courses
  • Track learning progress through chapter completion
  • Sequential chapter unlocking based on completion
  • View certificates upon course completion
  • Access personalized dashboard with analytics
  • Submit assignments and receive scores

Trainers

  • Create and manage courses with rich content
  • Upload PDF documents and videos per chapter
  • Set course visibility (public/private)
  • Manage course curriculum and chapter ordering
  • Track student enrollments and progress
  • Issue certificates to students
  • Monitor assignment submissions and scoring

Administrators

  • Full platform oversight and management
  • User role management
  • Content moderation capabilities
  • System analytics and reporting
  • Newsletter and community management

Course Management System

Course Creation

  • Rich text editing with Markdown support for detailed course descriptions
  • Course tagging for improved discoverability
  • Media attachments using Spatie Media Library
  • External resource integration (Zoom meetings, YouTube videos)
  • Public/private visibility controls
  • Automatic course ID and slug generation

Chapter System

  • Maximum 20 chapters per course
  • Sequential ordering with drag-and-drop functionality
  • PDF document and video attachments per chapter
  • Progressive unlocking mechanism
  • Completion tracking per student
  • Media management through Spatie Media Library

Course Discovery

  • Advanced search functionality across titles, descriptions, and tags
  • Multi-filter system (All, Public, Private, Recent)
  • Guest users see public courses; authenticated users access all
  • Featured courses on homepage with visual indicators
  • Responsive grid layouts for optimal viewing

Access Control & Progression

Course Access

  • Public courses: viewable by all, chapters unlocked upon enrollment
  • Private courses: require authentication and enrollment
  • Role-based permissions (trainers/admins bypass enrollment requirements)
  • Enrollment tracking through pivot table relationships

Chapter Progression

  • First chapter automatically unlocked upon enrollment
  • Subsequent chapters unlock when previous chapter is marked complete
  • Visual indicators: completed, unlocked, locked states
  • Prevents out-of-order completion
  • Tracks completion timestamps

Assessment & Certification

Assignments

  • Trainers create assignments linked to courses
  • Students submit assignments through the platform
  • Scoring and feedback system
  • Submission tracking and history

Certificates

  • Automated certificate generation upon course completion
  • PDF export functionality
  • Certificate verification system
  • Student certificate gallery

Dashboard System

Personalized Dashboards

  • Role-specific interfaces with tailored analytics
  • Real-time statistics and metrics
  • Quick access to relevant actions
  • AJAX-powered navigation for seamless UX

Analytics

  • Course enrollment trends
  • Student progress tracking
  • Assignment completion rates
  • Community engagement metrics

Community Features

  • Blog/post system with reactions and comments
  • Newsletter subscription management
  • User feedback collection
  • Job board for opportunities
  • Contact form for inquiries

Technical Architecture

Backend Stack

Framework & Core

  • Laravel 12.0 - PHP web application framework
  • PHP 8.2 - Server-side language
  • MySQL - Relational database management

Key Laravel Features

  • Eloquent ORM for database interactions
  • Blade templating engine for views
  • Route model binding for elegant URLs
  • Authorization policies for access control
  • Event-driven architecture
  • Queue system for background jobs

Major Dependencies

  • Livewire 3.6 - Full-stack framework for dynamic interfaces
  • Spatie Media Library 11.17 - File uploads and media management
  • Parsedown 1.7 - Markdown parsing for rich content
  • Laravel Socialite 5.23 - OAuth authentication
  • Laravel Breeze 2.3 - Authentication scaffolding

Frontend Stack

Styling & UI

  • Tailwind CSS - Utility-first CSS framework
  • Custom design system with slate/indigo color palette
  • Responsive grid layouts
  • Modern glassmorphism and shadow effects
  • Smooth transitions and micro-interactions

JavaScript

  • Vite - Frontend build tool
  • AJAX navigation for single-page feel
  • Dynamic content loading
  • Form interactions and validation

Database Schema

Core Tables

  • users - Multi-role user authentication
  • courses - Course metadata and content
  • chapters - Structured course content
  • chapter_completions - Progress tracking
  • course_user - Enrollment pivot table
  • assignments - Assessment system
  • posts - Community content
  • certificates - Achievement records

Media Management

  • media - Spatie Media Library integration
  • Supports multiple collections per model
  • File type validation and conversion
  • Automatic thumbnail generation

File Structure

MVC Organization

  • /app/Models - Eloquent models with relationships
  • /app/Http/Controllers - Request handling logic organized by role
  • /resources/views - Blade templates with component-based architecture
  • /routes - Separated by role (web, student, trainer, admin)

Component Architecture

  • Reusable Blade components for UI elements
  • Dynamic component rendering
  • Icon system with SVG components
  • Course card component with conditional rendering

Key Functionalities

Authentication & Authorization

  • Multi-role authentication system
  • Role-based middleware protection
  • Policy-based authorization for granular control
  • Session management
  • Password reset functionality

Content Management

Markdown Support

  • Course descriptions rendered from Markdown
  • Code syntax highlighting
  • Rich formatting options
  • Safe HTML rendering

Media Handling

  • Multiple file upload support
  • File type restrictions (PDF, MP4, MOG, MOV, AVI)
  • Size limitations (10MB for PDFs, 100MB for videos)
  • Automatic file organization
  • CDN-ready architecture

Search & Discovery

  • Full-text search across multiple fields
  • JSON tag searching
  • Filter persistence across pagination
  • Query parameter-based filtering
  • Results caching for performance

Progressive Learning

  • Chapter dependency system
  • Automatic unlocking logic
  • Completion validation
  • Progress persistence
  • Visual feedback on learning status

User Interface

Design Philosophy

  • Clean, modern aesthetic with focus on readability
  • Consistent spacing and typography
  • Accessible color contrast ratios
  • Mobile-first responsive design
  • Loading states and skeleton screens

Page Structure

Public Pages

  • Homepage with hero section and course showcase
  • Course catalog with search and filters
  • Individual course pages with enrollment CTAs
  • Blog/community posts
  • About, pricing, and contact pages

Authenticated Pages

  • Role-specific dashboards
  • Course management interfaces
  • Chapter progression views
  • Profile and settings
  • Certificate gallery

Navigation

  • AJAX-powered sidebar navigation
  • Breadcrumb trails for context
  • Conditional layout rendering (full vs partial)
  • Back-to-top functionality
  • Search overlay

Data Flow

Course Enrollment Process

  1. User browses course catalog
  2. Views course details and curriculum preview
  3. Clicks enroll button (authenticated students only)
  4. Enrollment record created in pivot table
  5. First chapter becomes accessible
  6. Dashboard updated with new course

Chapter Completion Flow

  1. Student accesses unlocked chapter
  2. Views content (video, PDF, text)
  3. Clicks "Mark Complete" button
  4. System validates: enrollment, unlock status, not already completed
  5. ChapterCompletion record created with timestamp
  6. Next chapter unlocks automatically
  7. Progress bar updates

Content Creation Workflow

  1. Trainer navigates to course creation
  2. Fills form with course details
  3. Adds tags, external links, media
  4. Sets visibility (public/private)
  5. Creates chapters with ordering
  6. Uploads chapter-specific media
  7. Publishes course
  8. Students can discover and enroll

Performance Considerations

  • Eager loading relationships to prevent N+1 queries
  • Database indexes on frequently queried columns
  • Pagination for large datasets (12-15 items per page)
  • AJAX loading to reduce full page reloads
  • Asset bundling and minification through Vite
  • Image optimization and lazy loading

Security Features

  • CSRF protection on all forms
  • SQL injection prevention through Eloquent
  • XSS protection via Blade escaping
  • Role-based access control
  • File upload validation
  • Secure password hashing

Scalability

  • Modular architecture for easy feature additions
  • Service layer pattern for complex business logic
  • Event/listener pattern for decoupled operations
  • Queue support for long-running tasks
  • Cache-ready architecture
  • API-ready structure for future mobile apps

About

Modern LMS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •