# 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:12 UTC against the live Render deployment.* | Metric Type | Recent Performance | |-------------|-------------------| | **File Validation** | 2142–3228ms (2.142–3.228s) | | **Form Parsing** | 6833–8813ms (6.833–8.813s) | | **Form Upload** | 9718–9718ms (9.718–9.718s) | | **Question Processing** | 23.473ms per item | | **Option Processing** | 13.535ms per item | | **Batch Processing** | 9718–9718ms (9.718–9.718s) | | **Delete Operations** | 1089–1089ms (1.089–1.089s) | | **Cold Start Time** | 830ms | ## 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.