Skip to content

ahemdatef/Gradution-Project-iLMS-Software

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

iLMS

Learning management system with a Laravel 12 backend and a Next.js 16 frontend.

Requirements

Hardware

  • CPU: 2 cores minimum, 4 cores recommended
  • RAM: 4 GB minimum, 8 GB recommended
  • Disk: 5 GB free minimum, more if you store media files or large uploads

Software

  • PHP 8.3 or newer
  • Composer 2
  • Node.js 20 or newer
  • pnpm
  • MySQL or a compatible database server
  • FFmpeg and ffprobe for subtitle and media processing

Project Structure

  • server/ - Laravel API, queues, broadcasting, payments, and media processing
  • frontend/ - Next.js application

Setup

  1. Install backend dependencies.

    cd server
    composer install
  2. Prepare the backend environment file.

    copy .env.example .env
    php artisan key:generate
  3. Configure the backend database and services in server/.env.

    Common values used by this project include:

    • APP_URL=http://localhost:8003
    • DB_CONNECTION=mysql
    • QUEUE_CONNECTION=database
    • BROADCAST_CONNECTION=reverb
    • REVERB_* for realtime broadcasting
    • STRIPE_* for payments
    • FFMPEG_BINARIES and FFPROBE_BINARIES for media processing
  4. Run backend migrations.

    php artisan migrate
  5. Install frontend dependencies.

    cd ../frontend
    pnpm install
  6. Create the frontend environment file if needed.

    The frontend reads NEXT_PUBLIC_API_URL. If it is not set, it defaults to:

    http://localhost:8003/api/v1
    

Run Locally

Backend

From server/:

php artisan serve --host=localhost --port=8003
php artisan queue:work --tries=3
php artisan reverb:start

If you use Stripe webhooks locally, run the Stripe CLI listener and forward it to:

http://localhost:8003/api/v1/stripe/webhook

Frontend

From frontend/:

pnpm run dev

The frontend runs on port 3003.

Full Local Development

Recommended local services:

  • Backend API: http://localhost:8003
  • Frontend: http://localhost:3003
  • Reverb: http://localhost:8080

Build

Backend

cd server
composer install
php artisan config:clear

Frontend

cd frontend
pnpm run build
pnpm run start

Testing

Backend tests

cd server
php artisan test

Frontend lint

cd frontend
pnpm run lint

FFmpeg Notes

If subtitle or media processing fails with a missing binary error, install FFmpeg and set the binary paths in server/.env.

On Windows, you can install it with:

winget install Gyan.FFmpeg

Notes

  • Do not commit real API keys, Stripe secrets, or mail credentials.
  • Keep the backend and frontend servers running together when you need realtime features.
  • If you change frontend environment variables, restart the frontend dev server.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors