mirror of
https://github.com/vee1e/bulk-questionnaire-upload.git
synced 2026-09-01 09:50:06 +00:00
mirror of https://github.com/vee1e/bulk-questionnaire-upload - Fork containing all the code for my C4GT '25 menteeship at D
- update_readme_metrics.py: fall back to existing README values instead of overwriting with "N/A (MongoDB not connected)" when metrics are unavailable - measure_perf.py: fix uploaded_id extraction — ParsedForm.id is top-level, not nested under a "form" key, so delete timing now actually runs Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .github/workflows | ||
| backend | ||
| frontend | ||
| scripts | ||
| tests | ||
| .gitignore | ||
| LICENSE | ||
| pytest.ini | ||
| README.md | ||
| run.sh | ||
Bulk Questionnaire Upload System
Upload, validate, and manage Excel-based questionnaires through a modern web UI. XLSForm-compatible three-sheet format (Forms / Questions Info / Answer Options), parsed into a mobile-app-ready JSON schema and stored in MongoDB.
Screenshots
| Upload & Validate |
|---|
| Form Parse with Errors |
| Form Parse Successful |
Performance
Benchmarks are measured automatically on every push to main against the live Render deployment.
Last measured: 2026-06-02 09:32 UTC against the live Render deployment.
| Metric Type | Recent Performance |
|---|---|
| File Validation | 1208–3962ms (1.208–3.962s) |
| Form Parsing | 5620–6194ms (5.620–6.194s) |
| Form Upload | N/A (MongoDB not connected) |
| Question Processing | N/A (MongoDB not connected) |
| Option Processing | N/A (MongoDB not connected) |
| Batch Processing | N/A (MongoDB not connected) |
| Delete Operations | N/A (MongoDB not connected) |
| Cold Start Time | 771ms |
Stack
| Layer | Tech |
|---|---|
| Frontend | Angular 19, Angular Material, SSR |
| Backend | FastAPI, Uvicorn, Pandas, Motor |
| Database | MongoDB Atlas |
| Deploy | Vercel (frontend) · Render (backend) |
| CI | GitHub Actions - tests + live perf benchmarks |
See backend/README.md for API reference, file format specs, and local setup.
See frontend/README.md for component structure, config, and development guide.