Important
- Filament Admin Authentication — Uses a dedicated
adminstable andadminguard. Seedocs/FILAMENT_ADMIN_AUTH.md. - Navigation Badges — Cached model counts in the sidebar. See
docs/FILAMENT_NAVIGATION_BADGE.md. - Badge Cache Key Fix — Explains the cache-key mismatch and the
BaseModel/BaseAuthModelsolution. Seedocs/FILAMENT_NAV_BADGE_CACHE_KEY.md. - Guarded Deletes — Prevents deleting records with active relations. See
docs/DELETE_ACTIVE_RELATIONS.md.
A Laravel-based Learning Management System featuring a student-facing course experience and a Filament-powered admin panel.
- 🎓 Browse courses, enroll, and track lesson progress
- ⚡ Livewire-driven interactive UI
- 🛠 Admin panel for managing courses, lessons, and instructors
Admin panel is available at /admin.
Follow these steps to get the project running locally.
git clone https://github.com/mahmoudmohamedramadan/course-hub course-hub
cd course-hubcp .env.example .env
php artisan key:generateThis project uses SQLite by default.
DB_CONNECTION=sqliteCreate the database file:
touch database/database.sqliteBackend:
composer installFrontend:
npm installphp artisan migrate --seedThis will:
- Create an admin user for Filament
- Seed demo LMS data (courses, lessons, etc.)
- Create a test student with pre-filled progress
For local development you need two processes: Laravel (HTTP) and Vite (asset bundling / hot reload).
1. Start Laravel (from the project root):
php artisan serveBy default the app is available at http://127.0.0.1:8000 (use the URL shown in the terminal if it differs).
2. Start Vite (in a second terminal, same directory):
npm run devKeep both terminals open while you work. For a production-style asset build instead of the dev server, use npm run build.
| Role | URL | Password | |
|---|---|---|---|
| Admin | /admin |
admin@admin.com |
password |
| Student | /login |
student@lms.test |
password |
The test student is:
- Enrolled in 3 courses
- Has completed 2 lessons per course
This helps you immediately verify:
- Progress tracking
- Lesson player behavior
- Dashboard state
- Laravel 13 — application backend
- Livewire — interactive UI without a separate SPA
- Filament — admin panel
- Tailwind CSS — styling
- Vite — frontend build tool and dev server
This project is open-sourced under the MIT license.