# Survey Data Tools Standards {#survey-data-tools-standards}


Industry-standard tools benchmarked against SurveyCTO, ODK Central, KoboToolbox, Qualtrics, SurveyMonkey, and REDCap.


## Survey Service (Port 8001) {#survey-service-port-8001}



### Implemented {#implemented}
- **Survey CRUD**: Full lifecycle management (Draft, Published, Archived).
- **Survey Versioning**: Immutable snapshots on publication.
- **XLSForm Import/Export**: Bi-directional conversion using `pyxform`.
- **Survey Templates**: Core library for rapid deployment.
- **Question Types**: Comprehensive support (XLSForm standard + Calendar Grid).
- **Multi-tenant Isolation**: Strict logical separation via `tenant_id`.


### Roadmap {#roadmap}
- **Survey Cloning**: Planned for next release.
- **Multi-language Support**: Partial (supported via XLSForm labels, UI translation pending).


## Form Service (Port 8010) {#form-service-port-8010}



### Implemented {#implemented-1}
- **Dynamic Rendering**: Dynamic conversion of schemas into interactive web forms.
- **Logic Evaluation**: Real-time skip logic (relevance) and constraint validation.
- **Draft/Resume**: Session-based persistence for long forms.
- **Media Capture**: Integrated image, signature, and audio uploads.
- **Paging**: Support for complex multi-page layouts.


### Roadmap {#roadmap-1}
- **Enumerator Mode**: Optimized UI for high-speed field data entry.
- **Progress Tracking**: Visual progress indicators for respondents.


## Data Service (Port 8002) {#data-service-port-8002}



### Implemented {#implemented-2}
- **JSONB Storage**: Flexible, high-performance storage for polymorphic survey answers.
- **Attachment Pipeline**: Automated coordination between `data-service` and `media-service`.
- **Bulk Operations**: Batch approval, deletion, and status transitions.
- **Multi-format Export**: Asynchronous export to **CSV, XLSX, and JSON** via Celery.
- **Event-Driven**: Integration with Redis for sub-second data propagation.


### Roadmap {#roadmap-2}
- **Partial Submission Handling**: Native support for incomplete but submitted records.
- **Duplicate Detection**: Smart matching of responses based on respondent ID or key variables.


## Cross-Service Standards {#cross-service-standards}


| Requirement | Status | Note |
|-------------|--------|------|
| Rate Limiting | Implemented | Redis-based ingress limiting |
| Audit Logging | Implemented | Centralized `audit-service` |
| RBAC | Implemented | Permission-based JWT check |
| Soft Deletes | Implemented | Standardized across core services |
| Health Checks | Implemented | `/health` or `/api/v1/health` |
| Idempotency | Implemented | Required for `sync-service` operations |
| OpenTelemetry | Implemented | Distributed tracing for all services |
