# abhilasya77/drift-bitnbuild26 architecture

> Architecture diagram of the GitHub repository abhilasya77/drift-bitnbuild26, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/abhilasya77/drift-bitnbuild26
- Repository: https://github.com/abhilasya77/drift-bitnbuild26

## Overview

Tawashir is an identity-continuity platform: a user submits identity documents, confirms extracted fields, receives cross-document consistency results, and—when eligible—gets a temporary QR credential whose fingerprint can be verified independently. Unclear cases go to human review; biometric checks and document renewal/permanent-ID linking extend the flow. The graph reflects documented capabilities and sampled call ownership; several router and service implementations were not sampled, so their internal wiring is shown only where documented by the README or API entry point.

Main entry points: [`backend/app/main.py`](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/main.py) (FastAPI entry), [`backend/app/workflow.py`](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/workflow.py) (Workflow services), [`backend/app/db.py`](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/db.py) (Application database), [`backend/app/routers/documents.py`](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/routers/documents.py) (Document intake)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web clients"]
  node_frontend["Identity app<br/>[app.js]"]
  node_frontend_api["API client<br/>[api.js]"]
  node_review_ui["Reviewer view<br/>[review.html]"]
  node_verify_ui["Credential verifier<br/>[verify.html]"]
end

subgraph group_evidence["Identity evidence"]
  node_api["FastAPI entry<br/>[main.py]"]
  node_profiles["Identity profiles<br/>[profiles.py]"]
  node_documents["Document intake<br/>[documents.py]"]
  node_file_storage["Private file storage<br/>[storage.py]"]
  node_ocr["OCR and MRZ<br/>[ocr.py]"]
  node_database[("Application database<br/>[db.py]")]
  node_auth["Authentication and roles<br/>[auth.py]"]
end

subgraph group_decisions["Review and eligibility"]
  node_consistency_route["Consistency reports<br/>[consistency.py]"]
  node_consistency_engine["Consistency engine<br/>[consistency.py]"]
  node_workflow["Workflow services<br/>[workflow.py]"]
  node_reviews["Exception review<br/>[reviews.py]"]
  node_biometric_route["Biometric checks<br/>[biometric.py]"]
  node_eligibility["Eligibility checks<br/>[credentials.py]"]
end

subgraph group_assurance["Credential assurance"]
  node_credential_service["Credential lifecycle<br/>[credentials.py]"]
  node_permanent["Permanent ID linking<br/>[permanent.py]"]
  node_notifications["Expiry notifications<br/>[notifications.py]"]
  node_attestation["Chain attestation<br/>[web3_attest.py]"]
  node_contract["Attestation contract"]
end

node_person(("Identity applicant"))
node_reviewer(("Human reviewer"))
node_verifier(("Service verifier"))
node_supabase["Supabase services"]
node_face_provider["CompreFace"]
node_polygon["Polygon Amoy"]

node_person -->|"submits identity"| node_frontend
node_reviewer -->|"reviews cases"| node_review_ui
node_verifier -->|"scans credential"| node_verify_ui
node_frontend -->|"requests API"| node_frontend_api
node_review_ui -->|"requests API"| node_frontend_api
node_verify_ui -->|"requests API"| node_frontend_api
node_frontend_api -->|"calls HTTPS"| node_api
node_api -->|"dispatches routes"| node_profiles
node_api -->|"dispatches routes"| node_documents
node_api -->|"dispatches routes"| node_consistency_route
node_api -->|"dispatches routes"| node_reviews
node_api -->|"dispatches routes"| node_biometric_route
node_api -->|"dispatches routes"| node_eligibility
node_api -->|"dispatches routes"| node_permanent
node_api -->|"dispatches routes"| node_notifications
node_api -->|"authenticates requests"| node_auth
node_api -->|"initializes database"| node_database
node_profiles -->|"reads and writes"| node_database
node_documents -->|"stores and loads files"| node_file_storage
node_documents -->|"extracts fields"| node_ocr
node_documents -->|"stores document data"| node_database
node_file_storage -.->|"stores files"| node_supabase
node_auth -.->|"checks user token"| node_supabase
node_consistency_route -->|"requests evaluation"| node_workflow
node_workflow -->|"compares fields"| node_consistency_engine
node_workflow -->|"reads and writes"| node_database
node_reviews -->|"loads case evidence"| node_workflow
node_reviews -->|"loads reviewer files"| node_file_storage
node_biometric_route -->|"records results"| node_workflow
node_biometric_route -.->|"checks face"| node_face_provider
node_eligibility -->|"checks eligibility"| node_workflow
node_eligibility -->|"issues credential"| node_credential_service
node_credential_service -->|"stores credential"| node_database
node_credential_service -->|"attests fingerprint"| node_attestation
node_attestation -->|"writes attestation"| node_contract
node_contract -->|"records fingerprint"| node_polygon
node_permanent -->|"links permanent ID"| node_workflow
node_notifications -->|"checks document health"| node_workflow

click node_frontend "https://github.com/abhilasya77/drift-bitnbuild26/blob/main/frontend/app.js"
click node_frontend_api "https://github.com/abhilasya77/drift-bitnbuild26/blob/main/frontend/api.js"
click node_review_ui "https://github.com/abhilasya77/drift-bitnbuild26/blob/main/frontend/review.html"
click node_verify_ui "https://github.com/abhilasya77/drift-bitnbuild26/blob/main/frontend/verify.html"
click node_api "https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/main.py"
click node_profiles "https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/routers/profiles.py"
click node_documents "https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/routers/documents.py"
click node_file_storage "https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/services/storage.py"
click node_ocr "https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/services/ocr.py"
click node_consistency_route "https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/routers/consistency.py"
click node_consistency_engine "https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/ml/consistency.py"
click node_workflow "https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/workflow.py"
click node_reviews "https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/routers/reviews.py"
click node_biometric_route "https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/routers/biometric.py"
click node_eligibility "https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/routers/credentials.py"
click node_credential_service "https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/services/credentials.py"
click node_permanent "https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/routers/permanent.py"
click node_notifications "https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/routers/notifications.py"
click node_attestation "https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/services/web3_attest.py"
click node_contract "https://github.com/abhilasya77/drift-bitnbuild26/blob/main/blockchain/contracts/CredentialAttestation.sol"
click node_database "https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/db.py"
click node_auth "https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/auth.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_frontend,node_frontend_api,node_review_ui,node_verify_ui,node_reviewer toneBlue
class node_api,node_profiles,node_documents,node_file_storage,node_ocr,node_database,node_auth toneAmber
class node_consistency_route,node_consistency_engine,node_workflow,node_reviews,node_biometric_route,node_eligibility toneMint
class node_credential_service,node_permanent,node_notifications,node_attestation,node_contract toneRose
class node_person,node_verifier,node_supabase,node_face_provider,node_polygon toneIndigo
```

## Components

### Web clients

- [Identity app](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/frontend/app.js): `frontend/app.js`
- [API client](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/frontend/api.js): `frontend/api.js`
- [Reviewer view](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/frontend/review.html): `frontend/review.html`
- [Credential verifier](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/frontend/verify.html): `frontend/verify.html`

### Identity evidence

- [FastAPI entry](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/main.py): `backend/app/main.py`
- [Identity profiles](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/routers/profiles.py): `backend/app/routers/profiles.py`
- [Document intake](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/routers/documents.py): `backend/app/routers/documents.py`
- [Private file storage](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/services/storage.py): `backend/app/services/storage.py`
- [OCR and MRZ](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/services/ocr.py): `backend/app/services/ocr.py`
- [Application database](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/db.py): `backend/app/db.py`
- [Authentication and roles](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/auth.py): `backend/app/auth.py`

### Review and eligibility

- [Consistency reports](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/routers/consistency.py): `backend/app/routers/consistency.py`
- [Consistency engine](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/ml/consistency.py): `backend/ml/consistency.py`
- [Workflow services](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/workflow.py): `backend/app/workflow.py`
- [Exception review](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/routers/reviews.py): `backend/app/routers/reviews.py`
- [Biometric checks](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/routers/biometric.py): `backend/app/routers/biometric.py`
- [Eligibility checks](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/routers/credentials.py): `backend/app/routers/credentials.py`

### Credential assurance

- [Credential lifecycle](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/services/credentials.py): `backend/app/services/credentials.py`
- [Permanent ID linking](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/routers/permanent.py): `backend/app/routers/permanent.py`
- [Expiry notifications](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/routers/notifications.py): `backend/app/routers/notifications.py`
- [Chain attestation](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/backend/app/services/web3_attest.py): `backend/app/services/web3_attest.py`
- [Attestation contract](https://github.com/abhilasya77/drift-bitnbuild26/blob/main/blockchain/contracts/CredentialAttestation.sol): `blockchain/contracts/CredentialAttestation.sol`

### Other components

- **Identity applicant**
- **Human reviewer**
- **Service verifier**
- **Supabase services**
- **CompreFace**
- **Polygon Amoy**

## Connections

- Identity applicant → Identity app: submits identity
- Human reviewer → Reviewer view: reviews cases
- Service verifier → Credential verifier: scans credential
- Identity app → API client: requests API
- Reviewer view → API client: requests API
- Credential verifier → API client: requests API
- API client → FastAPI entry: calls HTTPS
- FastAPI entry → Identity profiles: dispatches routes
- FastAPI entry → Document intake: dispatches routes
- FastAPI entry → Consistency reports: dispatches routes
- FastAPI entry → Exception review: dispatches routes
- FastAPI entry → Biometric checks: dispatches routes
- FastAPI entry → Eligibility checks: dispatches routes
- FastAPI entry → Permanent ID linking: dispatches routes
- FastAPI entry → Expiry notifications: dispatches routes
- FastAPI entry → Authentication and roles: authenticates requests
- FastAPI entry → Application database: initializes database
- Identity profiles → Application database: reads and writes
- Document intake → Private file storage: stores and loads files
- Document intake → OCR and MRZ: extracts fields
- Document intake → Application database: stores document data
- Private file storage → Supabase services: stores files
- Authentication and roles → Supabase services: checks user token
- Consistency reports → Workflow services: requests evaluation
- Workflow services → Consistency engine: compares fields
- Workflow services → Application database: reads and writes
- Exception review → Workflow services: loads case evidence
- Exception review → Private file storage: loads reviewer files
- Biometric checks → Workflow services: records results
- Biometric checks → CompreFace: checks face
- Eligibility checks → Workflow services: checks eligibility
- Eligibility checks → Credential lifecycle: issues credential
- Credential lifecycle → Application database: stores credential
- Credential lifecycle → Chain attestation: attests fingerprint
- Chain attestation → Attestation contract: writes attestation
- Attestation contract → Polygon Amoy: records fingerprint
- Permanent ID linking → Workflow services: links permanent ID
- Expiry notifications → Workflow services: checks document health
