Sanchalan Attendance
BYOD parliamentary attendance system for Rajya Sabha Secretariat — staff, contract, vendor, and member punching from their own phones, with geofencing, device-bound cryptographic signatures, CCS-rules leave engine, and a central audit chain.
What's running right now, how to log in, how to try it.
Containers, services, network, central infra integration.
SSO, punch decision matrix, leave + tour workflows.
Tables, relationships, retention.
Flutter source layout, screens, build steps.
9 dashboard pages — what each one does.
Quick index + OpenAPI link.
Auth, signing, encryption, audit chain.
Bring-up, recovery, common tasks.
At a glance
| Layer | Tech | Status |
|---|---|---|
| Backend API | Laravel 12 (PHP 8.2) | Live · /api/ |
| Web admin | Blade + Tailwind | Live · /admin/ |
| OpenAPI / Swagger UI | L5-Swagger | Live · /api/documentation |
| Mobile | Flutter 3.22+ | Source ready · build on dev workstation |
| Database | PostgreSQL 16 (sds-dms-postgres-1) | Live |
| Audit pipeline | Redis stream → sds_audit PG | Live · 19+ events landed |
| SSO (sb-iam Parichay) | OAuth2 PKCE | Wired, dev mode default |
What problem does this solve
The Rajya Sabha Secretariat needs daily attendance for ~2,300 staff across staff/contract/vendor categories, plus selective member-of-parliament tracking. Existing biometric punch posts are fixed locations and don't cover field staff or members. The CCS Leave Rules 1972 are the binding regulation for leave types and quotas.
Sanchalan Attendance replaces the punch posts with a BYOD app:
- Each phone is one-time-bound to one employee with a P-256 keypair (private key never leaves the device).
- Each punch is cryptographically signed, geofenced to Parliament campus polygons + Wi-Fi SSID allowlist, and anti-spoof checked (mock location, root, emulator).
- Leave applications run through a CCS rules engine (CL/EL/HPL/COMMUTED/CCL/RH) with structured per-type day calculation.
- Every action emits to a central audit chain (sds_audit) with a hash-chained log for forensic immutability.