bnrpmbd/crud-app
Aplikasi CRUD sederhana untuk manajemen data akademik (dosen & mata kuliah) dengan antarmuka modern dan responsif.
๐ Academic Management System
Sistem Manajemen Akademik Modern dengan Desain Futuristik
Mengelola data dosen dan mata kuliah dengan teknologi terdepan dan user interface yang elegan
๐ Demo โข ๐ฆ Instalasi โข ๐ Fitur โข ๐ฑ Screenshots
๐ Daftar Isi
- Overview
- Fitur Utama
- Teknologi yang Digunakan
- Persyaratan Sistem
- Instalasi
- Konfigurasi
- Penggunaan
- API Documentation
- Screenshots
- Contributing
- License
๐ Overview
Academic Management System adalah aplikasi web modern yang dirancang untuk mengelola data akademik dengan fokus pada manajemen dosen dan mata kuliah. Sistem ini menggabungkan fungsionalitas CRUD yang komprehensif dengan desain user interface yang futuristik dan elegan.
โจ Keunggulan
- ๐จ Desain Futuristik: Interface dengan tema cyber-punk dan animasi modern
- โก Performa Tinggi: Dibangun dengan Laravel 11 dan optimasi database
- ๐ฑ Responsive Design: Tampilan optimal di semua perangkat
- ๐ Advanced Search: Pencarian dan filter yang powerful
- ๐ Dashboard Analytics: Visualisasi data dengan Chart.js
- ๐ User Experience: Interaksi yang smooth dan intuitif
๐ Fitur Utama
๐จโ๐ซ Manajemen Dosen
- โ CRUD Lengkap: Create, Read, Update, Delete data dosen
- ๐ Advanced Search: Pencarian berdasarkan nama dan email dengan auto-complete
- ๐ Statistics: Jumlah mata kuliah per dosen dengan visualisasi
- ๐ Validation: Validasi email format dan data unik real-time
- ๐ Enhanced Pagination: 12 dosen per halaman dengan navigasi yang kontras tinggi
๐ Manajemen Mata Kuliah
- โ CRUD Lengkap: Manajemen data mata kuliah komprehensif
- ๐ Unified Search: Pencarian cerdas berdasarkan nama mata kuliah atau SKS (2-4)
- ๐ฏ Smart Filtering: Deteksi otomatis input numerik untuk filter SKS
- ๐ Visual Cards: Grid layout dengan 12 kartu per halaman
- ๐ Relasi Data: Keterkaitan dengan data dosen pengampu
- โก Optimized Pagination: Maksimal 12 mata kuliah per halaman untuk efisiensi layout
๐ Dashboard & Analytics
- ๐ Interactive Charts: Grafik mata kuliah per dosen dengan Chart.js
- ๐ SKS Distribution: Visualisasi distribusi SKS
- ๐ Statistics Cards: Overview statistik sistem
- โฐ Recent Activity: Aktivitas terbaru mata kuliah
- ๐ Quick Actions: Shortcut untuk aksi cepat
๐จ UI/UX Features
- ๐ Elegant Dark Theme: Desain futuristik dengan kontras tinggi untuk readability
- โจ Enhanced Animations: Particle system, glow effects, dan transisi halus
- ๐ฑ Mobile Responsive: Layout grid adaptif untuk semua ukuran layar
- ๐ Flash Messages: Notifikasi sukses/error dengan gradient dan animasi
- ๐ฏ Smart Form Validation: Real-time validation dengan feedback visual interaktif
- ๐จ High Contrast Pagination: Tombol navigasi dengan visibility optimal pada dark theme
- ๐ซ Interactive Elements: Hover effects dengan transform dan shadow yang dinamis
๐ง Teknologi yang Digunakan
Backend
- Laravel 11 - PHP Framework terbaru
- PHP 8.2+ - Server-side scripting
- MySQL 8.0 - Database management
- Eloquent ORM - Database abstraction
Frontend
- Tailwind CSS 3.0 - Utility-first CSS framework
- JavaScript ES6+ - Modern JavaScript
- Chart.js - Data visualization
- Font Awesome 6 - Icon library
- Google Fonts - Typography (Orbitron)
Tools & Utilities
- Composer - PHP dependency manager
- npm/Node.js - JavaScript package manager
- Vite - Build tool dan dev server
- Git - Version control
๐ป Persyaratan Sistem
Server Requirements
- PHP: 8.2 atau lebih tinggi
- Database: MySQL 8.0 / MariaDB 10.3+ / PostgreSQL 13.0+
- Extensions:
- OpenSSL PHP Extension
- PDO PHP Extension
- Mbstring PHP Extension
- Tokenizer PHP Extension
- XML PHP Extension
- Ctype PHP Extension
- JSON PHP Extension
- BCMath PHP Extension
Development Tools
- Composer: 2.0+
- Node.js: 18.0+
- npm: 8.0+
๐ฆ Instalasi
1. Clone Repository
git clone https://github.com/bnrpmbd/academic-management-system.git
cd academic-management-system2. Install Dependencies
# Install PHP dependencies
composer install
# Install JavaScript dependencies
npm install3. Environment Setup
# Copy environment file
cp .env.example .env
# Generate application key
php artisan key:generate4. Database Setup & Configuration
4.1. Create Database (jika belum ada)
# Login ke MySQL
mysql -u root -p
# Create database
CREATE DATABASE academic_system;
exit;4.2. Konfigurasi Database
Edit file .env dan sesuaikan konfigurasi database:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=academic_system
DB_USERNAME=your_username
DB_PASSWORD=your_password4.3. Clear Configuration Cache
php artisan config:clear4.4. Generate Models (jika belum ada)
# Buat model Dosen dengan migration, factory, dan seeder
php artisan make:model Dosen -m -f -s
# Buat model MataKuliah dengan migration, factory, dan seeder
php artisan make:model MataKuliah -m -f -s4.5. Edit Model Files (jika belum ada isinya)
app/Models/Dosen.php:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Dosen extends Model
{
use HasFactory;
protected $fillable = ['nama', 'email'];
public function mataKuliahs()
{
return $this->hasMany(MataKuliah::class);
}
}app/Models/MataKuliah.php:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class MataKuliah extends Model
{
use HasFactory;
protected $fillable = ['nama', 'sks', 'dosen_id'];
public function dosen()
{
return $this->belongsTo(Dosen::class);
}
}4.6. Edit Migration Files (jika belum ada)
database/migrations/xxxx_create_dosens_table.php:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::create('dosens', function (Blueprint $table) {
$table->id();
$table->string('nama', 100);
$table->string('email')->unique();
$table->timestamps();
});
}
public function down(): void
{
Schema::dropIfExists('dosens');
}
};database/migrations/xxxx_create_mata_kuliahs_table.php:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::create('mata_kuliahs', function (Blueprint $table) {
$table->id();
$table->string('nama', 100);
$table->integer('sks');
$table->foreignId('dosen_id')->constrained('dosens')->onDelete('cascade');
$table->timestamps();
});
}
public function down(): void
{
Schema::dropIfExists('mata_kuliahs');
}
};4.7. Edit Factory Files (jika belum ada)
database/factories/DosenFactory.php:
<?php
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
class DosenFactory extends Factory
{
public function definition(): array
{
return [
'nama' => $this->faker->name(),
'email' => $this->faker->unique()->safeEmail(),
];
}
}database/factories/MataKuliahFactory.php:
<?php
namespace Database\Factories;
use App\Models\Dosen;
use Illuminate\Database\Eloquent\Factories\Factory;
class MataKuliahFactory extends Factory
{
public function definition(): array
{
return [
'nama' => $this->faker->randomElement([
'Algoritma dan Pemrograman',
'Basis Data',
'Jaringan Komputer',
'Sistem Operasi',
'Rekayasa Perangkat Lunak',
'Matematika Diskrit',
'Struktur Data',
'Pemrograman Web'
]),
'sks' => $this->faker->randomElement([2, 3, 4]),
'dosen_id' => Dosen::factory(),
];
}
}4.8. Edit Seeder Files (jika belum ada)
database/seeders/DosenSeeder.php:
<?php
namespace Database\Seeders;
use App\Models\Dosen;
use Illuminate\Database\Seeder;
class DosenSeeder extends Seeder
{
public function run(): void
{
Dosen::factory(10)->create();
}
}database/seeders/MataKuliahSeeder.php:
<?php
namespace Database\Seeders;
use App\Models\MataKuliah;
use Illuminate\Database\Seeder;
class MataKuliahSeeder extends Seeder
{
public function run(): void
{
MataKuliah::factory(50)->create();
}
}database/seeders/DatabaseSeeder.php:
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
public function run(): void
{
$this->call([
DosenSeeder::class,
MataKuliahSeeder::class,
]);
}
}4.9. Run Migration & Seeding
# Clear config cache
php artisan config:clear
# Run fresh migration with seeding
php artisan migrate:fresh --seed5. Generate Controllers & Routes
5.1. Generate Controllers (jika belum ada)
# Buat DosenController dengan resource methods
php artisan make:controller DosenController --resource
# Buat MataKuliahController dengan resource methods
php artisan make:controller MataKuliahController --resource5.2. Edit Routes
routes/web.php:
<?php
use App\Http\Controllers\DosenController;
use App\Http\Controllers\MataKuliahController;
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return view('dashboard');
})->name('dashboard');
Route::get('/dashboard', function () {
return view('dashboard');
})->name('dashboard');
Route::resource('dosen', DosenController::class);
Route::resource('mata_kuliah', MataKuliahController::class);5.3. Edit Controller Files
app/Http/Controllers/DosenController.php:
<?php
namespace App\Http\Controllers;
use App\Models\Dosen;
use Illuminate\Http\Request;
class DosenController extends Controller
{
public function index(Request $request)
{
$q = $request->query('q');
$items = Dosen::query()
->when($q, function ($query) use ($q) {
$query->where(function ($sub) use ($q) {
$sub->where('nama', 'like', "%{$q}%")
->orWhere('email', 'like', "%{$q}%");
});
})
->latest()
->paginate(12)
->withQueryString();
return view('dosen.index', compact('items', 'q'));
}
public function create()
{
return view('dosen.create');
}
public function store(Request $request)
{
$data = $request->validate([
'nama' => 'required|string|max:100',
'email' => 'required|email|unique:dosens,email',
]);
Dosen::create($data);
return redirect()->route('dosen.index')->with('ok','Dosen berhasil dibuat.');
}
public function show(Dosen $dosen)
{
$dosen->load('mataKuliahs');
return view('dosen.show', compact('dosen'));
}
public function edit(Dosen $dosen)
{
return view('dosen.edit', compact('dosen'));
}
public function update(Request $request, Dosen $dosen)
{
$data = $request->validate([
'nama' => 'required|string|max:100',
'email' => 'required|email|unique:dosens,email,' . $dosen->id,
]);
$dosen->update($data);
return redirect()->route('dosen.index')->with('ok','Dosen berhasil diperbarui.');
}
public function destroy(Dosen $dosen)
{
$dosen->delete();
return redirect()->route('dosen.index')->with('ok','Dosen berhasil dihapus.');
}
}app/Http/Controllers/MataKuliahController.php:
<?php
namespace App\Http\Controllers;
use App\Models\MataKuliah;
use App\Models\Dosen;
use Illuminate\Http\Request;
class MataKuliahController extends Controller
{
public function index(Request $request)
{
$q = $request->query('q');
$dosen_id = $request->query('dosen_id');
$items = MataKuliah::with('dosen')
->when($q, function($query) use ($q) {
if (is_numeric($q) && in_array($q, [2, 3, 4])) {
$query->where('sks', $q);
} else {
$query->where('nama', 'like', "%{$q}%");
}
})
->when($dosen_id, fn($qr) => $qr->where('dosen_id',$dosen_id))
->latest()
->paginate(12)
->withQueryString();
$dosens = Dosen::orderBy('nama')->get(['id','nama']);
return view('mata_kuliah.index',
compact('items','q','dosen_id','dosens'));
}
public function create()
{
$dosens = Dosen::orderBy('nama')->get(['id','nama']);
return view('mata_kuliah.create', compact('dosens'));
}
public function store(Request $request)
{
$data = $request->validate([
'nama' => 'required|string|max:100',
'sks' => 'required|integer|min:2|max:4',
'dosen_id' => 'required|exists:dosens,id',
]);
MataKuliah::create($data);
return redirect()->route('mata_kuliah.index')->with('ok','Mata kuliah berhasil dibuat.');
}
public function show(MataKuliah $mataKuliah)
{
$mataKuliah->load('dosen');
return view('mata_kuliah.show', compact('mataKuliah'));
}
public function edit(MataKuliah $mataKuliah)
{
$dosens = Dosen::orderBy('nama')->get(['id','nama']);
return view('mata_kuliah.edit', compact('mataKuliah', 'dosens'));
}
public function update(Request $request, MataKuliah $mataKuliah)
{
$data = $request->validate([
'nama' => 'required|string|max:100',
'sks' => 'required|integer|min:2|max:4',
'dosen_id' => 'required|exists:dosens,id',
]);
$mataKuliah->update($data);
return redirect()->route('mata_kuliah.index')->with('ok','Mata kuliah berhasil diperbarui.');
}
public function destroy(MataKuliah $mataKuliah)
{
$mataKuliah->delete();
return redirect()->route('mata_kuliah.index')->with('ok','Mata kuliah berhasil dihapus.');
}
}6. Create Blade Views
6.1. Create View Directories
# Buat direktori untuk views
mkdir resources/views/dosen
mkdir resources/views/mata_kuliah6.2. Create Layout File
resources/views/layouts/app.blade.php - Layout utama dengan dark theme dan navigation
6.3. Create Blade Files
Dosen Views:
resources/views/dosen/index.blade.php- List dosen dengan search dan paginationresources/views/dosen/create.blade.php- Form tambah dosenresources/views/dosen/edit.blade.php- Form edit dosenresources/views/dosen/show.blade.php- Detail dosen dengan mata kuliah
Mata Kuliah Views:
resources/views/mata_kuliah/index.blade.php- Grid mata kuliah dengan unified searchresources/views/mata_kuliah/create.blade.php- Form tambah mata kuliahresources/views/mata_kuliah/edit.blade.php- Form edit mata kuliahresources/views/mata_kuliah/show.blade.php- Detail mata kuliah
Dashboard:
resources/views/dashboard.blade.php- Dashboard dengan analytics dan charts
7. Build Assets
# Build for development
npm run dev
# Or build for production
npm run build8. Start Development Server
php artisan serveAplikasi akan berjalan di http://localhost:8000
9. Setup Screenshots Folder (Optional)
# Buat folder untuk screenshots demo
mkdir screenshots
โ๏ธ Konfigurasi
Database Seeder
Sistem dilengkapi dengan seeder untuk data sample:
# Generate 10 dosen dan 50 mata kuliah
php artisan db:seed
# Atau jalankan seeder spesifik
php artisan db:seed --class=DosenSeeder
php artisan db:seed --class=MataKuliahSeederEnvironment Variables
Konfigurasi penting di file .env:
# Application
APP_NAME="Academic Management System"
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=academic_system
DB_USERNAME=root
DB_PASSWORD=
# Cache & Session
CACHE_DRIVER=file
SESSION_DRIVER=file
SESSION_LIFETIME=120
# Queue
QUEUE_CONNECTION=sync๐ฏ Penggunaan
Dashboard
- Akses dashboard di route
/dashboard - Lihat statistik sistem secara keseluruhan
- Gunakan quick actions untuk aksi cepat
- Monitor aktivitas terbaru
Manajemen Dosen
- List Dosen:
/dosen- Melihat semua dosen dengan pagination - Tambah Dosen:
/dosen/create- Form tambah dosen baru - Detail Dosen:
/dosen/{id}- Informasi lengkap dosen - Edit Dosen:
/dosen/{id}/edit- Form edit data dosen - Search: Gunakan form pencarian untuk cari dosen
Manajemen Mata Kuliah
- List Mata Kuliah:
/mata-kuliah- Grid view 4 kolom dengan 12 kartu per halaman - Tambah Mata Kuliah:
/mata-kuliah/create- Form tambah dengan icon dan validasi - Detail Mata Kuliah:
/mata-kuliah/{id}- Informasi lengkap dengan relasi dosen - Edit Mata Kuliah:
/mata-kuliah/{id}/edit- Form edit dengan pre-filled data - Unified Search: Pencarian cerdas - ketik nama atau angka SKS (2,3,4) di satu field
- Enhanced Pagination: Navigasi halaman dengan kontras tinggi dan hover effects
Validasi Data
- Email Dosen: Format email valid dan unik dengan real-time checking
- Nama Mata Kuliah: Tidak boleh kosong, minimal 3 karakter, maksimal 100 karakter
- SKS: Hanya nilai 2, 3, atau 4 (dropdown validation)
- Dosen: Harus memilih dari dosen yang tersedia (foreign key constraint)
- Search Input: Auto-detect numerik (2-4) untuk SKS atau text untuk nama
๐ API Documentation
Dosen Endpoints
GET /dosen # List semua dosen
POST /dosen # Create dosen baru
GET /dosen/{id} # Show dosen spesifik
PUT /dosen/{id} # Update dosen
DELETE /dosen/{id} # Delete dosenMata Kuliah Endpoints
GET /mata-kuliah # List semua mata kuliah
POST /mata-kuliah # Create mata kuliah baru
GET /mata-kuliah/{id} # Show mata kuliah spesifik
PUT /mata-kuliah/{id} # Update mata kuliah
DELETE /mata-kuliah/{id} # Delete mata kuliahDashboard Endpoints
GET /dashboard # Dashboard utama
GET /api/dashboard/stats # API statistik dashboardQuery Parameters
# Search & Filter
?q=keyword # Unified search (nama atau SKS)
?q=2 # Search mata kuliah dengan 2 SKS
?q=Matematika # Search mata kuliah dengan nama mengandung "Matematika"
?dosen_id=1 # Filter by dosen ID
?page=2 # Pagination (12 items per page)Smart Search Examples
# Pencarian berdasarkan nama
/mata-kuliah?q=Algoritma
# Pencarian berdasarkan SKS
/mata-kuliah?q=3 # Menampilkan semua mata kuliah 3 SKS
# Kombinasi filter
/mata-kuliah?q=2&dosen_id=1 # Mata kuliah 2 SKS dari dosen tertentu๐ฑ Demo Screenshots
๐ Dashboard
๐จโ๐ซ Manajemen Dosen

