5.9 KiB
Database Kesiswaan
Aplikasi administrasi sekolah berbasis Laravel untuk mengelola data siswa, dokumen siswa, data orang tua/wali, kenaikan kelas, mutasi/keluar siswa, portal publik pencarian siswa, dan portal pelengkapan biodata siswa.
Tujuan Aplikasi
Project ini dibuat untuk membantu operasional sekolah dalam satu panel administrasi yang lebih rapi dan terstruktur, dengan fokus pada:
- pengelolaan data siswa
- master data akademik
- pengelolaan dokumen siswa
- pemantauan kelengkapan dan verifikasi dokumen
- histori akademik siswa
- promosi / kenaikan kelas
- arsip siswa keluar dan mutasi
- portal publik untuk pencarian informasi siswa
- portal publik untuk pelengkapan biodata siswa secara mandiri
Fitur Utama
Dashboard
- ringkasan jumlah siswa
- ringkasan kelengkapan dokumen
- ringkasan verifikasi dokumen
Master Data
- Tahun Angkatan
- Program Keahlian
- Kelas
- Jenis Dokumen
Data Siswa
- CRUD data siswa
- detail siswa
- relasi ke Tahun Angkatan, Program Keahlian, dan Kelas
- histori akademik siswa
Orang Tua / Wali
- nested CRUD di bawah siswa
- dukungan ayah, ibu, dan wali
Dokumen Siswa
- upload dokumen
- edit / hapus dokumen
- preview browser
- download file
- verifikasi cepat dokumen
- catatan verifikasi
Arsip Status Siswa
- Data Siswa Keluar
- Data Siswa Mutasi
- Data Siswa Lulus
Promosi / Kenaikan Kelas
- rekomendasi kenaikan kelas
- penulisan histori akademik otomatis
Portal Publik
- pencarian siswa publik
- portal pelengkapan biodata siswa
- verifikasi melalui NIS/NISN dan kode akses
Pengaturan
- manajemen pengguna
- branding aplikasi
- reset data tertentu
Teknologi yang Dipakai
- Laravel
- Blade
- Tailwind CSS
- Vite
- MySQL / MariaDB
- SweetAlert2
- Alpine.js
Requirement Minimum
- PHP 8.3
- Composer 2.x
- Node.js 20 LTS + npm
- MySQL / MariaDB
- Git
- Web server Apache atau Nginx
Requirement server lengkap beserta command install untuk Ubuntu 22.04 tersedia di:
SERVER_REQUIREMENTS.md
Instalasi Lokal / Fresh Setup
1. Clone repository
git clone https://github.com/novysan87/database-kesiswaan.git
cd database-kesiswaan
2. Copy file environment
cp .env.example .env
3. Edit konfigurasi .env
Sesuaikan terutama:
APP_URLDB_HOSTDB_PORTDB_DATABASEDB_USERNAMEDB_PASSWORD
4. Jalankan script deploy
./deploy.sh
Untuk staging:
APP_ENVIRONMENT=staging ./deploy.sh
Kalau perlu seeder:
RUN_SEED=true ./deploy.sh
Menjalankan Secara Manual
Kalau tidak memakai deploy.sh:
composer install
npm install
npm run build
php artisan key:generate
php artisan migrate
php artisan storage:link
Untuk development:
php artisan serve
npm run dev
Backup
Project ini menyediakan dua lapis mekanisme backup:
1. Script lama (manual dasar)
./backup.sh
2. Script backup operasional yang direkomendasikan
Gunakan script di folder scripts/ untuk backup rutin via shell/cron:
./scripts/backup-database-kesiswaan.sh
./scripts/backup-dokumen-kesiswaan.sh
./scripts/backup-full-kesiswaan.sh
Yang diamankan:
- database MySQL/MariaDB
storage/app/public- file
.env(opsional pada full backup)
Lokasi backup default:
/var/backups/database-kesiswaan/database/var/backups/database-kesiswaan/files/var/backups/database-kesiswaan/env/var/backups/database-kesiswaan/manifests
Panduan restore lengkap tersedia di:
docs/BACKUP_RESTORE.md
Deploy ke Server Baru
Sebelum deploy, baca dulu requirement server di:
SERVER_REQUIREMENTS.md
Lalu lanjut ke panduan deploy lengkap di:
DEPLOY.md
Di sana sudah dibahas:
- fresh deploy
- update deploy
- setup web server
- storage link
- backup & restore dasar
- checklist verifikasi pasca deploy
Struktur Penting Project
app/ # controller, model, middleware, logic aplikasi
config/ # konfigurasi Laravel
database/ # migration, seeder, factory
public/ # document root web server
resources/views/ # Blade views
routes/ # web route & auth route
storage/app/public/ # file upload runtime (tidak masuk git)
DEPLOY.md # panduan deploy server baru
deploy.sh # script deploy
backup.sh # script backup
Catatan Penting
Jangan upload ke GitHub:
.env- dump database produksi
- file upload produksi
- dokumen siswa
- log runtime
- cache runtime
- credential / token / secret
Yang masuk GitHub:
- source code
- migration
- seeder
- konfigurasi contoh
- script deploy / backup
- dokumentasi
Alur Deploy yang Direkomendasikan
Fresh server
git clone <repo>
cd database-kesiswaan
cp .env.example .env
./deploy.sh
Update aplikasi
cd /var/www/database-kesiswaan
git pull origin main
./deploy.sh
Backup manual
cd /var/www/database-kesiswaan
./backup.sh
Branding
Branding aplikasi bisa diatur dari dashboard melalui menu:
- Pengaturan > Branding Aplikasi
Pengaturan ini dapat mencakup:
- nama aplikasi
- nama singkat / inisial
- logo utama
- favicon
- logo portal publik
Catatan Operasional
- source code di GitHub adalah source of truth untuk code
- data produksi tetap harus dibackup terpisah
- folder
storage/app/publicharus ikut dipindahkan saat migrasi server php artisan storage:linkwajib tersedia agar file publik tampil normal
Status Saat Ini
Project ini sudah memiliki fondasi deploy dasar:
- repository GitHub
DEPLOY.mddeploy.shbackup.sh.env.exampleyang lebih relevan
Lisensi / Kepemilikan
Project ini adalah aplikasi internal/operasional yang dikembangkan untuk kebutuhan administrasi sekolah. Gunakan dan kelola repository dengan akses yang sesuai, idealnya private repository.