# 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. - Live at [bulkforms.lverma.com](https://bulkforms.lverma.com/) - API at [bulk-api.lverma.com](https://bulk-api.lverma.com/docs) ## Screenshots | Upload & Validate| |:-----------------:| | image | | Form Parse with Errors | | image | | Form Parse Successful | | image | ## Performance Benchmarks are measured automatically on every push to `main` against the live VPS deployment. *Last measured: 2026-08-31 22:03 UTC against the live VPS deployment.* | Metric Type | Recent Performance | |-------------|-------------------| | **File Validation** | 1228–3090ms (1.228–3.090s) | | **Form Parsing** | 4511–5094ms (4.511–5.094s) | | **Form Upload** | 6553–6553ms (6.553–6.553s) | | **Question Processing** | 15.828ms per item | | **Option Processing** | 9.127ms per item | | **Batch Processing** | 6553–6553ms (6.553–6.553s) | | **Delete Operations** | 932–932ms (0.932–0.932s) | | **Cold Start Time** | 285ms | ## Stack | Layer | Tech | |-------|------| | Frontend | Angular 19, Angular Material, SSR | | Backend | FastAPI, Uvicorn, Pandas, Motor | | Database | MongoDB Atlas | | Deploy | Vercel (frontend) · VPS (backend) | | CI | GitHub Actions - tests + live perf benchmarks | See [`backend/README.md`](backend/README.md) for API reference, file format specs, and local setup. See [`frontend/README.md`](frontend/README.md) for component structure, config, and development guide.