# honey-singh716/movie_recommender_ai architecture

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

- Interactive diagram: https://gitdiagram.com/honey-singh716/movie_recommender_ai
- Repository: https://github.com/honey-singh716/movie_recommender_ai

## Overview

This is a Streamlit movie discovery app: users explore a movie library, find similar films, browse actor filmographies, compare movies, and request mood-based picks. The main entry point loads movie data and models, then dispatches pages; those pages use recommendation logic, shared display/TMDB utilities, and SQLite-backed data. The excerpts directly show several page dispatches and the mood/recommendation calls. Other page wiring and the README-mentioned review sentiment capability are not established by the sampled code, so those links are not inferred.

Main entry points: [`app/utils/utils.py`](https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/utils/utils.py) (Movie and TMDB utilities), [`app/main.py`](https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/main.py) (App entry and navigation), [`app/core/models.py`](https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/core/models.py) (Model and data loader), [`app/core/recommendations.py`](https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/core/recommendations.py) (Recommendation algorithms)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Streamlit application"]
  node_entry["App entry and navigation<br/>[main.py]"]
  node_home["Home page<br/>[home_page.py]"]
  node_about_page["About page<br/>[about_page.py]"]
end

subgraph group_discovery["Movie discovery"]
  node_movie_info["Movie information<br/>[movie_info_page.py]"]
  node_actor_page["Actor filmography<br/>[actor_page.py]"]
  node_mood_page["Mood recommendations<br/>[mood_page.py]"]
  node_recommender_page["Similar movies"]
  node_battle_page["Movie comparison"]
end

subgraph group_intelligence["Recommendation and mood logic"]
  node_model_loader["Model and data loader<br/>[models.py]"]
  node_mood_engine["Mood classification<br/>[mood_prediction.py]"]
  node_recommendations["Recommendation algorithms<br/>[recommendations.py]"]
  node_preprocessing["Text preprocessing"]
end

subgraph group_data["Data and integrations"]
  node_shared_utils["Movie and TMDB utilities<br/>[utils.py]"]
  node_db_manager["SQLite data access<br/>[db_manager.py]"]
  node_movie_db[("Movie database<br/>[movies.db]")]
  node_model_files["Trained model artifacts"]
end

node_viewer(("Movie viewer"))
node_tmdb["TMDB service"]

node_viewer -->|"opens app"| node_entry
node_entry -->|"loads data and models"| node_model_loader
node_model_loader -->|"loads movies"| node_db_manager
node_model_loader -->|"registers cleaner"| node_preprocessing
node_model_loader -->|"loads mood model"| node_model_files
node_db_manager -->|"reads and writes"| node_movie_db
node_entry -->|"shows page"| node_actor_page
node_entry -->|"shows page"| node_battle_page
node_entry -->|"shows page"| node_about_page
node_mood_page -->|"predicts mood"| node_mood_engine
node_mood_page -->|"ranks genres"| node_recommendations
node_mood_page -->|"renders movie cards"| node_shared_utils
node_recommender_page -->|"finds similar films"| node_recommendations
node_recommender_page -->|"renders movie cards"| node_shared_utils
node_movie_info -->|"finds similar films"| node_recommendations
node_movie_info -->|"fetches details"| node_shared_utils
node_actor_page -->|"finds actor films"| node_recommendations
node_actor_page -->|"fetches actor info"| node_shared_utils
node_battle_page -->|"fetches posters"| node_shared_utils
node_shared_utils -->|"requests movie and actor data"| node_tmdb

