# 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|
|:-----------------:|
|
|
| Form Parse with Errors |
|
|
| Form Parse Successful |
|
|
## 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.