# nikhildeshmuk98/deepflix architecture

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

- Interactive diagram: https://gitdiagram.com/nikhildeshmuk98/deepflix
- Repository: https://github.com/nikhildeshmuk98/deepflix

## Overview

This is primarily a Flask OTT/content recommendation application: users interact with content and recommendation routes, while administrators manage the service. The sampled application code also shows search, chat, profile-image handling, and administrative content/user queries. A separate training script reads content stories and genres from MySQL to train a classifier; the recommendation engine itself is explicitly a placeholder. The excerpts do not establish how most routes invoke the engine or whether the standalone database and graph modules are used, so those links are omitted.

Main entry points: [`app.py`](https://github.com/nikhildeshmuk98/deepflix/blob/main/app.py) (Flask routes), [`train_model.py`](https://github.com/nikhildeshmuk98/deepflix/blob/main/train_model.py) (Model training), [`setup_db.py`](https://github.com/nikhildeshmuk98/deepflix/blob/main/setup_db.py) (Schema setup), [`hybrid_engine.py`](https://github.com/nikhildeshmuk98/deepflix/blob/main/hybrid_engine.py) (Hybrid recommender)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web application"]
  node_flask_app["Flask routes<br/>[app.py]"]
  node_search["Content search<br/>[app.py]"]
  node_admin_tools["Admin management<br/>[app.py]"]
  node_messaging["User messaging<br/>[app.py]"]
  node_profiles["Profile uploads<br/>[app.py]"]
end

subgraph group_recommendations["Recommendations"]
  node_hybrid["Hybrid recommender<br/>[hybrid_engine.py]"]
  node_training["Model training<br/>[train_model.py]"]
end

subgraph group_data["Data and training"]
  node_mysql[("MySQL database")]
  node_schema_setup["Schema setup<br/>[setup_db.py]"]
end

node_users(("Users"))
node_admins(("Administrators"))

node_users -->|"use routes"| node_flask_app
node_admins -->|"manage service"| node_admin_tools
node_flask_app -->|"handles search"| node_search
node_flask_app -->|"serves dashboard"| node_admin_tools
node_flask_app -->|"stores messages"| node_messaging
node_flask_app -->|"handles uploads"| node_profiles
node_flask_app -->|"imports"| node_hybrid
node_search -->|"queries content"| node_mysql
node_admin_tools -->|"queries records"| node_mysql
node_messaging -->|"writes chats"| node_mysql
node_training -->|"reads stories"| node_mysql
node_schema_setup -->|"creates tables"| node_mysql

click node_flask_app "https://github.com/nikhildeshmuk98/deepflix/blob/main/app.py"
click node_search "https://github.com/nikhildeshmuk98/deepflix/blob/main/app.py"
click node_admin_tools "https://github.com/nikhildeshmuk98/deepflix/blob/main/app.py"
click node_messaging "https://github.com/nikhildeshmuk98/deepflix/blob/main/app.py"
click node_profiles "https://github.com/nikhildeshmuk98/deepflix/blob/main/app.py"
click node_hybrid "https://github.com/nikhildeshmuk98/deepflix/blob/main/hybrid_engine.py"
click node_training "https://github.com/nikhildeshmuk98/deepflix/blob/main/train_model.py"
click node_schema_setup "https://github.com/nikhildeshmuk98/deepflix/blob/main/setup_db.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_flask_app,node_search,node_admin_tools,node_messaging,node_profiles,node_users toneBlue
class node_hybrid,node_training toneAmber
class node_mysql,node_schema_setup toneMint
class node_admins toneIndigo
```

## Components

### Web application

- [Flask routes](https://github.com/nikhildeshmuk98/deepflix/blob/main/app.py): `app.py`
- [Content search](https://github.com/nikhildeshmuk98/deepflix/blob/main/app.py): `app.py`
- [Admin management](https://github.com/nikhildeshmuk98/deepflix/blob/main/app.py): `app.py`
- [User messaging](https://github.com/nikhildeshmuk98/deepflix/blob/main/app.py): `app.py`
- [Profile uploads](https://github.com/nikhildeshmuk98/deepflix/blob/main/app.py): `app.py`

### Recommendations

- [Hybrid recommender](https://github.com/nikhildeshmuk98/deepflix/blob/main/hybrid_engine.py): `hybrid_engine.py`
- [Model training](https://github.com/nikhildeshmuk98/deepflix/blob/main/train_model.py): `train_model.py`

### Data and training

- **MySQL database**
- [Schema setup](https://github.com/nikhildeshmuk98/deepflix/blob/main/setup_db.py): `setup_db.py`

### Other components

- **Users**
- **Administrators**

## Connections

- Users → Flask routes: use routes
- Administrators → Admin management: manage service
- Flask routes → Content search: handles search (evidence: `app.py`)
- Flask routes → Admin management: serves dashboard (evidence: `app.py`)
- Flask routes → User messaging: stores messages (evidence: `app.py`)
- Flask routes → Profile uploads: handles uploads (evidence: `app.py`)
- Flask routes → Hybrid recommender: imports (evidence: `app.py`)
- Content search → MySQL database: queries content (evidence: `app.py`)
- Admin management → MySQL database: queries records (evidence: `app.py`)
- User messaging → MySQL database: writes chats (evidence: `app.py`)
- Model training → MySQL database: reads stories (evidence: `train_model.py`)
- Schema setup → MySQL database: creates tables (evidence: `setup_db.py`)
