How melvingamanajr/e-rams-2.0 works
e-RAMS is a municipal employee attendance system. HR maintains employees and schedules, records or corrects four daily attendance events, and reviews monthly time records and the audit trail; kiosks can capture face-based punches after consent-based enrollment. The web app calls a NestJS API, which applies authentication and domain services over PostgreSQL; optional FastAPI face recognition supports enrollment and kiosk identification. The graph preserves documented reporting, live monitoring, PWA, and administration capabilities. Some paths are linked from README or index evidence; unsampled relationships are left unconnected.
Main entry points: api.ts API client · controllers.ts HTTP controllers · attendance.ts Punch processing · biometrics.ts Consent and biometrics
Components 26
Web workspace
- Workspace shell
apps/web/src/App.vue - Page routing
apps/web/src/router.ts - API client
apps/web/src/api.ts - Employee directory
apps/web/src/pages/Employees.vue - Attendance records
apps/web/src/pages/Attendance.vue - Schedules
apps/web/src/pages/Shifts.vue - Time records
apps/web/src/pages/Reports.vue - Audit trail
apps/web/src/pages/Audit.vue - Overview dashboard
apps/web/src/pages/Dashboard.vue - Administration
apps/web/src/pages/Settings.vue - Kiosk capture
apps/web/src/pages/Kiosk.vue - Camera capture
apps/web/src/components/Camera.vue
API and domain
- HTTP controllers
apps/api/src/controllers.ts - Punch processing
apps/api/src/attendance.ts - Schedule calculations
apps/api/src/time.ts - DTR rendering
apps/api/src/reports.ts
Persistence and security
- Authentication and roles
apps/api/src/auth.ts - PostgreSQL data
apps/api/src/db.ts - Template encryption
apps/api/src/crypto.ts - Rate limits
apps/api/src/limits.ts
Face recognition
- Consent and biometrics
apps/api/src/biometrics.ts - Face extraction and matching
services/face/app/main.py
Live and install
- Live invalidations
apps/api/src/live.ts - PWA shell caching
apps/web/public/sw.js
Other components
- HR and staff
- Kiosk user
Connections 32
- HR and staff → Workspace shell: uses
apps/web/src/App.vue - Kiosk user → Kiosk capture: captures punch
README.md - Workspace shell → Page routing: renders routes
apps/web/src/router.ts - Workspace shell → API client: signs in
apps/web/src/App.vue - Employee directory → API client: requests data
apps/web/src/pages/Employees.vue - Attendance records → API client: requests data
apps/web/src/pages/Attendance.vue - Schedules → API client: requests data
apps/web/src/pages/Shifts.vue - Time records → API client: requests data
apps/web/src/pages/Reports.vue - Audit trail → API client: requests data
apps/web/src/pages/Audit.vue - Overview dashboard → API client: requests data
apps/web/src/pages/Dashboard.vue - Administration → API client: requests data
apps/web/src/pages/Settings.vue - Kiosk capture → Camera capture: captures image
apps/web/src/pages/Kiosk.vue - Kiosk capture → API client: submits capture
apps/web/src/pages/Kiosk.vue - API client → HTTP controllers: calls HTTP API
README.md - HTTP controllers → Authentication and roles: checks access
apps/api/src/controllers.ts - HTTP controllers → Punch processing: records and queries
apps/api/src/controllers.ts - HTTP controllers → Consent and biometrics: enrolls and identifies
apps/api/src/controllers.ts - HTTP controllers → DTR rendering: renders PDF
apps/api/src/controllers.ts - HTTP controllers → PostgreSQL data: manages records
apps/api/src/controllers.ts - Punch processing → PostgreSQL data: reads and writes
apps/api/src/attendance.ts - Punch processing → Schedule calculations: calculates work dates
apps/api/src/attendance.ts - Punch processing → Live invalidations: signals changes
apps/api/src/attendance.ts - Punch processing → DTR rendering: provides DTR data
apps/api/src/controllers.ts - Consent and biometrics → PostgreSQL data: stores templates
apps/api/src/biometrics.ts - Consent and biometrics → Template encryption: encrypts templates
apps/api/src/biometrics.ts - Consent and biometrics → Face extraction and matching: requests extraction and match
apps/api/src/biometrics.ts - Consent and biometrics → Punch processing: submits recognized punch
apps/api/src/controllers.ts - DTR rendering → Schedule calculations: uses calculations
apps/api/src/reports.ts - Authentication and roles → PostgreSQL data: validates sessions
apps/api/src/auth.ts - HTTP controllers → Rate limits: checks request limits
apps/api/src/controllers.ts - Workspace shell → PWA shell caching: offers installable shell
README.md - API client → Live invalidations: refreshes on invalidation
README.md