Skip to content

About

Platform Kursus berbasis Laravel untuk tugas final Praktikum Pemrograman Web 2025

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Repository files navigation

EduTrack LMS Banner

Laravel PHP Tailwind CSS MySQL Vite

Platform pembelajaran online yang dirancang untuk memberikan pengalaman belajar terbaik dengan manajemen konten yang komprehensif

Features β€’ Installation β€’ Contributing


πŸ“Έ Screenshot

Halaman Utama

Homepage Screenshot Halaman landing dengan hero section yang menarik dan statistik platform

Dashboard Admin

Admin Dashboard Screenshot Dashboard admin dengan statistik komprehensif dan manajemen platform

Katalog Kursus

Course Catalog Screenshot Katalog kursus dengan filter dan pencarian yang mudah

Tampilan Pelajaran

Lesson View Screenshot Tampilan pelajaran dengan pelacakan progress dan navigasi yang intuitif

Manajemen Pengguna

User Management Screenshot Manajemen pengguna dengan layout card yang modern

Dashboard Teacher

Teacher Dashboard Screenshot Dashboard teacher dengan daftar kursus yang dibuat dan statistik siswa

Dashboard Student

Student Dashboard Screenshot Dashboard student dengan kursus yang diikuti, progress tracking, dan akses sertifikat


πŸ“‹ Daftar Isi


🎯 Tentang Proyek

EduTrack LMS adalah Learning Management System (LMS) yang komprehensif yang dirancang untuk memfasilitasi proses pembelajaran online antara guru dan siswa. Platform ini menyediakan workflow CMS terintegrasi dengan antarmuka yang modern, responsif, dan mudah digunakan.

🎯 Tujuan

  • πŸ“š Menyediakan proses pembelajaran terpandu yang lengkap dengan manajemen konten
  • πŸ‘₯ Memfasilitasi interaksi antara guru dan siswa
  • πŸ“Š Menyediakan pelacakan progress pembelajaran yang akurat
  • 🎨 Memberikan pengalaman pengguna yang modern dan intuitif

⭐ Nilai Inti

  • βœ… Integrated CMS Workflow - Sistem manajemen konten terintegrasi
  • βœ… Clean Design - Hierarki visual yang jelas dan mudah dipahami
  • βœ… Responsive & Accessible - Optimal di semua perangkat dengan aksesibilitas tinggi
  • βœ… Modular Architecture - Mudah untuk diuji, dikembangkan, dan dipelihara
  • βœ… Code Quality - Validasi Form Request, database transactions, dan error handling yang komprehensif

✨ Fitur

πŸ‘₯ Manajemen Pengguna

  • πŸ” Sistem Multi-role - Admin, Teacher, Student, dan Guest
  • πŸ‘€ Manajemen Pengguna - CRUD lengkap untuk pengguna dengan filter dan pencarian
  • πŸ›‘οΈ Role-based Access Control - Setiap role memiliki akses dan fitur yang berbeda
  • βš™οΈ Manajemen Profil - Pengguna dapat mengelola profil mereka sendiri

πŸ“š Manajemen Kursus

  • βž• Course CRUD - Membuat, mengedit, dan menghapus kursus dengan mudah
  • 🏷️ Manajemen Kategori - Mengorganisir kursus berdasarkan kategori
  • πŸ”„ Status Kursus - Aktif/Nonaktif untuk kontrol publikasi
  • πŸ“… Rentang Tanggal - Penjadwalan kursus dengan tanggal mulai dan akhir
  • πŸ‘¨β€πŸ« Penugasan Guru - Menugaskan guru ke kursus tertentu

πŸ“– Manajemen Konten

  • πŸ“ Manajemen Pelajaran - Membuat dan mengelola pelajaran per kursus
  • πŸ“‹ Organisasi Konten - Urutan pelajaran yang dapat dikonfigurasi
  • ✍️ Rich Text Content - Konten pelajaran dengan format yang kaya
  • πŸ“Š Pelacakan Progress - Melacak progress pembelajaran per siswa

πŸ“Š Dashboard & Analytics

  • πŸ‘¨β€πŸ’Ό Dashboard Admin:
    • πŸ“ˆ Statistik untuk total pengguna, kursus, kategori, dan pendaftaran
    • πŸ‘₯ Pengguna dan kursus terbaru
    • 🏷️ Manajemen kategori terintegrasi
  • πŸ‘¨β€πŸ« Dashboard Teacher:
    • πŸ“š Ringkasan kursus yang diajarkan
    • πŸ“Š Statistik siswa dan pendaftaran
  • πŸ‘¨β€πŸŽ“ Dashboard Student:
    • πŸ“– Kursus yang didaftarkan
    • πŸ“ˆ Pelacakan progress per kursus
    • βœ… Pelajaran yang selesai/belum selesai