List dosen dengan advanced search dan enhanced pagination
๐ Manajemen Mata Kuliah

Grid layout mata kuliah dengan unified search (nama atau SKS)

Form tambah mata kuliah dengan dropdown dosen dan SKS validation

Form edit mata kuliah dengan dropdown dosen dan SKS validation
๐ Note: Untuk melihat demo live, clone repository ini dan ikuti panduan instalasi di atas.
๐ Deployment
Production Build
# Build assets untuk production
npm run build
# Optimize Laravel
php artisan config:cache
php artisan route:cache
php artisan view:cache
# Set proper permissions
chmod -R 755 storage bootstrap/cacheEnvironment Production
APP_ENV=production
APP_DEBUG=false
APP_URL=https://yourdomain.com
# Use production database
DB_HOST=your-production-host
DB_DATABASE=your-production-db๐งช Testing
# Run semua test
php artisan test
# Test specific feature
php artisan test --filter DosenTest
# Test dengan coverage
php artisan test --coverage๐ง Troubleshooting
Common Issues
-
Migration Error
php artisan migrate:fresh --seed
-
Permission Issues
chmod -R 775 storage bootstrap/cache
-
Asset Building Error
npm cache clean --force npm install npm run build
-
Database Connection
- Pastikan MySQL service berjalan
- Periksa credentials di
.env - Test koneksi:
php artisan tinkerโDB::connection()->getPdo()
๐ค Contributing
Kami welcome kontribusi dari komunitas! Silakan ikuti panduan berikut:
Development Workflow
- Fork repository ini
- Create feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add some AmazingFeature') - Push branch (
git push origin feature/AmazingFeature) - Open Pull Request
Coding Standards
- Ikuti PSR-12 untuk PHP
- Gunakan ESLint untuk JavaScript
- Comment code yang kompleks
- Test semua fitur baru
- Update documentation jika diperlukan
Bug Reports
Gunakan GitHub Issues untuk melaporkan bug dengan format:
- Deskripsi: Jelaskan bug secara detail
- Steps to Reproduce: Langkah-langkah reproduce
- Expected Behavior: Behavior yang diharapkan
- Screenshots: Sertakan screenshot jika perlu
- Environment: OS, Browser, PHP version
๐ Changelog
Version 1.2.0 (2025-09-29)
- ๐ Unified Search: Smart search untuk mata kuliah (nama atau SKS dalam satu field)
- ๐ Enhanced Pagination: 12 items per page dengan high contrast navigation
- ๐จ Improved Dark Theme: Better text contrast dan visibility
- โจ Interactive Elements: Enhanced hover effects dan animations
- ๐ Performance: Optimized queries dan better UX
Version 1.1.0 (2025-09-28)
- ๐ Dark Theme: Elegant dark theme dengan futuristic elements
- ๐ซ Particle System: Background animations untuk atmosphere
- ๐ฏ Smart Validation: Real-time form validation
- ๐ Chart Integration: Dashboard analytics dengan Chart.js
Version 1.0.0 (2025-09-27)
- โจ Initial release dengan Laravel 11
- ๐จ Futuristic UI design dengan Tailwind CSS
- ๐จโ๐ซ Complete dosen management (CRUD + search)
- ๐ Complete mata kuliah management (CRUD + filtering)
- ๐ Interactive dashboard dengan statistics
- ๐ฑ Mobile responsive design
๐ License
Project ini dilisensikan under MIT License - lihat file LICENSE untuk detail.
MIT License
Copyright (c) 2024 Academic Management System
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
๐จโ๐ป Author
Banar Pambudi
- GitHub: @bnrpmbd
- Email: banarpambudi094@gmail.com
- LinkedIn: https://linkedin.com/in/banarpambudi
๐ Acknowledgments
- Laravel - PHP Framework
- Tailwind CSS - CSS Framework
- Chart.js - Data Visualization
- Font Awesome - Icons
- Google Fonts - Typography
๐ Support
Jika Anda memiliki pertanyaan atau membutuhkan bantuan:
- ๐ง Email: support@academic-system.com
- ๐ฌ Discord: Join Server
- ๐ Documentation: Wiki
- ๐ Issues: GitHub Issues
โญ Jangan lupa berikan star jika project ini membantu Anda! โญ
Made with โค๏ธ for better academic management
About Laravel
Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:
- Simple, fast routing engine.
- Powerful dependency injection container.
- Multiple back-ends for session and cache storage.
- Expressive, intuitive database ORM.
- Database agnostic schema migrations.
- Robust background job processing.
- Real-time event broadcasting.
Laravel is accessible, powerful, and provides tools required for large, robust applications.
Learning Laravel
Laravel has the most extensive and thorough documentation and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.
You may also try the Laravel Bootcamp, where you will be guided through building a modern Laravel application from scratch.
If you don't feel like reading, Laracasts can help. Laracasts contains thousands of video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.
Laravel Sponsors
We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the Laravel Partners program.
Premium Partners
Contributing
Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the Laravel documentation.
Code of Conduct
In order to ensure that the Laravel community is welcoming to all, please review and abide by the Code of Conduct.
Security Vulnerabilities
If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via taylor@laravel.com. All security vulnerabilities will be promptly addressed.
License
The Laravel framework is open-sourced software licensed under the MIT license.


