# fried-man/cent architecture

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

- Interactive diagram: https://gitdiagram.com/fried-man/cent
- Repository: https://github.com/fried-man/cent

## Overview

CENT is a cross-platform Flutter application for exploring COVID-19 genomic variants by geographic region, alongside a notebook-based data and prediction effort. The main user journey is geographic exploration → regional variant selection → variant details or saving/comparison. The README also documents multi-card maps, account/settings features, accession-data retrieval, genome analysis, and a confidence model. The Dart and notebook implementations were not sampled, so the graph uses documented capabilities and tree-supported paths; uncertain implementation wiring is omitted.

Main entry points: [`lib/tabs/region.dart`](https://github.com/fried-man/cent/blob/main/lib/tabs/region.dart) (Region browsing), [`lib/cards/variant.dart`](https://github.com/fried-man/cent/blob/main/lib/cards/variant.dart) (Variant cards), [`backend/DataProcessing.ipynb`](https://github.com/fried-man/cent/blob/main/backend/DataProcessing.ipynb) (Genome processing), [`backend/ConfidenceModel.ipynb`](https://github.com/fried-man/cent/blob/main/backend/ConfidenceModel.ipynb) (Confidence model)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_explore["Geographic exploration"]
  node_app["Flutter entry<br/>[main.dart]"]
  node_home["Home and map<br/>[home.dart]"]
  node_region["Region browsing<br/>[region.dart]"]
  node_country["Country cards<br/>[country.dart]"]
  node_continent["Continent cards<br/>[continent.dart]"]
  node_carddata["Geography data<br/>[data.json]"]
end

subgraph group_variants["Variant research"]
  node_variantcard["Variant cards<br/>[variant.dart]"]
  node_variantview["Variant details<br/>[variant-view.dart]"]
end

subgraph group_accounts["Accounts and settings"]
  node_saved["Saved variants<br/>[saved.dart]"]
  node_login["Login<br/>[login.dart]"]
  node_settings["Settings<br/>[settings.dart]"]
  node_faq["FAQ<br/>[faq.dart]"]
  node_contact["Contact<br/>[contact.dart]"]
end

subgraph group_analysis["Data and prediction"]
  node_processing["Genome processing"]
  node_confidence["Confidence model"]
  node_backenddata["Genome datasets"]
end

node_user(("App user"))
node_postgres[("Azure database")]
node_accession(("Accession data API"))
node_ncbi(("NCBI"))
node_blast(("BLAST"))

node_user -->|"opens"| node_app
node_app -->|"starts"| node_home
node_home -->|"browses"| node_region
node_region -->|"reads"| node_carddata
node_region -->|"opens"| node_country
node_region -->|"opens"| node_continent
node_country -->|"shows variants"| node_variantcard
node_continent -->|"shows variants"| node_variantcard
node_variantcard -->|"opens details"| node_variantview
node_variantview -.->|"links to"| node_ncbi
node_variantcard -->|"save variant"| node_saved
node_user -->|"signs in"| node_login
node_user -->|"adjusts"| node_settings
node_user -->|"consults"| node_faq
node_user -->|"contacts"| node_contact
node_user -.->|"compares variants"| node_blast
node_processing -->|"processes"| node_backenddata
node_processing -.->|"stores genomes"| node_postgres
node_accession -.->|"provides accessions"| node_processing
node_confidence -->|"uses data"| node_backenddata
node_confidence -.->|"queries genomes"| node_postgres

click node_app "https://github.com/fried-man/cent/blob/main/lib/main.dart"
click node_home "https://github.com/fried-man/cent/blob/main/lib/home.dart"
click node_region "https://github.com/fried-man/cent/blob/main/lib/tabs/region.dart"
click node_country "https://github.com/fried-man/cent/blob/main/lib/cards/country.dart"
click node_continent "https://github.com/fried-man/cent/blob/main/lib/cards/continent.dart"
click node_carddata "https://github.com/fried-man/cent/blob/main/assets/data.json"
click node_variantcard "https://github.com/fried-man/cent/blob/main/lib/cards/variant.dart"
click node_variantview "https://github.com/fried-man/cent/blob/main/lib/views/variant-view.dart"
click node_saved "https://github.com/fried-man/cent/blob/main/lib/tabs/saved.dart"
click node_login "https://github.com/fried-man/cent/blob/main/lib/tabs/login.dart"
click node_settings "https://github.com/fried-man/cent/blob/main/lib/tabs/settings.dart"
click node_faq "https://github.com/fried-man/cent/blob/main/lib/tabs/faq.dart"
click node_contact "https://github.com/fried-man/cent/blob/main/lib/tabs/contact.dart"
click node_processing "https://github.com/fried-man/cent/blob/main/backend/DataProcessing.ipynb"
click node_confidence "https://github.com/fried-man/cent/blob/main/backend/ConfidenceModel.ipynb"
click node_backenddata "https://github.com/fried-man/cent/tree/main/backend"

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_app,node_home,node_region,node_country,node_continent,node_carddata,node_user toneBlue
class node_variantcard,node_variantview,node_postgres toneAmber
class node_saved,node_login,node_settings,node_faq,node_contact,node_accession toneMint
class node_processing,node_confidence,node_backenddata toneRose
class node_ncbi,node_blast toneIndigo
```

## Components

### Geographic exploration

- [Flutter entry](https://github.com/fried-man/cent/blob/main/lib/main.dart): `lib/main.dart`
- [Home and map](https://github.com/fried-man/cent/blob/main/lib/home.dart): `lib/home.dart`
- [Region browsing](https://github.com/fried-man/cent/blob/main/lib/tabs/region.dart): `lib/tabs/region.dart`
- [Country cards](https://github.com/fried-man/cent/blob/main/lib/cards/country.dart): `lib/cards/country.dart`
- [Continent cards](https://github.com/fried-man/cent/blob/main/lib/cards/continent.dart): `lib/cards/continent.dart`
- [Geography data](https://github.com/fried-man/cent/blob/main/assets/data.json): `assets/data.json`

### Variant research

- [Variant cards](https://github.com/fried-man/cent/blob/main/lib/cards/variant.dart): `lib/cards/variant.dart`
- [Variant details](https://github.com/fried-man/cent/blob/main/lib/views/variant-view.dart): `lib/views/variant-view.dart`

### Accounts and settings

- [Saved variants](https://github.com/fried-man/cent/blob/main/lib/tabs/saved.dart): `lib/tabs/saved.dart`
- [Login](https://github.com/fried-man/cent/blob/main/lib/tabs/login.dart): `lib/tabs/login.dart`
- [Settings](https://github.com/fried-man/cent/blob/main/lib/tabs/settings.dart): `lib/tabs/settings.dart`
- [FAQ](https://github.com/fried-man/cent/blob/main/lib/tabs/faq.dart): `lib/tabs/faq.dart`
- [Contact](https://github.com/fried-man/cent/blob/main/lib/tabs/contact.dart): `lib/tabs/contact.dart`

### Data and prediction

- [Genome processing](https://github.com/fried-man/cent/blob/main/backend/DataProcessing.ipynb): `backend/DataProcessing.ipynb`
- [Confidence model](https://github.com/fried-man/cent/blob/main/backend/ConfidenceModel.ipynb): `backend/ConfidenceModel.ipynb`
- [Genome datasets](https://github.com/fried-man/cent/tree/main/backend): `backend`

### Other components

- **App user**
- **Azure database**
- **Accession data API**
- **NCBI**
- **BLAST**

## Connections

- App user → Flutter entry: opens
- Flutter entry → Home and map: starts
- Home and map → Region browsing: browses
- Region browsing → Geography data: reads
- Region browsing → Country cards: opens
- Region browsing → Continent cards: opens
- Country cards → Variant cards: shows variants
- Continent cards → Variant cards: shows variants
- Variant cards → Variant details: opens details
- Variant details → NCBI: links to
- Variant cards → Saved variants: save variant
- App user → Login: signs in
- App user → Settings: adjusts
- App user → FAQ: consults
- App user → Contact: contacts
- App user → BLAST: compares variants
- Genome processing → Genome datasets: processes
- Genome processing → Azure database: stores genomes
- Accession data API → Genome processing: provides accessions
- Confidence model → Genome datasets: uses data
- Confidence model → Azure database: queries genomes
