P
Presensi
v2 · Supabase
Absensi karyawan

Masuk dulu,
baru absen.

Login per karyawan — bukan pilih nama dari daftar. Bukti kehadiran cukup login + selfie saat masuk dan pulang. Flextime 08.00–09.00, wajib 8 jam, Senin–Jumat.

Hanya untuk email yang sudah didaftarkan admin di allowlist.

ATAU EMAIL + PASSWORD

Admin tidak pernah membuat atau memegang password kamu. Daftar hanya bisa kalau email kamu sudah ada di allowlist admin.

Cara kerja flextime

08.00–09.00 — jendela mulai. Masuk di jam ini = tepat waktu.
Lewat 09.00 — tercatat terlambat.
Wajib 8 jam — masuk 09.00 berarti pulang 17.00. Pulang lebih awal = jam kurang.
Senin–Jumat saja — Sabtu & Minggu bukan hari absen dan tidak dihitung alpa.
Setup admin — wajib dibaca sekali

1. Jalankan skema. Di Supabase Dashboard > SQL Editor, jalankan file supabase-schema.sql (tabel allowlist, profiles, app_config, attendance, correction_requests, notifications + RLS).

2. Seed admin pertama.

insert into public.allowlist (email, full_name, role) values ('mzakiizzuddin@gmail.com', 'M. Zaki Izzuddin', 'admin') on conflict (email) do update set full_name = excluded.full_name, role = excluded.role;

3. Buat bucket Storage. Storage > New bucket: nama selfie, Private (tidak public), lalu jalankan kebijakan storage.objects yang ada di bagian bawah file skema.

4. Daftarkan URL app ini di Supabase. Authentication > URL Configuration: isi Site URL dengan URL app Presensi v2 ini (URL yang kamu buka saat membaca halaman ini), dan tambahkan URL yang sama ke Redirect URLs. Tanpa ini, Login Google tidak bisa redirect kembali ke app.