326 lines
5.9 KiB
Markdown
326 lines
5.9 KiB
Markdown
# 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 <repo>
|
|
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**.
|