πŸŽ“ Fitur Pembelajaran

  • 🎫 Sistem Pendaftaran - Siswa dapat mendaftar ke kursus
  • πŸ“ˆ Pelacakan Progress - Secara otomatis melacak progress pembelajaran
  • βœ… Tandai Selesai - Siswa dapat menandai pelajaran sebagai selesai
  • πŸ”„ Navigasi Pelajaran - Navigasi yang mudah antar pelajaran
  • πŸ” Katalog Kursus - Katalog kursus dengan filter dan pencarian
  • πŸ† Penerbitan Sertifikat - Sertifikat otomatis diterbitkan saat kursus selesai (progress 100%)
  • πŸ“„ Sertifikat PDF - Unduh sertifikat dalam format PDF

🎨 UI/UX Modern

  • πŸ“± Desain Responsif - Optimal di semua perangkat
  • 🎴 Layout Berbasis Card - Desain layout card yang modern
  • 🎨 Tailwind CSS - Styling framework CSS utility-first
  • ✨ Animasi Halus - Transisi dan animasi yang halus
  • β™Ώ Aksesibilitas - Aksesibilitas tinggi untuk semua pengguna
  • πŸ–ΌοΈ Gambar Dinamis - Variasi gambar otomatis untuk menghindari tampilan monoton

πŸ”§ Fitur Teknis

  • βœ… Form Request Validation - Validasi terstruktur dengan pesan error kustom
  • πŸ’Ύ Database Transactions - Operasi atomik untuk integritas data
  • πŸ›‘οΈ Error Handling - Penanganan error yang komprehensif dengan logging detail
  • πŸ“ Code Quality - Kode bersih tanpa file dan komentar yang tidak terpakai
  • πŸ” Eager Loading - Query yang dioptimalkan untuk menghindari masalah N+1

πŸ›  Teknologi yang Digunakan

πŸ”§ Backend

Laravel - PHP Framework

PHP - Bahasa Pemrograman

MySQL - Sistem Manajemen Database

Eloquent - Database Abstraction Layer

🎨 Frontend

Blade - Templating Engine

Tailwind CSS - Framework CSS Utility-first

Alpine.js - Framework JavaScript Ringan

Vite - Build Tool dan Development Server

πŸ› οΈ Development Tools

Laravel Breeze - Authentication Scaffolding

Laravel Pint - Code Style Fixer

PHPUnit - Framework Testing PHP

DomPDF - Generasi PDF untuk Sertifikat


πŸ’» Persyaratan Sistem

PHP

Composer

Node.js

NPM

MySQL

Apache


πŸš€ Instalasi

1️⃣ Clone Repository

git clone https://github.com/ShinZeleo/edutrack-lms.git
cd edutrack-lms

2️⃣ Install Dependencies

# Install dependensi PHP
composer install

# Install dependensi Node.js
npm install

3️⃣ Setup Environment

# Salin file environment
cp .env.example .env

# Generate application key
php artisan key:generate

4️⃣ Konfigurasi Database

Edit file .env dan sesuaikan konfigurasi database:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=edutrack_lms
DB_USERNAME=your_username
DB_PASSWORD=your_password

5️⃣ Jalankan Migrasi dan Seeder

# Jalankan migrasi
php artisan migrate

# Seed database dengan data dummy
php artisan db:seed

6️⃣ Build Assets

# Development
npm run dev

# Production
npm run build

7️⃣ Jalankan Server

# Development server
php artisan serve

# Atau dengan queue dan vite
composer run dev

🌐 Akses aplikasi di: http://localhost:8000


βš™οΈ Konfigurasi

πŸ”‘ Kredensial Default

Setelah menjalankan seeder, Anda dapat login dengan:

πŸ‘¨β€πŸ’Ό Admin:

  • Email
  • Password

πŸ‘¨β€πŸ« Teacher:

  • Email
  • Password

πŸ‘¨β€πŸŽ“ Student:

  • Email
  • Password

Environment Variables

Beberapa variabel penting di .env:

APP_NAME="EduTrack LMS"
APP_ENV=local
APP_DEBUG=true
APP_URL=http://localhost:8000

# Database
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=edutrack_lms
DB_USERNAME=root
DB_PASSWORD=

πŸ“ Struktur Proyek

Structure

πŸ“‚ Direktori Utama

app app/ - Aplikasi Laravel utama

database database/ - Migrasi dan seeder database

resources resources/ - Views, CSS, dan assets

routes routes/ - Definisi route aplikasi

tests tests/ - Unit dan feature tests

