How opencrvs/opencrvs-core works
OpenCRVS is a civil-registration and vital-statistics platform. Its main user workflow is to authenticate a registrar, create or find a birth, death, or other vital-event record, submit it for review and registration, then manage corrections, duplicates, and certificates. The client also supports authorization, offline work, drafts, and document handling. Gateway and documents services expose configuration, authentication proxying, and file operations; country configuration handles user notifications, while optional MOSIP-facing code exchanges identity credentials. The map reflects documented routes and sampled calls; several feature implementations and their wiring were not sampled.
Main entry points: routes/routes.ts Event routes · App.tsx Client app · config/routes.ts API gateway · config/routes.ts Document service
Components 20
Registrar application
- Client app
packages/client/src/App.tsx - Event routes
packages/client/src/v2-events/routes/routes.ts - Access checks
packages/client/src/hooks/useAuthorization.ts - Offline storage
packages/client/src/storage.ts
Event registration
- Record search
packages/client/src/v2-events/features/events/Search/index.tsx - Event declaration
packages/client/src/v2-events/features/events/actions/declare/index.tsx - Event review
packages/client/src/v2-events/features/events/components/Review.tsx - Corrections
packages/client/src/v2-events/features/events/actions/correct/request/index.tsx - Duplicate review
packages/client/src/v2-events/features/events/actions/dedup/ReviewDuplicate.tsx - Certificates
packages/client/src/v2-events/features/events/actions/print-certificate/index.ts
Core services
- API gateway
packages/gateway/src/config/routes.ts - Authentication
packages/auth/src/features/authenticate/handler.ts - Document service
packages/documents/src/config/routes.ts - File storage
Identity integration
- Packet manager
packages/mosip-mock/src/routes/packet-manager-create.ts - MOSIP callback
Notifications and QA
- User notifications
packages/countryconfig-template/src/config/routes/userNotificationRoutes.ts - QA write proxy
packages/testland/src/qa-tools/write-proxy-routes.ts
Other components
- Registrar
- QA user
Connections 16
- Registrar → Client app: uses
- Client app → Event routes: navigates
- Client app → Access checks: checks access
- Client app → Offline storage: persists offline
- Event routes → Record search: routes to
- Event routes → Event declaration: routes to
- Event routes → Event review: routes to
- Event routes → Corrections: routes to
- Event routes → Duplicate review: routes to
- Event routes → Certificates: routes to
- API gateway → Authentication: proxies auth
- API gateway → Document service: proxies uploads
- Document service → File storage: stores files
- Packet manager → MOSIP callback: posts credential
- QA user → QA write proxy: submits changes
- QA write proxy → API gateway: proxies entity writes