# vin-duo/appv4 architecture

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

- Interactive diagram: https://gitdiagram.com/vin-duo/appv4
- Repository: https://github.com/vin-duo/appv4

## Overview

This Flask application supports concrete mix-design trials: users manage a trial, adjust pilot/rich/lean dosage and weighing data, record specimen strengths, and view calculated results. Route handlers coordinate persistence and invoke the dosage calculator; regression helpers derive strength/mixture coefficients. The sampled routes establish several responsibilities, but omitted route bodies and the empty README limit confidence about form, template, and regression wiring.

Main entry points: [`app/routes.py`](https://github.com/vin-duo/appv4/blob/main/app/routes.py) (Route handlers), [`app/__init__.py`](https://github.com/vin-duo/appv4/blob/main/app/__init__.py) (ORM setup), [`app/models.py`](https://github.com/vin-duo/appv4/blob/main/app/models.py) (Trial records), [`app/traco_dosagem.py`](https://github.com/vin-duo/appv4/blob/main/app/traco_dosagem.py) (Dosage calculations)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web application"]
  node_routes["Route handlers<br/>[routes.py]"]
  node_forms["Input forms<br/>[forms.py]"]
  node_templates["Workflow views"]
end

subgraph group_dosage["Mix design"]
  node_dosage_calc["Dosage calculations<br/>[traco_dosagem.py]"]
end

subgraph group_testing["Testing and analysis"]
  node_specimen_records["Specimen records<br/>[models.py]"]
  node_result_records["Regression results<br/>[models.py]"]
  node_regression["Strength regression<br/>[regressao.py]"]
end

subgraph group_persistence["Persistence"]
  node_trial_records["Trial records<br/>[models.py]"]
  node_dosage_records["Dosage records<br/>[models.py]"]
  node_consumption_records["Consumption records<br/>[models.py]"]
  node_flask_db["ORM setup<br/>[__init__.py]"]
  node_configuration["Database configuration<br/>[config.py]"]
  node_database[("Application database<br/>[app.db]")]
end

node_user(("Trial user"))

node_user -->|"submits requests"| node_routes
node_routes -->|"calculates dosage"| node_dosage_calc
node_routes -->|"queries and saves"| node_trial_records
node_routes -->|"queries and saves"| node_dosage_records
node_routes -->|"updates weights"| node_consumption_records
node_routes -->|"manages specimens"| node_specimen_records
node_routes -->|"saves coefficients"| node_result_records
node_flask_db -->|"loads settings"| node_configuration
node_flask_db -->|"configures connection"| node_database
node_flask_db -->|"imports routes"| node_routes
node_flask_db -->|"provides ORM"| node_trial_records

click node_routes "https://github.com/vin-duo/appv4/blob/main/app/routes.py"
click node_forms "https://github.com/vin-duo/appv4/blob/main/app/forms.py"
click node_templates "https://github.com/vin-duo/appv4/tree/main/app/templates"
click node_dosage_calc "https://github.com/vin-duo/appv4/blob/main/app/traco_dosagem.py"
click node_trial_records "https://github.com/vin-duo/appv4/blob/main/app/models.py"
click node_dosage_records "https://github.com/vin-duo/appv4/blob/main/app/models.py"
click node_consumption_records "https://github.com/vin-duo/appv4/blob/main/app/models.py"
click node_specimen_records "https://github.com/vin-duo/appv4/blob/main/app/models.py"
click node_result_records "https://github.com/vin-duo/appv4/blob/main/app/models.py"
click node_regression "https://github.com/vin-duo/appv4/blob/main/app/regressao.py"
click node_flask_db "https://github.com/vin-duo/appv4/blob/main/app/__init__.py"
click node_configuration "https://github.com/vin-duo/appv4/blob/main/config.py"
click node_database "https://github.com/vin-duo/appv4/blob/main/app.db"

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_routes,node_forms,node_templates,node_user toneBlue
class node_dosage_calc toneAmber
class node_specimen_records,node_result_records,node_regression toneMint
class node_trial_records,node_dosage_records,node_consumption_records,node_flask_db,node_configuration,node_database toneRose
```

## Components

### Web application

- [Route handlers](https://github.com/vin-duo/appv4/blob/main/app/routes.py): `app/routes.py`
- [Input forms](https://github.com/vin-duo/appv4/blob/main/app/forms.py): `app/forms.py`
- [Workflow views](https://github.com/vin-duo/appv4/tree/main/app/templates): `app/templates`

### Mix design

- [Dosage calculations](https://github.com/vin-duo/appv4/blob/main/app/traco_dosagem.py): `app/traco_dosagem.py`

### Testing and analysis

- [Specimen records](https://github.com/vin-duo/appv4/blob/main/app/models.py): `app/models.py`
- [Regression results](https://github.com/vin-duo/appv4/blob/main/app/models.py): `app/models.py`
- [Strength regression](https://github.com/vin-duo/appv4/blob/main/app/regressao.py): `app/regressao.py`

### Persistence

- [Trial records](https://github.com/vin-duo/appv4/blob/main/app/models.py): `app/models.py`
- [Dosage records](https://github.com/vin-duo/appv4/blob/main/app/models.py): `app/models.py`
- [Consumption records](https://github.com/vin-duo/appv4/blob/main/app/models.py): `app/models.py`
- [ORM setup](https://github.com/vin-duo/appv4/blob/main/app/__init__.py): `app/__init__.py`
- [Database configuration](https://github.com/vin-duo/appv4/blob/main/config.py): `config.py`
- [Application database](https://github.com/vin-duo/appv4/blob/main/app.db): `app.db`

### Other components

- **Trial user**

## Connections

- Trial user → Route handlers: submits requests (evidence: `app/routes.py`)
- Route handlers → Dosage calculations: calculates dosage (evidence: `app/routes.py`)
- Route handlers → Trial records: queries and saves (evidence: `app/routes.py`)
- Route handlers → Dosage records: queries and saves (evidence: `app/routes.py`)
- Route handlers → Consumption records: updates weights (evidence: `app/routes.py`)
- Route handlers → Specimen records: manages specimens (evidence: `app/routes.py`)
- Route handlers → Regression results: saves coefficients (evidence: `app/routes.py`)
- ORM setup → Database configuration: loads settings (evidence: `app/__init__.py`)
- ORM setup → Application database: configures connection
- ORM setup → Route handlers: imports routes (evidence: `app/__init__.py`)
- ORM setup → Trial records: provides ORM (evidence: `app/models.py`)