edutrack-lms/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ Http/
β”‚   β”‚   β”œβ”€β”€ Controllers/
β”‚   β”‚   β”‚   β”œβ”€β”€ Admin/
β”‚   β”‚   β”‚   β”‚   └── UserController.php
β”‚   β”‚   β”‚   β”œβ”€β”€ Auth/
β”‚   β”‚   β”‚   β”‚   └── 6 file            
β”‚   β”‚   β”‚   β”œβ”€β”€ AdminController.php
β”‚   β”‚   β”‚   β”œβ”€β”€ CategoryController.php
β”‚   β”‚   β”‚   β”œβ”€β”€ CertificateController.php
β”‚   β”‚   β”‚   β”œβ”€β”€ Controller.php
β”‚   β”‚   β”‚   β”œβ”€β”€ CourseController.php
β”‚   β”‚   β”‚   β”œβ”€β”€ EnrollmentController.php
β”‚   β”‚   β”‚   β”œβ”€β”€ HomeController.php
β”‚   β”‚   β”‚   β”œβ”€β”€ LessonController.php
β”‚   β”‚   β”‚   β”œβ”€β”€ ProfileController.php
β”‚   β”‚   β”‚   β”œβ”€β”€ StudentController.php
β”‚   β”‚   β”‚   └── TeacherController.php
β”‚   β”‚   β”œβ”€β”€ Requests/
β”‚   β”‚   β”‚   β”œβ”€β”€ Auth/
β”‚   β”‚   β”‚   β”‚   └── LoginRequest.php
β”‚   β”‚   β”‚   β”œβ”€β”€ CategoryStoreRequest.php
β”‚   β”‚   β”‚   β”œβ”€β”€ CategoryUpdateRequest.php
β”‚   β”‚   β”‚   β”œβ”€β”€ CourseStoreRequest.php
β”‚   β”‚   β”‚   β”œβ”€β”€ CourseUpdateRequest.php
β”‚   β”‚   β”‚   β”œβ”€β”€ LessonStoreRequest.php
β”‚   β”‚   β”‚   β”œβ”€β”€ LessonUpdateRequest.php
β”‚   β”‚   β”‚   β”œβ”€β”€ ProfileUpdateRequest.php
β”‚   β”‚   β”‚   β”œβ”€β”€ UserStoreRequest.php
β”‚   β”‚   β”‚   └── UserUpdateRequest.php
β”‚   β”‚   └── Middleware/
β”‚   β”‚       β”œβ”€β”€ AdminMiddleware.php
β”‚   β”‚       β”œβ”€β”€ RoleMiddleware.php
β”‚   β”‚       β”œβ”€β”€ StudentMiddleware.php
β”‚   β”‚       └── TeacherMiddleware.php
β”‚   └── Models/
β”‚       β”œβ”€β”€ Category.php
β”‚       β”œβ”€β”€ Certificate.php
β”‚       β”œβ”€β”€ Course.php
β”‚       β”œβ”€β”€ Lesson.php
β”‚       β”œβ”€β”€ LessonProgress.php
β”‚       └── User.php
β”œβ”€β”€ database/
β”‚   β”œβ”€β”€ migrations/
β”‚   β”‚   └── 8 Files
β”‚   └── seeders/
β”‚       └── DemoSeeder.php
β”œβ”€β”€ resources/
β”‚   β”œβ”€β”€ views/
β”‚   β”‚   β”œβ”€β”€ admin/
β”‚   β”‚   β”œβ”€β”€ auth/
β”‚   β”‚   β”œβ”€β”€ categories/
β”‚   β”‚   β”œβ”€β”€ certificates/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ courses/
β”‚   β”‚   β”œβ”€β”€ lessons/
β”‚   β”‚   β”œβ”€β”€ layouts/
β”‚   β”‚   β”œβ”€β”€ users/
β”‚   β”‚   β”œβ”€β”€ profile/
β”‚   β”‚   β”œβ”€β”€ teacher/
β”‚   β”‚   β”œβ”€β”€ vendor/
β”‚   β”‚   β”œβ”€β”€ about.blade.php
β”‚   β”‚   β”œβ”€β”€ dashboard.blade.php
β”‚   β”‚   └── home.blade.php
β”‚   └── css/
β”œβ”€β”€ routes/
β”‚   β”œβ”€β”€ web.php
β”‚   └── auth.php
β”œβ”€β”€ tests/
β”‚   └── Feature/
β”œβ”€β”€ docs/
β”‚   β”œβ”€β”€ controllers.md
β”‚   β”œβ”€β”€ database.md
β”‚   β”œβ”€β”€ models.md
β”‚   β”œβ”€β”€ routes.md
β”‚   β”œβ”€β”€ tests.md
β”‚   β”œβ”€β”€ views.md
β”‚   └── screenshots/
β”œβ”€β”€ .env.example
β”œβ”€β”€ composer.json
β”œβ”€β”€ package.json
└── README.md

πŸ“„ File Penting

composer.json - Dependensi PHP

package.json - Dependensi Node.js

.env.example - Template konfigurasi environment


