Files
database-kesiswaan/README.md
T

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_URL
  • DB_HOST
  • DB_PORT
  • DB_DATABASE
  • DB_USERNAME
  • DB_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/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.