Skip to content

Brazer27/kampus-mahasiswa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Sistem Manajemen Data Mahasiswa

Aplikasi CRUD (Create, Read, Update, Delete) untuk manajemen data mahasiswa berbasis Laravel (Backend REST API) dan Vue.js (Frontend SPA).

🚀 Fitur

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

📋 Prasyarat

  • PHP >= 8.1
  • Composer
  • Node.js >= 16.x
  • MySQL/MariaDB
  • Git

🛠️ Instalasi

Backend (Laravel)

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 serve

Frontend (Vue.js)

cd frontend

# Install dependencies
npm install

# Copy environment file
cp .env.example .env

# Start development server
npm run dev

📡 API Endpoints

Base URL: http://localhost:8000/api

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)

Query Parameters (GET /mahasiswa)

  • page: Page number (default: 1)
  • per_page: Items per page (default: 10, max: 100)
  • q: Search query (NIM, Nama, Email)
  • prodi: Filter by program studi
  • status: Filter by status (aktif, cuti, lulus, dropout)
  • angkatan: Filter by angkatan year
  • sortBy: Sort column (default: created_at)
  • sortDir: Sort direction (asc/desc, default: desc)

🔒 Security Features

  • 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

📦 Production Deployment

Build Frontend

cd frontend
npm run build

Deploy Laravel

cd backend

# Set environment ke production
APP_ENV=production
APP_DEBUG=false

# Optimize
php artisan config:cache
php artisan route:cache
php artisan view:cache

📄 License

MIT License

👨‍💻 Author

Kampus Development Team

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors