# paulevensdestima11-gif/moviweb-app architecture

> Architecture diagram of the GitHub repository paulevensdestima11-gif/moviweb-app, 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/paulevensdestima11-gif/moviweb-app
- Repository: https://github.com/paulevensdestima11-gif/moviweb-app

## Overview

MoviWeb is a Flask app for maintaining users’ movie collections. Visitors can create users, view a user’s movies, add a title by looking it up through OMDb, and update or delete a movie; results are stored in SQLite and shown in server-rendered pages. The route handlers in app.py coordinate these actions through DataManager, while models.py defines the persisted entities. The template files are listed in the tree and referenced by the routes, but their contents were not sampled; UI form details and styling connections are therefore omitted.

Main entry points: [`app.py`](https://github.com/paulevensdestima11-gif/moviweb-app/blob/main/app.py) (Flask routes), [`data_manager.py`](https://github.com/paulevensdestima11-gif/moviweb-app/blob/main/data_manager.py) (Data manager), [`templates`](https://github.com/paulevensdestima11-gif/moviweb-app/tree/main/templates) (Server-rendered pages), [`models.py`](https://github.com/paulevensdestima11-gif/moviweb-app/blob/main/models.py) (User and movie models)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web application"]
  node_routes["Flask routes<br/>[app.py]"]
  node_views["Server-rendered pages"]
end

subgraph group_data["Persistence"]
  node_manager["Data manager<br/>[data_manager.py]"]
  node_models["User and movie models<br/>[models.py]"]
  node_sqlite[("SQLite database")]
end

subgraph group_integration["Movie lookup"]
  node_omdb["OMDb API"]
end

node_visitor(("Visitor"))

node_visitor -->|"sends requests"| node_routes
node_routes -->|"calls"| node_manager
node_routes -->|"renders"| node_views
node_routes -->|"looks up titles"| node_omdb
node_manager -->|"queries and saves"| node_models
node_manager -->|"reads and writes"| node_sqlite
node_routes -->|"initializes schema"| node_sqlite

click node_routes "https://github.com/paulevensdestima11-gif/moviweb-app/blob/main/app.py"
click node_views "https://github.com/paulevensdestima11-gif/moviweb-app/tree/main/templates"
click node_manager "https://github.com/paulevensdestima11-gif/moviweb-app/blob/main/data_manager.py"
click node_models "https://github.com/paulevensdestima11-gif/moviweb-app/blob/main/models.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_routes,node_views toneBlue
class node_manager,node_models,node_sqlite toneAmber
class node_omdb toneMint
class node_visitor toneIndigo
```

## Components

### Web application

- [Flask routes](https://github.com/paulevensdestima11-gif/moviweb-app/blob/main/app.py): `app.py`
- [Server-rendered pages](https://github.com/paulevensdestima11-gif/moviweb-app/tree/main/templates): `templates`

### Persistence

- [Data manager](https://github.com/paulevensdestima11-gif/moviweb-app/blob/main/data_manager.py): `data_manager.py`
- [User and movie models](https://github.com/paulevensdestima11-gif/moviweb-app/blob/main/models.py): `models.py`
- **SQLite database**

### Movie lookup

- **OMDb API**

### Other components

- **Visitor**

## Connections

- Visitor → Flask routes: sends requests (evidence: `app.py`)
- Flask routes → Data manager: calls (evidence: `app.py`)
- Flask routes → Server-rendered pages: renders (evidence: `app.py`)
- Flask routes → OMDb API: looks up titles (evidence: `app.py`)
- Data manager → User and movie models: queries and saves (evidence: `data_manager.py`)
- Data manager → SQLite database: reads and writes (evidence: `data_manager.py`)
- Flask routes → SQLite database: initializes schema (evidence: `app.py`)
