# maxonyar/tp-solo-1 architecture

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

- Interactive diagram: https://gitdiagram.com/maxonyar/tp-solo-1
- Repository: https://github.com/maxonyar/tp-solo-1

## Overview

This repository contains two small Flask app variants. The main workflow is an HTTP request handled by a route and returned as JSON; the Docker-oriented variant also exposes a visit counter. Its route references an undefined Redis-client helper, so Redis integration is not confirmed. Threshold and input-sanitization helpers are present but are not used by the shown routes. The README mainly describes CI and Docker image output, which are not runtime product components.

Main entry points: [`starter-app/app.py`](https://github.com/maxonyar/tp-solo-1/blob/main/starter-app/app.py) (Visits route), [`starter_app/app.py`](https://github.com/maxonyar/tp-solo-1/blob/main/starter_app/app.py) (Health/status routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

node_user(("HTTP client"))
node_docker_app["Dockerized Flask app<br/>[app.py]"]
node_docker_routes["Health/status/home<br/>[app.py]"]
node_visits_route["Visits route<br/>[app.py]"]
node_json_response["JSON response<br/>[app.py]"]
node_redis[("Redis store")]
node_basic_app["Basic Flask app<br/>[app.py]"]
node_basic_routes["Health/status routes<br/>[app.py]"]
node_basic_response["JSON response<br/>[app.py]"]

node_user -->|"requests route"| node_docker_routes
node_user -->|"requests visits"| node_visits_route
node_docker_routes -->|"returns JSON"| node_json_response
node_visits_route -->|"returns count"| node_json_response
node_visits_route -.->|"increments visits"| node_redis
node_user -->|"requests route"| node_basic_routes
node_basic_routes -->|"returns JSON"| node_basic_response

click node_docker_app "https://github.com/maxonyar/tp-solo-1/blob/main/starter-app/app.py"
click node_docker_routes "https://github.com/maxonyar/tp-solo-1/blob/main/starter-app/app.py"
click node_visits_route "https://github.com/maxonyar/tp-solo-1/blob/main/starter-app/app.py"
click node_json_response "https://github.com/maxonyar/tp-solo-1/blob/main/starter-app/app.py"
click node_basic_app "https://github.com/maxonyar/tp-solo-1/blob/main/starter_app/app.py"
click node_basic_routes "https://github.com/maxonyar/tp-solo-1/blob/main/starter_app/app.py"
click node_basic_response "https://github.com/maxonyar/tp-solo-1/blob/main/starter_app/app.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_user toneBlue
class node_docker_app,node_docker_routes,node_json_response,node_basic_app,node_basic_response toneTeal
class node_visits_route,node_basic_routes toneMint
class node_redis toneAmber
```

## Components

### Other components

- **HTTP client**
- [Dockerized Flask app](https://github.com/maxonyar/tp-solo-1/blob/main/starter-app/app.py): `starter-app/app.py`
- [Health/status/home](https://github.com/maxonyar/tp-solo-1/blob/main/starter-app/app.py): `starter-app/app.py`
- [Visits route](https://github.com/maxonyar/tp-solo-1/blob/main/starter-app/app.py): `starter-app/app.py`
- [JSON response](https://github.com/maxonyar/tp-solo-1/blob/main/starter-app/app.py): `starter-app/app.py`
- **Redis store**
- [Basic Flask app](https://github.com/maxonyar/tp-solo-1/blob/main/starter_app/app.py): `starter_app/app.py`
- [Health/status routes](https://github.com/maxonyar/tp-solo-1/blob/main/starter_app/app.py): `starter_app/app.py`
- [JSON response](https://github.com/maxonyar/tp-solo-1/blob/main/starter_app/app.py): `starter_app/app.py`

## Connections

- HTTP client → Health/status/home: requests route (evidence: `starter-app/app.py`)
- HTTP client → Visits route: requests visits (evidence: `starter-app/app.py`)
- Health/status/home → JSON response: returns JSON (evidence: `starter-app/app.py`)
- Visits route → JSON response: returns count (evidence: `starter-app/app.py`)
- Visits route → Redis store: increments visits
- HTTP client → Health/status routes: requests route (evidence: `starter_app/app.py`)
- Health/status routes → JSON response: returns JSON (evidence: `starter_app/app.py`)
