Instalasi & environment
Halaman ini untuk yang memasang aplikasi (admin teknis). Guru tidak perlu membacanya.
Kebutuhan
Section titled “Kebutuhan”- Bun (atau Node.js) untuk menjalankan aplikasi.
- Database MongoDB berbentuk replica set, misalnya gratis di MongoDB Atlas.
- Aplikasi dibangun dengan Next.js 16, React 19, Prisma, dan Tailwind 4.
Langkah instalasi
Section titled “Langkah instalasi”-
Pasang dependensi:
Terminal window bun install -
Salin contoh environment lalu isi
DATABASE_URLdanJWT_SECRET:Terminal window cp .env.example .env -
Buat koleksi dan index database:
Terminal window bun run db:push -
Buat data awal (admin, guru, kelas, dan siswa contoh):
Terminal window bun run db:seed -- --admin-password=GANTI_INI --staff-password=GANTI_INI -
Jalankan:
Terminal window bun run dev
Seed membuat 1 admin (admin@sekolah.local), 1 guru (guru@sekolah.local), 2 kelas, dan 20 siswa contoh. Email bisa diganti dengan --admin-email= dan --staff-email=. Seed aman dijalankan ulang.
Daftar environment
Section titled “Daftar environment”| Variabel | Keterangan |
|---|---|
DATABASE_URL |
Connection string MongoDB. Nama database setelah / wajib ada, mis. mongodb+srv://user:pass@host/absensi-sholat. |
JWT_SECRET |
Rahasia penanda sesi, minimal 32 karakter. Buat dengan openssl rand -base64 32. |
Aplikasi langsung berhenti dengan pesan jelas kalau salah satunya kosong.
Sekolah dan jadwal
Section titled “Sekolah dan jadwal”| Variabel | Keterangan |
|---|---|
SCHOOL_NAME |
Nama sekolah di kartu siswa, sidebar, dan ekspor. Default Sekolah. |
SCHOOL_TZ |
Zona waktu sekolah. Default Asia/Makassar. |
PRAYER_WINDOWS |
Opsional. JSON untuk mengubah jam bawaan, mis. {"dzuhur":{"start":"12:00","end":"14:00"}}. Pengaturan admin di menu Jadwal sholat menimpa nilai ini. |
Login Google dan undangan (opsional)
Section titled “Login Google dan undangan (opsional)”| Variabel | Keterangan |
|---|---|
APP_URL |
Alamat publik aplikasi, mis. https://absensi.sekolah.sch.id. Harus sama dengan yang didaftarkan di Google. |
GOOGLE_CLIENT_ID |
Dari Google Cloud Console. Lihat Login Google. |
GOOGLE_CLIENT_SECRET |
Pasangan dari Client ID. |
Email SMTP (opsional)
Section titled “Email SMTP (opsional)”| Variabel | Keterangan |
|---|---|
SMTP_HOST |
Server SMTP. Kosongkan untuk mematikan pengiriman email. |
SMTP_PORT |
587 (STARTTLS) atau 465 (TLS langsung). Default 587. |
SMTP_SECURE |
Kosong = otomatis (true kalau port 465). Isi true atau false untuk menimpa. |
SMTP_USER |
Username SMTP. |
SMTP_PASS |
Password SMTP atau App Password. |
EMAIL_FROM |
Pengirim, mis. Absensi Sholat <akun@gmail.com>. |
Detail per penyedia ada di Email SMTP.
Lainnya
Section titled “Lainnya”| Variabel | Keterangan |
|---|---|
SHOW_DEV_SEED |
true atau false (default false). Kalau true, halaman login menampilkan akun contoh dan tombol Jalankan seed. Matikan di produksi. |
Menghapus data contoh
Section titled “Menghapus data contoh”Setelah sekolah mulai memakai data asli:
- Masuk sebagai admin dan buka Akun.
- Di bagian Data contoh, tekan Hapus data contoh.
- Di dialog, centang opsi untuk ikut menghapus akun contoh kalau perlu, ketik
HAPUS, lalu tekan Hapus.
Hanya siswa dan kelas bawaan seed (beserta catatan sholatnya, dan opsional akun contoh) yang dihapus. Siswa dan kelas asli tidak ikut terhapus. Tindakan ini tidak bisa dibatalkan.
Perintah
Section titled “Perintah”| Perintah | Fungsi |
|---|---|
bun run dev |
Server pengembangan. |
bun run build |
Build produksi. Juga menjalankan prisma generate dan prisma db push. |
bun run start |
Menjalankan hasil build. |
bun run db:push |
Membuat atau memperbarui koleksi dan index. |
bun run db:seed |
Membuat data awal. |
bun run lint, typecheck, test |
Pemeriksaan kode. |
Designed & Developed by NoxlyDev