A comprehensive digital educational solution tailored specifically for ENSIASD Taroudant, built with Laravel and React. This platform facilitates meaningful connections between instructors and students through technology, creating an environment where educational content delivery, student engagement, and administrative oversight converge seamlessly.
The ENSIASD E-Learning Platform serves three distinct user communities:
- Students seeking flexible access to quality education
- Instructors requiring comprehensive tools for course delivery and student engagement
- Administrators managing institutional content and system oversight
- π Course Enrollment: Join courses using course codes or invite links
- π Rich Content Access: View chapters, documents, videos, links, and interactive content
- π Assignment Submission: Submit assignments with text and file uploads
- π§ Interactive Quizzes: Take assessments to test understanding
- π¬ Discussion Forums: Participate in course-specific discussions
- π’ Announcements: Stay updated with course announcements
- π Progress Tracking: Monitor grades and academic progress
- π¨ Course Creation: Design courses with titles, descriptions, images, and themes
- π Content Management: Organize courses into chapters with diverse resource types
- π Assignment Management: Create assignments with detailed instructions and due dates
- π§ͺ Quiz Builder: Develop assessments with various question types
- β Grading System: Review submissions and provide grades with feedback
- π Analytics Dashboard: View course statistics and student engagement metrics
- π₯ Student Management: Manage enrollments and track student progress
- π Website Management: Control public-facing content (Home, About, Contact, Publications)
- ποΈ Institutional Oversight: Manage platform-wide settings and content
- π System Analytics: Monitor platform usage and performance
- Framework: Laravel 12 (PHP 8.3+)
- Database: MySQL/PostgreSQL/SQLite
- Cache: Redis
- Storage: AWS S3 (configurable)
- Authentication: Laravel Sanctum
- API: Inertia.js for SPA experience
- Framework: React 19 with TypeScript
- Styling: Tailwind CSS 4
- UI Components: Radix UI primitives
- Rich Text Editor: TipTap
- Charts: Recharts
- Icons: Lucide React
- Animations: Framer Motion
- Build Tool: Vite
- Package Manager: Bun (recommended) / npm
- Code Quality: ESLint, Prettier
- Development Environment: Herd
- PHP 8.3 or higher
- Node.js 18+
- Composer
- Bun (recommended) or npm
- MySQL/PostgreSQL (or SQLite for development)
- Redis (optional but recommended)
-
Clone the repository
git clone https://github.com/elguarir/ensiasd-learning cd ensiasd-learning -
Install PHP dependencies
composer install
-
Install JavaScript dependencies
bun install # or npm install -
Environment configuration
cp .env.example .env php artisan key:generate
-
Configure your
.envfileDB_CONNECTION=sqlite DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=ensiasd_learning DB_USERNAME=your_username DB_PASSWORD=your_password # Redis (optional) REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 # File Storage (AWS S3 or local) FILESYSTEM_DISK=local # For S3: # AWS_ACCESS_KEY_ID=your_access_key # AWS_SECRET_ACCESS_KEY=your_secret_key # AWS_DEFAULT_REGION=us-east-1 # AWS_BUCKET=your_bucket_name
-
Database setup
php artisan migrate php artisan db:seed
-
Build frontend assets
bun run build # or for development bun run dev -
Start the development server
php artisan serve
-
Start the development servers
# Backend (Laravel) php artisan serve # Frontend (Vite) bun run dev
-
Database operations
# Run migrations php artisan migrate # Seed database php artisan db:seed # Reset database php artisan migrate:fresh --seed
- Optimize for production
composer install --optimize-autoloader --no-dev php artisan config:cache php artisan route:cache php artisan view:cache bun run build
ensiasd-learning/
βββ app/ # Laravel application code
β βββ Http/Controllers/ # Request handlers
β βββ Models/ # Eloquent models
β βββ Services/ # Business logic services
β βββ Traits/ # Reusable traits
βββ resources/
β βββ js/ # React frontend code
β β βββ components/ # React components
β β βββ pages/ # Inertia.js pages
β β βββ layouts/ # Layout components
β β βββ types/ # TypeScript definitions
β βββ css/ # Stylesheets
βββ database/
β βββ migrations/ # Database migrations
β βββ seeders/ # Database seeders
βββ routes/ # Application routes
βββ public/ # Public assets
config/database.php- Database connectionsconfig/filesystems.php- File storage configurationconfig/inertia.php- Inertia.js settingstailwind.config.js- Tailwind CSS configurationvite.config.mjs- Vite build configurationtsconfig.json- TypeScript configuration
Key environment variables to configure:
APP_NAME="ENSIASD E-Learning Platform"
APP_ENV=production
APP_DEBUG=false
APP_URL=https://your-domain.com
DB_CONNECTION=mysql
DB_HOST=your-db-host
DB_DATABASE=your-database
DB_USERNAME=your-username
DB_PASSWORD=your-password
MAIL_MAILER=smtp
MAIL_HOST=your-smtp-host
MAIL_PORT=587
MAIL_USERNAME=your-email
MAIL_PASSWORD=your-password
FILESYSTEM_DISK=s3
AWS_ACCESS_KEY_ID=your-access-key
AWS_SECRET_ACCESS_KEY=your-secret-key
AWS_DEFAULT_REGION=your-region
AWS_BUCKET=your-bucketDeveloped by:
- MOHAMED EL GUARIR
- MOHAMED EL HADDATI
- DOUNYA ZAHIDI
- BAHRI MALAK
Supervised by:
- M. Mohamed Saad AZIZI
For support and questions, please contact the development team or refer to the project documentation.
ENSIASD Taroudant - AnnΓ©e universitaire: 2024-2025