Skip to content

elguarir/ensiasd-learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

76 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ENSIASD E-Learning Platform

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.

🎯 Overview

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

✨ Key Features

For Students

  • πŸ“š 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

For Instructors

  • 🎨 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

For Administrators

  • 🌐 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

πŸ› οΈ Technology Stack

Backend

  • 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

Frontend

  • 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

Development Tools

  • Build Tool: Vite
  • Package Manager: Bun (recommended) / npm
  • Code Quality: ESLint, Prettier
  • Development Environment: Herd

πŸš€ Installation

Prerequisites

  • PHP 8.3 or higher
  • Node.js 18+
  • Composer
  • Bun (recommended) or npm
  • MySQL/PostgreSQL (or SQLite for development)
  • Redis (optional but recommended)

Setup Instructions

  1. Clone the repository

    git clone https://github.com/elguarir/ensiasd-learning
    cd ensiasd-learning
  2. Install PHP dependencies

    composer install
  3. Install JavaScript dependencies

    bun install
    # or
    npm install
  4. Environment configuration

    cp .env.example .env
    php artisan key:generate
  5. Configure your .env file

    DB_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
  6. Database setup

    php artisan migrate
    php artisan db:seed
  7. Build frontend assets

    bun run build
    # or for development
    bun run dev
  8. Start the development server

    php artisan serve

πŸ“– Usage

Development Workflow

  1. Start the development servers

    # Backend (Laravel)
    php artisan serve
    
    # Frontend (Vite)
    bun run dev
  2. Database operations

    # Run migrations
    php artisan migrate
    
    # Seed database
    php artisan db:seed
    
    # Reset database
    php artisan migrate:fresh --seed

Production Deployment

  1. Optimize for production
    composer install --optimize-autoloader --no-dev
    php artisan config:cache
    php artisan route:cache
    php artisan view:cache
    bun run build

πŸ—οΈ Project Structure

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

πŸ”§ Configuration

Key Configuration Files

  • config/database.php - Database connections
  • config/filesystems.php - File storage configuration
  • config/inertia.php - Inertia.js settings
  • tailwind.config.js - Tailwind CSS configuration
  • vite.config.mjs - Vite build configuration
  • tsconfig.json - TypeScript configuration

Environment Variables

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-bucket

πŸ‘₯ Team

Developed by:

  • MOHAMED EL GUARIR
  • MOHAMED EL HADDATI
  • DOUNYA ZAHIDI
  • BAHRI MALAK

Supervised by:

  • M. Mohamed Saad AZIZI

πŸ“ž Support

For support and questions, please contact the development team or refer to the project documentation.


ENSIASD Taroudant - AnnΓ©e universitaire: 2024-2025

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published