Location- and face-verified attendance for many organizations at once. Employees check in from a mobile app; admins manage staff, locations, shifts, and reports from a web dashboard. Multi-tenant, co-branded, and built entirely on free tiers โ no credit card.
โจ Features ยท ๐ผ๏ธ Screenshots ยท ๐งญ Architecture ยท โฌ๏ธ Setup ยท ๐บ๏ธ Roadmap
Important
Educational & Authorized Use Disclaimer
This project is developed strictly for educational purposes, legitimate organizational management, and authorized attendance tracking. The developer (@n0xnull) does not condone unauthorized deployment or privacy violations. See DISCLAIMER.md for full terms.
๐ฎ๐ฉ Baca dalam Bahasa Indonesia
Muster adalah platform presensi multi-tenant: satu backend dan satu aplikasi melayani banyak organisasi sekaligus. Karyawan check-in dari aplikasi mobile; admin mengelola staf, lokasi, shift, dan laporan dari dashboard web.
Verifikasi kehadiran: lokasi (geofence Haversine, radius per lokasi) dan wajah (MobileFaceNet on-device โ hanya vektor yang dikirim, bukan foto). Deteksi GPS palsu (mock location) bawaan.
Fitur: Import karyawan via Excel, penjadwalan massal, ekspor CSV, super admin untuk mengelola banyak institusi, 100% gratis (Supabase + Vercel + Expo).
Attendance across many organizations usually means a separate app per institution, easy buddy-punching (titip absen), and real cost. Field workforces โ ambulance drivers, security posts, field teams โ are especially hard to track because they report from many locations, not one office.
Muster is a single multi-tenant platform: one backend and one app serve many institutions. Presence is verified by location (geofence) and face, while admins manage everything from a web dashboard. To muster is to assemble personnel and take the roll โ to confirm who is present and accounted for. That is exactly what this platform does, for every organization that plugs into it.
- ๐ Location check-in (no paid Maps API) โ Haversine geofence; radius set per location by the admin; check-in rejected outside the radius, with a live map view.
- ๐ฐ๏ธ Anti-fake-GPS โ detects mock-location apps and flags spoofed coordinates.
- ๐ Shift-aware โ check-in/out tied to the day's shift; on-time / late computed automatically, with a personal attendance history.
- ๐งโ๐ผ Face verification โ on-device liveness (anti-photo) + identity matching with MobileFaceNet embeddings. Private: only vectors leave the device, not photos.
- ๐ข Multi-tenant by design โ data isolated per organization via PostgreSQL Row Level Security. One database, many institutions.
- ๐จ Co-brand โ the Muster brand stays primary; each institution appears as a secondary label (Muster ยท Institution Name) with its own small logo.
- ๐๏ธ Full management โ employees (manual + Excel import), locations, shifts, and schedules (bulk assign to many employees across a date range).
- ๐ Reports & recap โ filter by date/employee, on-time/late/mock summary, CSV export for Excel.
- ๐๏ธ Super admin โ create and manage institutions with no redeploy.
- ๐ 100% free tier โ Supabase, Vercel, Expo/EAS, OpenStreetMap. No credit card.
Login by NIP ยท Home with live GPS geofence + shift status ยท Photo check-in / check-out ยท Attendance history
Dashboard ยท Employees ยท Locations & radius ยท Shift scheduling ยท Reports + CSV export ยท Co-brand identity
MOBILE (employee) WEB ADMIN (institution)
React Native ยท Expo Next.js ยท Tailwind
check-in: GPS + face staff, locations, shifts,
dynamic co-brand Excel import, reports
\ /
\ HTTPS ยท JWT /
\ /
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ BACKEND โ Supabase โ
โ PostgreSQL + RLS โ
โ Auth ยท Storage ยท Edge fn โ
โ every row โ tenant_id โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Monorepo layout:
muster/
โโโ supabase/ # schema + RLS + auth functions + storage policies + seed
โโโ apps/
โ โโโ admin/ # web dashboard (Next.js)
โ โโโ mobile/ # employee app (Expo / React Native)
โโโ assets/ # brand + screenshots
Full technical design: ../MUSTER_BLUEPRINT.md.
Follow supabase/README.md: create a free Supabase project,
run migrations/0001 โ 0002 โ 0003 โ 0004 โ seed.sql, create the Storage
buckets (attendance-photos private, branding public), and turn off
Authentication โธ Email โธ Confirm email (employee login uses virtual NIP@muster.com
addresses). Copy the Project URL and anon key.
cd apps/admin
cp .env.local.example .env.local # fill URL + anon key
npm install
npm run dev # http://localhost:3000Deploy free on Vercel: import the repo, set Root Directory = apps/admin,
add the two NEXT_PUBLIC_SUPABASE_* env vars. See DEPLOY.md.
cd apps/mobile
cp .env.example .env # fill URL + anon key
npm install
eas build --platform android --profile preview # โ downloadable .apkDetails in apps/mobile/BUILD_APK.md. Face recognition
requires a dev build โ see apps/mobile/FACE_RECOGNITION.md.
- Admin adds an office/post location (use "pakai lokasi saya" on-site) and registers employees (manually or via Excel import), each with an NIP.
- Employee installs the app and logs in with their NIP (default password = NIP), then sets a new password on first login.
- Employee taps Absen sekarang โ the app checks distance to the location (Haversine), detects fake GPS, takes a proof photo, and records the check-in/out.
- The check-in appears in the admin Reports page, ready to export as CSV.
Data out of sync after install? See
apps/mobile/TROUBLESHOOTING.mdโ usually the Confirm email toggle or a missing migration.
- Phase 0 โ โ location + photo attendance, multi-tenant, web admin, co-brand.
- Phase 1 ๐ง โ face recognition (ML Kit liveness + MobileFaceNet); math + DB columns ready, embedding extraction needs a dev build.
- Phase 2 โ โ shifts, schedules (bulk assign), Excel import, reports + CSV.
- Phase 3 โ โ super admin: create/manage institutions with no redeploy.
- Phase 4 โณ โ FCM notifications, MapLibre map picker, anti-fraud hardening.
Muster stores location and biometric (face) data. Handle it under Indonesia's PDP law: state the purpose of collection, store only what's needed (embeddings, not raw photos where possible), and provide access/erasure. This is not legal advice.
Issues and PRs welcome. The backend is plain PostgreSQL + RLS; the apps are standard Next.js and Expo โ add a page or a screen and wire it to Supabase.
For legitimate workforce attendance on systems and staff you are authorized to manage. The author is not responsible for misuse.
MIT ยฉ 2026 Abil Khosim.
Cybersecurity Specialist
Muster is an original project by Abil Khosim, an independent security tool by Abil Khosim (NoxNull). Released under the MIT License โ ยฉ 2026 Abil Khosim. Please keep this attribution when reusing or redistributing.
Everyone present. Everyone accounted for. ๐