How sanya-shch/quorvia works
Quorvia lets form authors create and publish translated, conditional surveys; respondents complete them with autosaved progress; authors then inspect response and flow analytics and request downloadable exports. The React host serves the builder, dashboard, and respondent experience, while analytics are hosted in a Vue micro-frontend. The backend separates form management, attempts, submissions, analytics, and exports, with PostgreSQL and Redis-backed jobs. Some subsystem links below reflect README documentation because their implementation files were not sampled; those links cite the README.
Main entry points: prisma.ts PostgreSQL data · routes.tsx Application routes · PublicFormPage.tsx Public form flow · form.service.ts Form management
Components 27
React product experience
- Application routes
react-frontend/src/routes.tsx - Forms dashboard
react-frontend/src/pages/dashboard/Dashboard.tsx - Form builder
react-frontend/src/pages/builder/FormBuilder.tsx - Builder state
react-frontend/src/pages/builder/hooks/useFormBuilder.ts - Public form flow
react-frontend/src/pages/viewer/PublicFormPage.tsx - Attempt autosave
react-frontend/src/pages/viewer/hooks/useAttemptAutosave.ts - Analytics host
react-frontend/src/pages/analytics/FormAnalyticsPage.tsx
Analytics interface
- Vue analytics app
vue-analytics/src/AnalyticsApp.vue - Analytics API client
vue-analytics/src/api/client.ts - Analytics views
vue-analytics/src/components/QuestionOverviewCard.vue
Backend domain services
- Authentication
backend/src/modules/auth/auth.service.ts - Form management
backend/src/modules/form/form.service.ts - Attempt persistence
backend/src/modules/attempt/attempt.service.ts - Attempt validation
backend/src/modules/attempt/attempt.schema.ts - Response submission
backend/src/modules/response/response.service.ts - Survey analytics
backend/src/modules/analytics/analytics.service.ts - Export jobs API
backend/src/modules/export/export.service.ts
Async export processing
- Export worker
backend/src/modules/export/export.worker.ts - Export formats
backend/src/modules/export/exporters - Job queue
backend/src/modules/export/export.queue.ts
Shared runtime and data
- PostgreSQL data
backend/src/prisma/prisma.ts - Condition engine
packages/condition-engine/src/condition.ts - Shared contracts
packages/shared-types/src/index.ts - API middleware
backend/src/shared/middleware/auth.ts - Runtime configuration
backend/src/config/env.ts
Other components
- Form author
- Respondent
Connections 34
- Form author → Application routes: opens product
react-frontend/src/routes.tsx - Respondent → Application routes: opens survey
react-frontend/src/routes.tsx - Application routes → Forms dashboard: routes to
react-frontend/src/routes.tsx - Application routes → Form builder: routes to
react-frontend/src/routes.tsx - Application routes → Public form flow: routes to
react-frontend/src/routes.tsx - Application routes → Analytics host: routes to
react-frontend/src/routes.tsx - Form builder → Builder state: uses state
- Builder state → Condition engine: validates conditions
react-frontend/src/pages/builder/hooks/useFormBuilder.ts - Public form flow → Attempt autosave: saves progress
- Analytics host → Vue analytics app: hosts remote
README.md - Vue analytics app → Analytics API client: uses client
- Analytics API client → Survey analytics: requests analytics
- Vue analytics app → Analytics views: renders views
- Form builder → Form management: manages forms
- Public form flow → Form management: loads published form
- Public form flow → Attempt persistence: autosaves attempt
- Public form flow → Response submission: submits answers
- Form author → Authentication: authenticates
README.md - Authentication → PostgreSQL data: reads and writes
backend/src/modules/auth/auth.service.ts - Form management → PostgreSQL data: reads and writes
- Attempt persistence → PostgreSQL data: reads and writes
backend/src/modules/attempt/attempt.service.ts - Attempt persistence → Condition engine: checks conditions
backend/src/modules/attempt/attempt.service.ts - Response submission → PostgreSQL data: persists responses
- Survey analytics → PostgreSQL data: queries responses
- Form author → Export jobs API: requests export
- Export jobs API → Job queue: enqueues job
backend/src/modules/export/export.service.ts - Export jobs API → PostgreSQL data: tracks jobs
backend/src/modules/export/export.service.ts - Export worker → Job queue: consumes jobs
- Export worker → Export formats: generates file
- Export worker → PostgreSQL data: reads response data
- Attempt validation → Attempt persistence: validates input
- API middleware → Authentication: guards requests
- Form management → Shared contracts: uses contracts
- Runtime configuration → PostgreSQL data: configures connection
backend/src/prisma/prisma.ts