How ephraimraxy/css-rms works
CSS RMS is an internal operations portal centered on submitting cash/material requisitions and routing them through department approval and vetting. Users enter through the React app, authenticate, and work in domain modules; the frontend API client communicates with the Express backend, which the README describes as owning all API routes. The README also documents memos, Document Studio, HR, and multi-department workflows. A separate desktop service receives ZKTeco attendance punches and stores them locally, with cloud sync capability. Unsampled backend routes and integrations are shown only where documentation supports them.
Main entry points: App.jsx Portal app · api.js API client · server.py Local ADMS server · AuthContext.jsx Authentication
Components 22
Portal and access
- Portal app
rms_frontend/src/App.jsx - Authentication
rms_frontend/src/context/AuthContext.jsx - Navigation layout
rms_frontend/src/components/Layout.jsx - API client
rms_frontend/src/lib/api.js - Offline data store
rms_frontend/src/lib/store.jsx - Express API
serve.js
Requisitions and approvals
- Requisition workflows
rms_frontend/src/components/RequisitionsPage.jsx - Workflow builder
rms_frontend/src/components/WorkflowBuilder.jsx - Department management
rms_frontend/src/components/DepartmentManager.jsx - Memo management
rms_frontend/src/components/MemoManagement.jsx
HR and records
- HR portal
rms_frontend/src/components/HRDashboard.jsx - Staff onboarding
rms_frontend/src/components/StaffOnboardingForm.jsx - Attendance tracking
rms_frontend/src/components/AttendanceTracker.jsx
Documents and communication
- Document Studio
rms_frontend/src/components/DocumentStudio.jsx - Chat widget
rms_frontend/src/components/ChatWidget.jsx
Attendance capture
- Tray launcher
desktop/app.py - Local ADMS server
desktop/server.py - Local attendance DB
desktop/database.py - Desktop settings
desktop/config_util.py
Other components
- Staff user
- PostgreSQL
- ZKTeco device
Connections 25
- Staff user → Portal app: uses
README.md - Portal app → Authentication: checks session
rms_frontend/src/App.jsx - Portal app → Navigation layout: renders
rms_frontend/src/App.jsx - Portal app → Requisition workflows: routes to
rms_frontend/src/App.jsx - Portal app → Workflow builder: routes to
rms_frontend/src/App.jsx - Portal app → Department management: routes to
rms_frontend/src/App.jsx - Portal app → Memo management: routes to
rms_frontend/src/App.jsx - Portal app → HR portal: routes to
rms_frontend/src/App.jsx - Portal app → Staff onboarding: loads
rms_frontend/src/App.jsx - Portal app → Document Studio: routes to
rms_frontend/src/App.jsx - Portal app → Chat widget: renders via layout
rms_frontend/src/components/Layout.jsx - Authentication → API client: calls
rms_frontend/src/context/AuthContext.jsx - Authentication → Offline data store: clears caches
rms_frontend/src/context/AuthContext.jsx - Requisition workflows → API client: loads data
- Workflow builder → API client: loads data
- Department management → API client: loads data
rms_frontend/src/components/DepartmentManager.jsx - API client → Express API: sends API requests
README.md - Offline data store → API client: syncs queued actions
rms_frontend/src/lib/store.jsx - Express API → PostgreSQL: persists records
README.md - ZKTeco device → Local ADMS server: sends punches
desktop/server.py - Tray launcher → Local ADMS server: starts server
desktop/app.py - Local ADMS server → Local attendance DB: stores attendance
desktop/server.py - Desktop settings → Tray launcher: configures launch
desktop/app.py - Local ADMS server → Express API: syncs to cloud
- Attendance tracking → API client: calls API
rms_frontend/src/components/AttendanceTracker.jsx