A modern, multi-tenant educational management platform that connects educators with students through interactive learning experiences. Built with Laravel, Livewire, and Filament for powerful admin capabilities.
- Multi-tenant Architecture - Separate instances for different educational institutions
- Subject & Lesson Management - Organize content by subjects with structured lessons
- Assignment System - Create, distribute, and grade assignments
- Video Lessons - Upload and stream educational videos with Cloudinary integration
- Progress Tracking - Monitor student progress and lesson completion
- Interactive Comments - Enable discussions on lessons and assignments
- Role-based Access Control - Students, Teachers, and Admins with appropriate permissions
- Client-based Isolation - Each educational institution operates independently
- Profile Management - Comprehensive user profiles with customization options
- Authentication System - Secure login/registration with email verification
- Filament Admin Panel - Modern, intuitive admin interface
- Grade & Classroom Management - Organize students into grades and classrooms
- Resource Management - Full CRUD operations for all educational entities
- Dual Admin System - Separate panels for super admins and client admins
- Responsive Design - Mobile-first approach with TailwindCSS
- Dark Mode Support - Toggle between light and dark themes
- Real-time Interactions - Powered by Livewire for seamless user experience
- Video Player Integration - Custom video player for educational content
- Modern UI Components - Flux UI design system for elegant interfaces
- Subscription Management - Laravel Cashier integration with Stripe
- Multi-tier Pricing - Flexible subscription plans for different institution sizes
- Secure Checkout - Integrated payment processing with subscription handling
- Billing Dashboard - Comprehensive subscription and billing management
- Backend: Laravel 12.20 with PHP 8.3+
- Frontend: Livewire 3.6 + TailwindCSS 4.0.7 + Flux UI 2.2.3
- Admin Panel: Filament 3.3.32
- Database: MySQL/PostgreSQL/SQLite compatible
- Payments: Laravel Cashier 15.7+ with Stripe integration
- File Storage: Cloudinary for video and media management
- Build Tools: Vite for asset compilation
- Code Quality: Laravel Pint 1.24 for formatting
- Testing: PHPUnit with comprehensive test suite
- PHP 8.3 or higher
- Composer
- Node.js & npm
- MySQL, PostgreSQL, or SQLite database
- Cloudinary account (for video uploads)
- Stripe account (for payment processing)
-
Clone the repository
git clone https://github.com/your-username/fahm.git cd fahm -
Install PHP dependencies
composer install
-
Install Node.js dependencies
npm install
-
Environment configuration
cp .env.example .env php artisan key:generate
-
Configure your
.envfileAPP_NAME=Fahm APP_URL=http://localhost:8000 DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=fahm DB_USERNAME=your_username DB_PASSWORD=your_password # Cloudinary Configuration CLOUDINARY_URL=cloudinary://api_key:api_secret@cloud_name # Stripe Configuration (for payments) STRIPE_KEY=pk_test_your_stripe_key STRIPE_SECRET=sk_test_your_stripe_secret STRIPE_WEBHOOK_SECRET=whsec_your_webhook_secret
-
Database setup
php artisan migrate php artisan db:seed
-
Build assets
npm run build # or for development npm run dev -
Start the development server
php artisan serve
# Start all development services concurrently
composer run dev
# This runs:
# - Laravel development server
# - Queue worker
# - Log monitoring (Pail)
# - Vite development server# Code formatting
./vendor/bin/pint
# Run tests
php artisan test
# Clear application cache
php artisan optimize:clear
# Generate IDE helper files
php artisan ide-helper:generate- Client: Multi-tenant entity representing educational institutions
- User: Students, Teachers, and Admins with role-based access (includes Stripe customer integration)
- Subject: Academic subjects within each client
- Lesson: Individual lessons with video content and materials
- Assignment: Tasks assigned to students with due dates and submissions
- Grade: Academic grade levels
- Classroom: Physical or virtual classrooms
- Comment: Interactive discussions on lessons and assignments
- Profile: Extended user information and preferences
- Multi-tenancy: Client-based data isolation
- Policy-based Authorization: Comprehensive permission system
- Trait Composition: Reusable functionality across models
- Livewire Components: Interactive frontend components
- Filament Resources: Admin panel CRUD operations
The application provides a web-based interface with the following key routes:
/- Landing page/pricing- Pricing information/features- Feature overview/about- About page/contact- Contact information/checkout/{product}/{plan}- Subscription checkout
/{client}.domain.com/- Client dashboard/{client}.domain.com/assignments- Assignment management/{client}.domain.com/lectures- Video lessons/{client}.domain.com/subjects- Subject overview
/admin- Super admin panel (Filament)/{client}.domain.com/admin- Client admin panel
- Subscription management integrated with user dashboard
- Stripe webhook handling for payment updates
- Billing dashboard for subscription overview
# Run all tests
php artisan test
# Run specific test suites
php artisan test --testsuite=Feature
php artisan test --testsuite=Unit
# Run with coverage
php artisan test --coverage- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow PSR-12 coding standards
- Use Laravel Pint for code formatting
- Write descriptive commit messages
- Add tests for new features
- All user inputs are validated and sanitized
- CSRF protection enabled for all forms
- Role-based access control implemented
- SQL injection prevention through Eloquent ORM
- XSS protection with proper output escaping
For security vulnerabilities, please email security@fahm.com.
This project is licensed under the MIT License - see the LICENSE file for details.
- Laravel - The PHP framework for web artisans
- Livewire - Full-stack framework for Laravel
- Filament - Admin panel and form builder
- Flux UI - Modern UI components for Livewire
- TailwindCSS - Utility-first CSS framework
- Laravel Cashier - Subscription billing integration
- Cloudinary - Cloud-based media management
- Stripe - Payment processing platform
- Documentation: docs.fahm.com
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: support@fahm.com
Built with β€οΈ for educators worldwide