Aplikasi CRUD (Create, Read, Update, Delete) untuk manajemen data mahasiswa berbasis Laravel (Backend REST API) dan Vue.js (Frontend SPA).
- ✅ CRUD Mahasiswa lengkap (Create, Read, Update, Delete)
- ✅ Pencarian real-time (NIM, Nama, Email)
- ✅ Filter multi-parameter (Prodi, Status, Angkatan)
- ✅ Sorting kolom dinamis
- ✅ Pagination dengan metadata lengkap
- ✅ Validasi client-side & server-side
- ✅ Soft delete untuk data safety
- ✅ Rate limiting untuk API security
- ✅ Responsive design
- PHP >= 8.1
- Composer
- Node.js >= 16.x
- MySQL/MariaDB
- Git
cd backend
# Install dependencies
composer install
# Copy environment file
cp .env.example .env
# Generate application key
php artisan key:generate
# Konfigurasi database di .env
# DB_DATABASE=kampus_db
# DB_USERNAME=root
# DB_PASSWORD=
# Run migrations
php artisan migrate
# (Optional) Run seeder
php artisan db:seed --class=MahasiswaSeeder
# Start server
php artisan servecd frontend
# Install dependencies
npm install
# Copy environment file
cp .env.example .env
# Start development server
npm run dev| Method | Endpoint | Description |
|---|---|---|
| GET | /mahasiswa |
Get all mahasiswa (with filters, search, pagination) |
| GET | /mahasiswa/{id} |
Get mahasiswa detail |
| POST | /mahasiswa |
Create new mahasiswa |
| PUT/PATCH | /mahasiswa/{id} |
Update mahasiswa |
| DELETE | /mahasiswa/{id} |
Delete mahasiswa (soft delete) |
page: Page number (default: 1)per_page: Items per page (default: 10, max: 100)q: Search query (NIM, Nama, Email)prodi: Filter by program studistatus: Filter by status (aktif, cuti, lulus, dropout)angkatan: Filter by angkatan yearsortBy: Sort column (default: created_at)sortDir: Sort direction (asc/desc, default: desc)
- Form Request validation untuk input sanitization
- Mass assignment protection (fillable)
- Rate limiting (30 requests/minute untuk write operations)
- CORS configuration
- Soft delete untuk data recovery
- Error handling yang konsisten
cd frontend
npm run buildcd backend
# Set environment ke production
APP_ENV=production
APP_DEBUG=false
# Optimize
php artisan config:cache
php artisan route:cache
php artisan view:cacheMIT License
Kampus Development Team