# renu-123-pixel/movie-app architecture

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

- Interactive diagram: https://gitdiagram.com/renu-123-pixel/movie-app
- Repository: https://github.com/renu-123-pixel/movie-app

## Overview

This Android app provides a login/intro entry, browsable movie lists, and movie detail screens with posters and image galleries. In the sampled code, list and detail requests use Volley against moviesapi.ir, then Gson maps responses into domain models; this differs from the README’s TMDb description. The list adapter opens details, and Glide loads images. The README also mentions favorites, but no corresponding implementation appears in the supplied tree or samples, so it is not mapped.

Main entry points: [`src/main/java/com/examplefourthjuly/movieapp/Activity/DetailActivity.java`](https://github.com/renu-123-pixel/movie-app/blob/main/src/main/java/com/examplefourthjuly/movieapp/Activity/DetailActivity.java) (Movie detail), [`src/main/java/com/examplefourthjuly/movieapp/Activity/MainActivity.java`](https://github.com/renu-123-pixel/movie-app/blob/main/src/main/java/com/examplefourthjuly/movieapp/Activity/MainActivity.java) (Movie lists), [`src/main/java/com/examplefourthjuly/movieapp/Adapter/FilmListAdapter.java`](https://github.com/renu-123-pixel/movie-app/blob/main/src/main/java/com/examplefourthjuly/movieapp/Adapter/FilmListAdapter.java) (Film cards), [`src/main/java/com/examplefourthjuly/movieapp/Domain/ListFilm.java`](https://github.com/renu-123-pixel/movie-app/blob/main/src/main/java/com/examplefourthjuly/movieapp/Domain/ListFilm.java) (List response)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Entry"]
  node_intro["Intro screen"]
  node_login["Login screen<br/>[LoginActivity.java]"]
end

subgraph group_browse["Movie browsing"]
  node_main["Movie lists<br/>[MainActivity.java]"]
  node_film_adapter["Film cards"]
end

subgraph group_details["Movie details"]
  node_detail["Movie detail"]
  node_image_adapter["Image gallery"]
end

subgraph group_domain["Movie data"]
  node_list_model["List response<br/>[ListFilm.java]"]
  node_datum_model["Movie summary<br/>[Datum.java]"]
  node_metadata_model["Page metadata<br/>[Metadata.java]"]
  node_film_model["Movie details model<br/>[FilmItem.java]"]
end

node_user(("User"))
node_movie_api{{"moviesapi.ir"}}
node_gson{{"Gson"}}
node_glide{{"Glide"}}

node_user -.->|"opens"| node_intro
node_intro -->|"opens"| node_login
node_user -->|"enters credentials"| node_login
node_login -->|"opens on test login"| node_main
node_main -->|"requests pages"| node_movie_api
node_movie_api -->|"returns JSON"| node_main
node_main -->|"parses response"| node_gson
node_main -->|"maps list"| node_list_model
node_list_model -->|"contains movies"| node_datum_model
node_list_model -->|"contains page data"| node_metadata_model
node_main -->|"sets list adapter"| node_film_adapter
node_film_adapter -->|"loads posters"| node_glide
node_film_adapter -->|"opens with movie ID"| node_detail
node_detail -->|"requests movie"| node_movie_api
node_movie_api -->|"returns JSON"| node_detail
node_detail -->|"parses response"| node_gson
node_detail -->|"maps details"| node_film_model
node_detail -->|"loads posters"| node_glide
node_detail -->|"sets gallery adapter"| node_image_adapter
node_image_adapter -->|"loads gallery images"| node_glide

click node_intro "https://github.com/renu-123-pixel/movie-app/blob/main/src/main/java/com/examplefourthjuly/movieapp/Activity/IntroActivity2.java"
click node_login "https://github.com/renu-123-pixel/movie-app/blob/main/src/main/java/com/examplefourthjuly/movieapp/Activity/LoginActivity.java"
click node_main "https://github.com/renu-123-pixel/movie-app/blob/main/src/main/java/com/examplefourthjuly/movieapp/Activity/MainActivity.java"
click node_film_adapter "https://github.com/renu-123-pixel/movie-app/blob/main/src/main/java/com/examplefourthjuly/movieapp/Adapter/FilmListAdapter.java"
click node_detail "https://github.com/renu-123-pixel/movie-app/blob/main/src/main/java/com/examplefourthjuly/movieapp/Activity/DetailActivity.java"
click node_image_adapter "https://github.com/renu-123-pixel/movie-app/blob/main/src/main/java/com/examplefourthjuly/movieapp/Adapter/ImageListAdapter.java"
click node_list_model "https://github.com/renu-123-pixel/movie-app/blob/main/src/main/java/com/examplefourthjuly/movieapp/Domain/ListFilm.java"
click node_datum_model "https://github.com/renu-123-pixel/movie-app/blob/main/src/main/java/com/examplefourthjuly/movieapp/Domain/Datum.java"
click node_metadata_model "https://github.com/renu-123-pixel/movie-app/blob/main/src/main/java/com/examplefourthjuly/movieapp/Domain/Metadata.java"
click node_film_model "https://github.com/renu-123-pixel/movie-app/blob/main/src/main/java/com/examplefourthjuly/movieapp/Domain/FilmItem.java"

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_intro,node_login,node_user toneBlue
class node_main,node_film_adapter toneAmber
class node_detail,node_image_adapter,node_movie_api toneMint
class node_list_model,node_datum_model,node_metadata_model,node_film_model toneRose
class node_gson,node_glide toneIndigo
```

## Components

### Entry

- [Intro screen](https://github.com/renu-123-pixel/movie-app/blob/main/src/main/java/com/examplefourthjuly/movieapp/Activity/IntroActivity2.java): `src/main/java/com/examplefourthjuly/movieapp/Activity/IntroActivity2.java`
- [Login screen](https://github.com/renu-123-pixel/movie-app/blob/main/src/main/java/com/examplefourthjuly/movieapp/Activity/LoginActivity.java): `src/main/java/com/examplefourthjuly/movieapp/Activity/LoginActivity.java`

### Movie browsing

- [Movie lists](https://github.com/renu-123-pixel/movie-app/blob/main/src/main/java/com/examplefourthjuly/movieapp/Activity/MainActivity.java): `src/main/java/com/examplefourthjuly/movieapp/Activity/MainActivity.java`
- [Film cards](https://github.com/renu-123-pixel/movie-app/blob/main/src/main/java/com/examplefourthjuly/movieapp/Adapter/FilmListAdapter.java): `src/main/java/com/examplefourthjuly/movieapp/Adapter/FilmListAdapter.java`

### Movie details

- [Movie detail](https://github.com/renu-123-pixel/movie-app/blob/main/src/main/java/com/examplefourthjuly/movieapp/Activity/DetailActivity.java): `src/main/java/com/examplefourthjuly/movieapp/Activity/DetailActivity.java`
- [Image gallery](https://github.com/renu-123-pixel/movie-app/blob/main/src/main/java/com/examplefourthjuly/movieapp/Adapter/ImageListAdapter.java): `src/main/java/com/examplefourthjuly/movieapp/Adapter/ImageListAdapter.java`

### Movie data

- [List response](https://github.com/renu-123-pixel/movie-app/blob/main/src/main/java/com/examplefourthjuly/movieapp/Domain/ListFilm.java): `src/main/java/com/examplefourthjuly/movieapp/Domain/ListFilm.java`
- [Movie summary](https://github.com/renu-123-pixel/movie-app/blob/main/src/main/java/com/examplefourthjuly/movieapp/Domain/Datum.java): `src/main/java/com/examplefourthjuly/movieapp/Domain/Datum.java`
- [Page metadata](https://github.com/renu-123-pixel/movie-app/blob/main/src/main/java/com/examplefourthjuly/movieapp/Domain/Metadata.java): `src/main/java/com/examplefourthjuly/movieapp/Domain/Metadata.java`
- [Movie details model](https://github.com/renu-123-pixel/movie-app/blob/main/src/main/java/com/examplefourthjuly/movieapp/Domain/FilmItem.java): `src/main/java/com/examplefourthjuly/movieapp/Domain/FilmItem.java`

### Other components

- **User**
- **moviesapi.ir**
- **Gson**
- **Glide**

## Connections

- User → Intro screen: opens
- Intro screen → Login screen: opens
- User → Login screen: enters credentials
- Login screen → Movie lists: opens on test login
- Movie lists → moviesapi.ir: requests pages
- moviesapi.ir → Movie lists: returns JSON
- Movie lists → Gson: parses response
- Movie lists → List response: maps list
- List response → Movie summary: contains movies
- List response → Page metadata: contains page data
- Movie lists → Film cards: sets list adapter
- Film cards → Glide: loads posters
- Film cards → Movie detail: opens with movie ID
- Movie detail → moviesapi.ir: requests movie
- moviesapi.ir → Movie detail: returns JSON
- Movie detail → Gson: parses response
- Movie detail → Movie details model: maps details
- Movie detail → Glide: loads posters
- Movie detail → Image gallery: sets gallery adapter
- Image gallery → Glide: loads gallery images
