Lewati ke konten

Instalasi & environment

Halaman ini untuk yang memasang aplikasi (admin teknis). Guru tidak perlu membacanya.

  • 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.
  1. Pasang dependensi:

    Terminal window
    bun install
  2. Salin contoh environment lalu isi DATABASE_URL dan JWT_SECRET:

    Terminal window
    cp .env.example .env
  3. Buat koleksi dan index database:

    Terminal window
    bun run db:push
  4. Buat data awal (admin, guru, kelas, dan siswa contoh):

    Terminal window
    bun run db:seed -- --admin-password=GANTI_INI --staff-password=GANTI_INI
  5. 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.

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.

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

Variabel Keterangan
SHOW_DEV_SEED true atau false (default false). Kalau true, halaman login menampilkan akun contoh dan tombol Jalankan seed. Matikan di produksi.

Setelah sekolah mulai memakai data asli:

  1. Masuk sebagai admin dan buka Akun.
  2. Di bagian Data contoh, tekan Hapus data contoh.
  3. 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 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