How sushilupadhayay/rkcnl_survey_app works
This repository implements a survey-management product: administrators use a web portal to manage surveys, question sets, categories, field staff, assignments, responses, and reports; an Express/Prisma API provides the application services and persists data. The sampled code confirms portal routing and authentication, API route dispatch, survey assignment operations, user administration, and database access. The Flutter platform files are native launch shells only in this tree, so the field-survey client workflow cannot be traced here; the legacy app is likewise not connected by shown evidence.
Main entry points: index.tsx Portal routes · app.js Express API · auth.middleware.js Authentication gate · db.js Prisma client
Components 32
Admin portal
- Portal runtime
admin-portal/src/App.tsx - Admin auth
admin-portal/src/features/auth/AuthContext.tsx - Login
admin-portal/src/features/auth/LoginPage.tsx - Portal routes
admin-portal/src/routes/index.tsx - Dashboard
admin-portal/src/features/dashboard/DashboardPage.tsx - Categories
admin-portal/src/features/categories/CategoryListPage.tsx - Survey authoring
admin-portal/src/features/surveys/QuestionBuilderPage.tsx - Survey detail
admin-portal/src/features/surveys/SurveyDetailPage.tsx - Assignments
admin-portal/src/features/assignments/AssignmentPage.tsx - User administration
admin-portal/src/features/users/UserListPage.tsx - Responses
admin-portal/src/features/responses/ResponseListPage.tsx - Reports
admin-portal/src/features/reports/ReportsPage.tsx - Profile
admin-portal/src/features/users/ProfilePage.tsx - HTTP client
admin-portal/src/api/client.ts
API services
- Express API
backend/src/app.js - Auth routes
backend/src/routes/auth.routes.js - Survey routes
backend/src/routes/survey.routes.js - User routes
backend/src/routes/user.routes.js - Category routes
backend/src/routes/category.routes.js - Response routes
backend/src/routes/response.routes.js - Dashboard routes
backend/src/routes/dashboard.routes.js - Auth controller
backend/src/controllers/auth.controller.js - Survey controller
backend/src/controllers/survey.controller.js - User controller
backend/src/controllers/user.controller.js - Category controller
backend/src/controllers/category.controller.js - Response controller
backend/src/controllers/response.controller.js - Dashboard controller
backend/src/controllers/dashboard.controller.js - Authentication gate
backend/src/middleware/auth.middleware.js - Request validation
backend/src/middleware/validate.middleware.js
Persistence
- Prisma client
backend/src/config/db.js - PostgreSQL
Other components
- Administrator
Connections 37
- Administrator → Portal runtime: uses
- Portal runtime → Admin auth: provides auth
admin-portal/src/App.tsx - Portal runtime → Portal routes: loads routes
admin-portal/src/App.tsx - Portal routes → Login: routes to
admin-portal/src/routes/index.tsx - Portal routes → Dashboard: routes to
admin-portal/src/routes/index.tsx - Portal routes → Categories: routes to
admin-portal/src/routes/index.tsx - Portal routes → Survey authoring: routes to
admin-portal/src/routes/index.tsx - Portal routes → Survey detail: routes to
admin-portal/src/routes/index.tsx - Portal routes → Assignments: routes to
admin-portal/src/routes/index.tsx - Portal routes → User administration: routes to
admin-portal/src/routes/index.tsx - Portal routes → Responses: routes to
admin-portal/src/routes/index.tsx - Portal routes → Reports: routes to
admin-portal/src/routes/index.tsx - Portal routes → Profile: routes to
admin-portal/src/routes/index.tsx - Admin auth → HTTP client: requests profile
admin-portal/src/features/auth/AuthContext.tsx - Express API → Auth routes: mounts routes
backend/src/app.js - Express API → Survey routes: mounts routes
backend/src/app.js - Express API → User routes: mounts routes
backend/src/app.js - Express API → Category routes: mounts routes
backend/src/app.js - Express API → Response routes: mounts routes
backend/src/app.js - Express API → Dashboard routes: mounts routes
backend/src/app.js - Auth routes → Auth controller: dispatches
backend/src/routes/auth.routes.js - Survey routes → Survey controller: dispatches
backend/src/routes/survey.routes.js - User routes → User controller: dispatches
backend/src/routes/user.routes.js - Category routes → Category controller: dispatches
backend/src/routes/category.routes.js - Response routes → Response controller: dispatches
backend/src/routes/response.routes.js - Dashboard routes → Dashboard controller: dispatches
backend/src/routes/dashboard.routes.js - Auth routes → Authentication gate: protects profile
backend/src/routes/auth.routes.js - Survey routes → Authentication gate: protects endpoints
backend/src/routes/survey.routes.js - Survey routes → Request validation: validates input
backend/src/routes/survey.routes.js - Category routes → Authentication gate: protects endpoints
backend/src/routes/category.routes.js - Category routes → Request validation: validates input
backend/src/routes/category.routes.js - User routes → Authentication gate: protects endpoints
backend/src/routes/user.routes.js - Auth controller → Prisma client: queries data
backend/src/controllers/auth.controller.js - Survey controller → Prisma client: reads writes
backend/src/controllers/survey.controller.js - User controller → Prisma client: reads writes
backend/src/controllers/user.controller.js - Authentication gate → Prisma client: loads user
backend/src/middleware/auth.middleware.js - Prisma client → PostgreSQL: connects