# 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: ```bash SERVER_REQUIREMENTS.md ``` --- ## Instalasi Lokal / Fresh Setup ### 1. Clone repository ```bash git clone https://github.com/novysan87/database-kesiswaan.git cd database-kesiswaan ``` ### 2. Copy file environment ```bash cp .env.example .env ``` ### 3. Edit konfigurasi `.env` Sesuaikan terutama: - `APP_URL` - `DB_HOST` - `DB_PORT` - `DB_DATABASE` - `DB_USERNAME` - `DB_PASSWORD` ### 4. Jalankan script deploy ```bash ./deploy.sh ``` Untuk staging: ```bash APP_ENVIRONMENT=staging ./deploy.sh ``` Kalau perlu seeder: ```bash RUN_SEED=true ./deploy.sh ``` --- ## Menjalankan Secara Manual Kalau tidak memakai `deploy.sh`: ```bash composer install npm install npm run build php artisan key:generate php artisan migrate php artisan storage:link ``` Untuk development: ```bash php artisan serve npm run dev ``` --- ## Backup Project ini menyediakan dua lapis mekanisme backup: ### 1. Script lama (manual dasar) ```bash ./backup.sh ``` ### 2. Script backup operasional yang direkomendasikan Gunakan script di folder `scripts/` untuk backup rutin via shell/cron: ```bash ./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: ```bash docs/BACKUP_RESTORE.md ``` --- ## Deploy ke Server Baru Sebelum deploy, baca dulu requirement server di: ```bash SERVER_REQUIREMENTS.md ``` Lalu lanjut ke panduan deploy lengkap di: ```bash 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 ```bash 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 ```bash git clone cd database-kesiswaan cp .env.example .env ./deploy.sh ``` ### Update aplikasi ```bash cd /var/www/database-kesiswaan git pull origin main ./deploy.sh ``` ### Backup manual ```bash 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/public` harus ikut dipindahkan saat migrasi server - `php artisan storage:link` wajib tersedia agar file publik tampil normal --- ## Status Saat Ini Project ini sudah memiliki fondasi deploy dasar: - repository GitHub - `DEPLOY.md` - `deploy.sh` - `backup.sh` - `.env.example` yang 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**.