click node_entry "https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/main.py"
click node_home "https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/views/home_page.py"
click node_movie_info "https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/views/movie_info_page.py"
click node_actor_page "https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/views/actor_page.py"
click node_mood_page "https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/views/mood_page.py"
click node_recommender_page "https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/views/movie_recommender_page.py"
click node_battle_page "https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/views/movie_battle_page.py"
click node_about_page "https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/views/about_page.py"
click node_model_loader "https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/core/models.py"
click node_mood_engine "https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/core/mood_prediction.py"
click node_recommendations "https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/core/recommendations.py"
click node_preprocessing "https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/core/text_preprocessing.py"
click node_shared_utils "https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/utils/utils.py"
click node_db_manager "https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/utils/db_manager.py"
click node_movie_db "https://github.com/honey-singh716/movie_recommender_ai/blob/main/data/movies.db"
click node_model_files "https://github.com/honey-singh716/movie_recommender_ai/tree/main/models"

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_entry,node_home,node_about_page,node_viewer toneBlue
class node_movie_info,node_actor_page,node_mood_page,node_recommender_page,node_battle_page toneAmber
class node_model_loader,node_mood_engine,node_recommendations,node_preprocessing toneMint
class node_shared_utils,node_db_manager,node_movie_db,node_model_files toneRose
class node_tmdb toneIndigo
```

## Components

### Streamlit application

- [App entry and navigation](https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/main.py): `app/main.py`
- [Home page](https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/views/home_page.py): `app/views/home_page.py`
- [About page](https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/views/about_page.py): `app/views/about_page.py`

### Movie discovery

- [Movie information](https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/views/movie_info_page.py): `app/views/movie_info_page.py`
- [Actor filmography](https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/views/actor_page.py): `app/views/actor_page.py`
- [Mood recommendations](https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/views/mood_page.py): `app/views/mood_page.py`
- [Similar movies](https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/views/movie_recommender_page.py): `app/views/movie_recommender_page.py`
- [Movie comparison](https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/views/movie_battle_page.py): `app/views/movie_battle_page.py`

### Recommendation and mood logic

- [Model and data loader](https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/core/models.py): `app/core/models.py`
- [Mood classification](https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/core/mood_prediction.py): `app/core/mood_prediction.py`
- [Recommendation algorithms](https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/core/recommendations.py): `app/core/recommendations.py`
- [Text preprocessing](https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/core/text_preprocessing.py): `app/core/text_preprocessing.py`

### Data and integrations

- [Movie and TMDB utilities](https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/utils/utils.py): `app/utils/utils.py`
- [SQLite data access](https://github.com/honey-singh716/movie_recommender_ai/blob/main/app/utils/db_manager.py): `app/utils/db_manager.py`
- [Movie database](https://github.com/honey-singh716/movie_recommender_ai/blob/main/data/movies.db): `data/movies.db`
- [Trained model artifacts](https://github.com/honey-singh716/movie_recommender_ai/tree/main/models): `models`

### Other components

- **Movie viewer**
- **TMDB service**

## Connections

- Movie viewer → App entry and navigation: opens app (evidence: `README.md`)
- App entry and navigation → Model and data loader: loads data and models (evidence: `app/main.py`)
- Model and data loader → SQLite data access: loads movies (evidence: `app/core/models.py`)
- Model and data loader → Text preprocessing: registers cleaner (evidence: `app/core/models.py`)
- Model and data loader → Trained model artifacts: loads mood model (evidence: `app/core/models.py`)
- SQLite data access → Movie database: reads and writes (evidence: `app/utils/db_manager.py`)
- App entry and navigation → Actor filmography: shows page (evidence: `app/main.py`)
- App entry and navigation → Movie comparison: shows page (evidence: `app/main.py`)
- App entry and navigation → About page: shows page (evidence: `app/main.py`)
- Mood recommendations → Mood classification: predicts mood (evidence: `app/views/mood_page.py`)
- Mood recommendations → Recommendation algorithms: ranks genres (evidence: `app/views/mood_page.py`)
- Mood recommendations → Movie and TMDB utilities: renders movie cards (evidence: `app/views/mood_page.py`)
- Similar movies → Recommendation algorithms: finds similar films (evidence: `app/views/movie_recommender_page.py`)
- Similar movies → Movie and TMDB utilities: renders movie cards (evidence: `app/views/movie_recommender_page.py`)
- Movie information → Recommendation algorithms: finds similar films (evidence: `app/views/movie_info_page.py`)
- Movie information → Movie and TMDB utilities: fetches details (evidence: `app/views/movie_info_page.py`)
- Actor filmography → Recommendation algorithms: finds actor films (evidence: `app/views/actor_page.py`)
- Actor filmography → Movie and TMDB utilities: fetches actor info (evidence: `app/views/actor_page.py`)
- Movie comparison → Movie and TMDB utilities: fetches posters (evidence: `app/views/movie_battle_page.py`)
- Movie and TMDB utilities → TMDB service: requests movie and actor data (evidence: `app/utils/utils.py`)