πŸ“– Penggunaan

Diagram Alur

Flow Diagram

πŸ‘¨β€πŸ’Ό Untuk Admin

  1. πŸ” Login sebagai admin
  2. πŸ“Š Dashboard - Melihat statistik platform
  3. πŸ‘₯ Manajemen Pengguna - Mengelola semua pengguna (Admin, Teacher, Student)
  4. πŸ“š Manajemen Kursus - Membuat, mengedit, dan menghapus kursus
  5. 🏷️ Manajemen Kategori - Mengelola kategori kursus

πŸ‘¨β€πŸ« Untuk Teacher

  1. πŸ” Login sebagai teacher
  2. πŸ“Š Dashboard - Melihat kursus yang diajarkan
  3. βž• Buat Kursus - Membuat kursus baru
  4. πŸ“ Kelola Pelajaran - Menambah dan mengelola pelajaran dalam kursus
  5. πŸ‘₯ Lihat Siswa - Melihat siswa yang terdaftar di kursus

πŸ‘¨β€πŸŽ“ Untuk Student

  1. πŸ” Daftar/Login sebagai student
  2. πŸ” Jelajahi Kursus - Menjelajahi katalog kursus
  3. 🎫 Daftar - Mendaftar ke kursus yang diinginkan
  4. πŸ“– Belajar - Mengakses pelajaran dan materi pembelajaran
  5. πŸ“ˆ Lacak Progress - Melihat progress pembelajaran
  6. πŸ† Unduh Sertifikat - Mengunduh sertifikat setelah menyelesaikan kursus (progress 100%)

πŸ“š Dokumentasi

Dokumentasi lengkap tersedia di folder docs/ untuk membantu memahami struktur dan implementasi aplikasi:

πŸ“„ File Dokumentasi

  • docs/controllers.md Ikhtisar setiap controller beserta alur request β†’ controller β†’ response, middleware yang digunakan, penggunaan Form Request, transaksi database, dan error handling pattern.
  • docs/models.md Diagram relasi antar model, penjelasan setiap relationship (hasMany, belongsTo, belongsToMany), scopes, accessor/mutator, serta contoh query yang optimal.
  • docs/views.md Struktur folder Blade, penjelasan layout & component, contoh Blade directive, cara menampilkan error/flash message, serta guideline Tailwind untuk styling.
  • docs/routes.md Daftar lengkap routes (public, auth, admin, teacher, student), middleware stack yang melindungi tiap route, contoh route model binding, dan naming convention.
  • docs/middleware.md Penjelasan workflow middleware (auth, role-based, verified), urutan eksekusi, contoh error/redirect, serta best practice fail-fast authorization.
  • docs/database.md Dokumentasi schema database, detail tiap migration, strategi cascade delete, diagram ERD, serta tips menjalankan/rollback migration.
  • docs/tests.md Struktur test suite, contoh Arrange-Act-Assert, daftar assertion yang digunakan, serta panduan menjalankan test parsial maupun penuh.

🎯 Fitur yang Didokumentasikan

  • βœ… Form Request Classes - Validasi terstruktur dengan pesan error kustom
  • βœ… Database Transactions - Operasi atomik untuk integritas data
  • βœ… Error Handling - Penanganan error yang komprehensif dengan logging
  • βœ… Certificate System - Generasi PDF dan penerbitan sertifikat
  • βœ… Progress Tracking - Auto-generate sertifikat saat progress mencapai 100%
  • βœ… Role-based Access Control - Authorization untuk setiap role

πŸ§ͺ Pengujian

# Jalankan semua tests
php artisan test

# Jalankan test spesifik
php artisan test --filter TestClassName

# Jalankan dengan coverage
php artisan test --coverage

πŸ“Š Test Coverage

Auth Tests βœ… Authentication Tests

Authz Tests βœ… Authorization Tests

Enrollment Tests βœ… Enrollment Tests

Course Tests βœ… Course Management Tests

Lesson Tests βœ… Lesson Management Tests

Profile Tests βœ… Profile Management Tests


🀝 Kontribusi

Kontribusi sangat diterima! Untuk berkontribusi:

  1. 🍴 Fork repository
  2. 🌿 Buat feature branch (git checkout -b feature/AmazingFeature)
  3. πŸ’Ύ Commit perubahan Anda (git commit -m 'Add some AmazingFeature')
  4. πŸ“€ Push ke branch (git push origin feature/AmazingFeature)
  5. πŸ”„ Buka Pull Request

πŸ‘€ Kontak

GitHub @ShinZeleo

Project : https://github.com/ShinZeleo/edutrack-lms


⭐ Jika proyek ini membantu Anda, berikan bintang di repository!

About

Platform Kursus berbasis Laravel untuk tugas final Praktikum Pemrograman Web 2025

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages