# skvijay052/form-fill architecture

> Architecture diagram of the GitHub repository skvijay052/form-fill, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/skvijay052/form-fill
- Repository: https://github.com/skvijay052/form-fill

## Overview

FormFill is an Android app for locally saving pilgrim and contact details, then offering them for user-reviewed form filling through Android Autofill; it also includes a TTD booking helper. The main profile workflow runs from profile entry and encrypted storage to Autofill suggestions or the helper’s WebView interactions. The README documents Android Autofill integration and TTD support; unsampled manifest/configuration details limit certainty about exact framework wiring.

Main entry points: [`app/src/main/java/com/skv/formfill/MainActivity.kt`](https://github.com/skvijay052/form-fill/blob/main/app/src/main/java/com/skv/formfill/MainActivity.kt) (Profile editor), [`app/src/main/java/com/skv/formfill/SecureProfileStore.kt`](https://github.com/skvijay052/form-fill/blob/main/app/src/main/java/com/skv/formfill/SecureProfileStore.kt) (Encrypted profile store), [`app/src/main/java/com/skv/formfill/PilgrimAutofillService.kt`](https://github.com/skvijay052/form-fill/blob/main/app/src/main/java/com/skv/formfill/PilgrimAutofillService.kt) (Autofill service), [`app/src/main/java/com/skv/formfill/TtdBookingActivity.kt`](https://github.com/skvijay052/form-fill/blob/main/app/src/main/java/com/skv/formfill/TtdBookingActivity.kt) (TTD booking helper)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_profiles["Profile management"]
  node_profile_editor["Profile editor<br/>[MainActivity.kt]"]
  node_profile_model["Profile model<br/>[PilgrimProfile.kt]"]
  node_profile_store[("Encrypted profile store")]
end

subgraph group_autofill["Android Autofill"]
  node_autofill_service["Autofill service"]
end

subgraph group_ttd["TTD form helper"]
  node_ttd_helper["TTD booking helper"]
end

node_traveler(("Traveler"))
node_autofill_framework["Android Autofill"]
node_ttd_form["TTD form"]

node_traveler -->|"enters profiles"| node_profile_editor
node_profile_editor -->|"saves profiles"| node_profile_store
node_profile_editor -->|"creates profiles"| node_profile_model
node_profile_store -->|"loads values"| node_profile_model
node_traveler -.->|"requests suggestions"| node_autofill_framework
node_autofill_framework -.->|"dispatches fill"| node_autofill_service
node_autofill_service -->|"loads profiles"| node_profile_store
node_autofill_service -->|"offers datasets"| node_autofill_framework
node_profile_editor -->|"opens helper"| node_ttd_helper
node_ttd_helper -->|"loads profiles"| node_profile_store
node_ttd_helper -->|"fills fields"| node_ttd_form

click node_profile_editor "https://github.com/skvijay052/form-fill/blob/main/app/src/main/java/com/skv/formfill/MainActivity.kt"
click node_profile_model "https://github.com/skvijay052/form-fill/blob/main/app/src/main/java/com/skv/formfill/PilgrimProfile.kt"
click node_profile_store "https://github.com/skvijay052/form-fill/blob/main/app/src/main/java/com/skv/formfill/SecureProfileStore.kt"
click node_autofill_service "https://github.com/skvijay052/form-fill/blob/main/app/src/main/java/com/skv/formfill/PilgrimAutofillService.kt"
click node_ttd_helper "https://github.com/skvijay052/form-fill/blob/main/app/src/main/java/com/skv/formfill/TtdBookingActivity.kt"

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_profile_editor,node_profile_model,node_profile_store toneBlue
class node_autofill_service toneAmber
class node_ttd_helper toneMint
class node_traveler,node_autofill_framework,node_ttd_form toneIndigo
```

## Components

### Profile management

- [Profile editor](https://github.com/skvijay052/form-fill/blob/main/app/src/main/java/com/skv/formfill/MainActivity.kt): `app/src/main/java/com/skv/formfill/MainActivity.kt`
- [Profile model](https://github.com/skvijay052/form-fill/blob/main/app/src/main/java/com/skv/formfill/PilgrimProfile.kt): `app/src/main/java/com/skv/formfill/PilgrimProfile.kt`
- [Encrypted profile store](https://github.com/skvijay052/form-fill/blob/main/app/src/main/java/com/skv/formfill/SecureProfileStore.kt): `app/src/main/java/com/skv/formfill/SecureProfileStore.kt`

### Android Autofill

- [Autofill service](https://github.com/skvijay052/form-fill/blob/main/app/src/main/java/com/skv/formfill/PilgrimAutofillService.kt): `app/src/main/java/com/skv/formfill/PilgrimAutofillService.kt`

### TTD form helper

- [TTD booking helper](https://github.com/skvijay052/form-fill/blob/main/app/src/main/java/com/skv/formfill/TtdBookingActivity.kt): `app/src/main/java/com/skv/formfill/TtdBookingActivity.kt`

### Other components

- **Traveler**
- **Android Autofill**
- **TTD form**

## Connections

- Traveler → Profile editor: enters profiles (evidence: `app/src/main/java/com/skv/formfill/MainActivity.kt`)
- Profile editor → Encrypted profile store: saves profiles (evidence: `app/src/main/java/com/skv/formfill/MainActivity.kt`)
- Profile editor → Profile model: creates profiles (evidence: `app/src/main/java/com/skv/formfill/MainActivity.kt`)
- Encrypted profile store → Profile model: loads values (evidence: `app/src/main/java/com/skv/formfill/SecureProfileStore.kt`)
- Traveler → Android Autofill: requests suggestions (evidence: `README.md`)
- Android Autofill → Autofill service: dispatches fill (evidence: `README.md`)
- Autofill service → Encrypted profile store: loads profiles (evidence: `app/src/main/java/com/skv/formfill/PilgrimAutofillService.kt`)
- Autofill service → Android Autofill: offers datasets (evidence: `app/src/main/java/com/skv/formfill/PilgrimAutofillService.kt`)
- Profile editor → TTD booking helper: opens helper (evidence: `app/src/main/java/com/skv/formfill/MainActivity.kt`)
- TTD booking helper → Encrypted profile store: loads profiles (evidence: `app/src/main/java/com/skv/formfill/TtdBookingActivity.kt`)
- TTD booking helper → TTD form: fills fields (evidence: `app/src/main/java/com/skv/formfill/TtdBookingActivity.kt`)
