How prshntkrr/form_builder works
e-Agrology is a modular agricultural data-collection platform: users define forms, deploy them to project participants, collect and review answers, and report on the resulting data. The graph combines the README’s documented capabilities with the supplied source excerpts; several domain connections are documented rather than directly visible in sampled implementations, so uncertain call-level wiring is omitted.
Main entry points: forms.py Form routes · submission_service.py Submission processing · main.py FastAPI entry point · form_schema.py Form definition
Components 21
Application core
- React application
frontend/src/App.jsx - Authentication
backend/app/core/auth_service.py - FastAPI entry point
backend/app/main.py - PostgreSQL
backend/app/core/database.py
Forms and collection
- Form builder and renderer
frontend/src/modules/forms/index.jsx - Form routes
backend/app/modules/forms/routers/forms.py - Form definition
backend/app/modules/forms/form_schema.py - Submission processing
backend/app/modules/forms/submission_service.py - Channel ingestion
backend/app/modules/forms/ingestion.py
Standards and catalogues
- Standards services
backend/app/modules/standards - Client catalogues
backend/app/modules/client_catalog/catalog_service.py
Projects and review
- Project management
backend/app/modules/projects/project_service.py - Form assignment
backend/app/modules/projects - Submission review
backend/app/modules/projects/submission_workflow.py
Reporting and integrations
- Dashboard reporting
backend/app/modules/dashboards/services/dashboard_service.py - Dashboard query
backend/app/modules/dashboards/services/query_service.py - External data import
backend/app/modules/external_db/import_service.py
Other components
- Platform user
- External database
- MCDC platform
- OpenAI service
Connections 23
- Platform user → React application: uses
- React application → FastAPI entry point: REST requests
- FastAPI entry point → Authentication: mounts auth routes
- FastAPI entry point → PostgreSQL: initializes pool
- FastAPI entry point → Form routes: mounts module routes
- Form builder and renderer → Form routes: form requests
- Form routes → Form definition: normalizes definitions
- Form definition → Standards services: uses standards
- Form definition → Client catalogues: uses catalogues
- Form routes → Submission processing: handles submissions
- Channel ingestion → Submission processing: normalizes answers for
- Submission processing → PostgreSQL: stores answers
- Platform user → Project management: manages projects
- Project management → Form assignment: assigns forms
- Form assignment → Submission processing: targets collection
- Submission processing → Submission review: enters workflow
- Platform user → Dashboard reporting: views reports
- Dashboard reporting → Dashboard query: requests data
- Dashboard query → PostgreSQL: reads collected data
- External database → External data import: provides tables
- External data import → PostgreSQL: copies data
- Form definition → OpenAI service: drafts from prompts
- Form routes → MCDC platform: exports published forms