Files
database-kesiswaan/README.md
T

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**.