25 lines
2 KiB
Markdown
25 lines
2 KiB
Markdown
## Intent
|
||
|
||
DirektVermittlungDe (DVD) exists to collapse the multi-step "phone hunt" citizens go through to reach the right caseworker in a German public authority. Today, resolving a routine inquiry takes ~2 minutes once you reach the correct person, but ~30 minutes to get there (wrong contact → call center → transfer → re-identification → re-explanation).
|
||
|
||
DVD replaces that chain with a single step: the citizen submits a source document or a unique identifying feature (e.g. Aktenzeichen/Kassenzeichen). The system determines functional responsibility from that input and opens a direct communication thread with the correct caseworker — via callback, appointment, or text chat — instead of parking citizens in queues or burdening caseworkers with manual forwarding.
|
||
|
||
### Core architectural constraint
|
||
|
||
Documents use a split-payload model (ADR-0001): plaintext routing metadata (authorityId, referenceNumber, docType, issuedAt) is separated from an encrypted payload (the actual document/scan). The backend routes on metadata alone and never decrypts the payload — this is non-negotiable and shapes every service boundary.
|
||
|
||
### Where the project stands
|
||
|
||
Three independent prototype implementations (chatgpt5, geminiNbt3pro, grok4.1) explored the problem space. The project is now migrating to a single production codebase under `/src`, built test-first (TDD), governed by the ADRs in `docs/architecture/adr/` and tracked in `docs/WORKPLAN_MainCodebase_Integration.md`.
|
||
|
||
### In scope
|
||
- Document/reference-number intake and metadata-based routing to the responsible unit
|
||
- Citizen–official communication threads (chat, callback requests, appointments)
|
||
- Stateless OAuth2/JWT authentication with citizen/official scopes
|
||
- Async data export for authority systems
|
||
- GDPR-compliant retention and cleanup of documents/threads
|
||
|
||
### Out of scope
|
||
- Decrypting or processing document payload contents in the main service
|
||
- General-purpose CRM or ticketing functionality unrelated to authority routing
|
||
- Non-government (private sector) support-routing use cases
|