# kbhanuprakashsagar/cine-nova- architecture

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

- Interactive diagram: https://gitdiagram.com/kbhanuprakashsagar/cine-nova-
- Repository: https://github.com/kbhanuprakashsagar/cine-nova-

## Overview

Cine Nova is an Android film-discovery and viewing app, with screens for browsing and search, film details, playback, reviews, watchlists, downloads, subscriptions, and studio operations. Its tree also shows network and local-persistence layers for indie-film data, reviews, and watchlists. The README is empty, and the sampled source contains only build configuration, so screen routing, repository calls, and storage/network wiring cannot be confirmed; the graph shows the product surfaces and implementation layers without guessing those relationships.

Main entry points: [`app/src/main/java/com/example/MainActivity.kt`](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/MainActivity.kt) (App entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry_ui["App and UI"]
  node_main["App entry<br/>[MainActivity.kt]"]
  node_ui_components["UI components"]
  node_home["Home<br/>[HomeScreen.kt]"]
end

subgraph group_films["Film discovery"]
  node_discover["Discover<br/>[DiscoverScreen.kt]"]
  node_search["Search curation"]
  node_movie_detail["Movie details"]
  node_film_detail["Film details"]
  node_discover_vm["Discovery state"]
  node_playback["Cinema player"]
end

subgraph group_personal["Personal library"]
  node_my_space["My space<br/>[MySpaceScreen.kt]"]
  node_watchlist["Watchlist<br/>[WatchlistScreen.kt]"]
  node_watchlist_vm["Watchlist state"]
  node_reviews["Reviews<br/>[ReviewsScreen.kt]"]
  node_reviews_vm["Review state"]
  node_downloads["Downloads<br/>[DownloadsScreen.kt]"]
  node_offline_settings["Offline settings"]
  node_subscription["Subscription"]
  node_studio_ops["Studio operations<br/>[StudioOpsScreen.kt]"]
end

subgraph group_services["Data and services"]
  node_movie_model["Movie model<br/>[Movie.kt]"]
  node_movie_repo["Movie repository<br/>[MovieRepository.kt]"]
  node_indie_repo["Indie film repository"]
  node_api_service["Film API service"]
  node_retrofit["Retrofit client<br/>[RetrofitClient.kt]"]
  node_watchlist_repo["Watchlist repository"]
  node_review_repo["Review repository"]
  node_database[("Local database<br/>[AppDatabase.kt]")]
  node_watchlist_dao["Watchlist DAO<br/>[WatchlistDao.kt]"]
  node_review_dao["Review DAO<br/>[ReviewDao.kt]"]
end

node_user(("Viewer"))

node_user -->|"opens app"| node_main

click node_main "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/MainActivity.kt"
click node_ui_components "https://github.com/kbhanuprakashsagar/cine-nova-/tree/main/app/src/main/java/com/example/ui/components"
click node_home "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/screens/HomeScreen.kt"
click node_discover "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/screens/DiscoverScreen.kt"
click node_search "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/screens/SearchCurationScreen.kt"
click node_movie_detail "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/screens/MovieDetailScreen.kt"
click node_film_detail "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/screens/FilmDetailScreen.kt"
click node_discover_vm "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/viewmodel/DiscoverViewModel.kt"
click node_playback "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/screens/CinemaPlayerScreen.kt"
click node_my_space "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/screens/MySpaceScreen.kt"
click node_watchlist "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/screens/WatchlistScreen.kt"
click node_watchlist_vm "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/viewmodel/WatchlistViewModel.kt"
click node_reviews "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/screens/ReviewsScreen.kt"
click node_reviews_vm "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/viewmodel/ReviewsViewModel.kt"
click node_downloads "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/screens/DownloadsScreen.kt"
click node_offline_settings "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/components/OfflineSettingsSheet.kt"
click node_subscription "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/screens/SubscriptionScreen.kt"
click node_studio_ops "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/screens/StudioOpsScreen.kt"
click node_movie_model "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/data/model/Movie.kt"
click node_movie_repo "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/data/repository/MovieRepository.kt"
click node_indie_repo "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/data/repository/IndieFilmRepository.kt"
click node_api_service "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/data/network/IndieFilmApiService.kt"
click node_retrofit "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/data/network/RetrofitClient.kt"
click node_watchlist_repo "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/data/repository/WatchlistRepository.kt"
click node_review_repo "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/data/repository/ReviewRepository.kt"
click node_database "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/data/local/AppDatabase.kt"
click node_watchlist_dao "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/data/local/dao/WatchlistDao.kt"
click node_review_dao "https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/data/local/dao/ReviewDao.kt"

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_main,node_ui_components,node_home,node_user toneBlue
class node_discover,node_search,node_movie_detail,node_film_detail,node_discover_vm,node_playback toneAmber
class node_my_space,node_watchlist,node_watchlist_vm,node_reviews,node_reviews_vm,node_downloads,node_offline_settings,node_subscription,node_studio_ops toneMint
class node_movie_model,node_movie_repo,node_indie_repo,node_api_service,node_retrofit,node_watchlist_repo,node_review_repo,node_database,node_watchlist_dao,node_review_dao toneRose
```

## Components

### App and UI

- [App entry](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/MainActivity.kt): `app/src/main/java/com/example/MainActivity.kt`
- [UI components](https://github.com/kbhanuprakashsagar/cine-nova-/tree/main/app/src/main/java/com/example/ui/components): `app/src/main/java/com/example/ui/components`
- [Home](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/screens/HomeScreen.kt): `app/src/main/java/com/example/ui/screens/HomeScreen.kt`

### Film discovery

- [Discover](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/screens/DiscoverScreen.kt): `app/src/main/java/com/example/ui/screens/DiscoverScreen.kt`
- [Search curation](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/screens/SearchCurationScreen.kt): `app/src/main/java/com/example/ui/screens/SearchCurationScreen.kt`
- [Movie details](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/screens/MovieDetailScreen.kt): `app/src/main/java/com/example/ui/screens/MovieDetailScreen.kt`
- [Film details](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/screens/FilmDetailScreen.kt): `app/src/main/java/com/example/ui/screens/FilmDetailScreen.kt`
- [Discovery state](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/viewmodel/DiscoverViewModel.kt): `app/src/main/java/com/example/ui/viewmodel/DiscoverViewModel.kt`
- [Cinema player](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/screens/CinemaPlayerScreen.kt): `app/src/main/java/com/example/ui/screens/CinemaPlayerScreen.kt`

### Personal library

- [My space](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/screens/MySpaceScreen.kt): `app/src/main/java/com/example/ui/screens/MySpaceScreen.kt`
- [Watchlist](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/screens/WatchlistScreen.kt): `app/src/main/java/com/example/ui/screens/WatchlistScreen.kt`
- [Watchlist state](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/viewmodel/WatchlistViewModel.kt): `app/src/main/java/com/example/ui/viewmodel/WatchlistViewModel.kt`
- [Reviews](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/screens/ReviewsScreen.kt): `app/src/main/java/com/example/ui/screens/ReviewsScreen.kt`
- [Review state](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/viewmodel/ReviewsViewModel.kt): `app/src/main/java/com/example/ui/viewmodel/ReviewsViewModel.kt`
- [Downloads](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/screens/DownloadsScreen.kt): `app/src/main/java/com/example/ui/screens/DownloadsScreen.kt`
- [Offline settings](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/components/OfflineSettingsSheet.kt): `app/src/main/java/com/example/ui/components/OfflineSettingsSheet.kt`
- [Subscription](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/screens/SubscriptionScreen.kt): `app/src/main/java/com/example/ui/screens/SubscriptionScreen.kt`
- [Studio operations](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/ui/screens/StudioOpsScreen.kt): `app/src/main/java/com/example/ui/screens/StudioOpsScreen.kt`

### Data and services

- [Movie model](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/data/model/Movie.kt): `app/src/main/java/com/example/data/model/Movie.kt`
- [Movie repository](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/data/repository/MovieRepository.kt): `app/src/main/java/com/example/data/repository/MovieRepository.kt`
- [Indie film repository](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/data/repository/IndieFilmRepository.kt): `app/src/main/java/com/example/data/repository/IndieFilmRepository.kt`
- [Film API service](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/data/network/IndieFilmApiService.kt): `app/src/main/java/com/example/data/network/IndieFilmApiService.kt`
- [Retrofit client](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/data/network/RetrofitClient.kt): `app/src/main/java/com/example/data/network/RetrofitClient.kt`
- [Watchlist repository](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/data/repository/WatchlistRepository.kt): `app/src/main/java/com/example/data/repository/WatchlistRepository.kt`
- [Review repository](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/data/repository/ReviewRepository.kt): `app/src/main/java/com/example/data/repository/ReviewRepository.kt`
- [Local database](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/data/local/AppDatabase.kt): `app/src/main/java/com/example/data/local/AppDatabase.kt`
- [Watchlist DAO](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/data/local/dao/WatchlistDao.kt): `app/src/main/java/com/example/data/local/dao/WatchlistDao.kt`
- [Review DAO](https://github.com/kbhanuprakashsagar/cine-nova-/blob/main/app/src/main/java/com/example/data/local/dao/ReviewDao.kt): `app/src/main/java/com/example/data/local/dao/ReviewDao.kt`

### Other components

- **Viewer**

## Connections

- Viewer → App entry: opens app
