# marcelofantin/projetonetflixfake architecture

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

- Interactive diagram: https://gitdiagram.com/marcelofantin/projetonetflixfake
- Repository: https://github.com/marcelofantin/projetonetflixfake

## Overview

Este é um catálogo de filmes em Django: visitantes informam e-mail para entrar ou criar conta; usuários autenticados navegam, pesquisam e abrem detalhes, registrando visualizações e histórico. O app também oferece perfil, senha e administração de filmes, episódios e usuários. O mapa destaca modelos, formulários e processadores de contexto como camadas internas. Os templates e algumas capacidades de autenticação vêm dos caminhos e configurações visíveis; sem README, não atribuo integrações ou fluxos não demonstrados.

Main entry points: [`filme/urls.py`](https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/urls.py) (Rotas do app), [`filme/models.py`](https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/models.py) (Filmes e episódios), [`filme/templates`](https://github.com/marcelofantin/projetonetflixfake/tree/main/filme/templates) (Páginas do app), [`filme/views.py`](https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/views.py) (Detalhe do filme)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web e navegação"]
  node_project_routes["Rotas do projeto<br/>[urls.py]"]
  node_app_routes["Rotas do app<br/>[urls.py]"]
  node_templates["Páginas do app"]
  node_shared_templates["Páginas compartilhadas"]
end

subgraph group_catalog["Catálogo e descoberta"]
  node_catalog_view["Lista de filmes<br/>[views.py]"]
  node_detail_view["Detalhe do filme<br/>[views.py]"]
  node_search_view["Pesquisa<br/>[views.py]"]
  node_context_processors["Contexto do catálogo<br/>[novos_context.py]"]
end

subgraph group_accounts["Contas e administração"]
  node_home_view["Entrada e cadastro<br/>[views.py]"]
  node_profile_view["Perfil<br/>[views.py]"]
  node_auth_views["Autenticação Django<br/>[urls.py]"]
  node_forms["Formulários<br/>[forms.py]"]
  node_admin["Administração<br/>[admin.py]"]
end

subgraph group_data["Dados e contexto"]
  node_film_models["Filmes e episódios<br/>[models.py]"]
  node_user_model["Usuário e histórico<br/>[models.py]"]
  node_database[("Banco de dados")]
end

node_visitor(("Visitante"))
node_member(("Usuário autenticado"))

node_project_routes -->|"inclui rotas"| node_app_routes
node_app_routes -->|"roteia para"| node_home_view
node_app_routes -->|"roteia para"| node_catalog_view
node_app_routes -->|"roteia para"| node_detail_view
node_app_routes -->|"roteia para"| node_search_view
node_app_routes -->|"roteia para"| node_profile_view
node_app_routes -->|"roteia para"| node_auth_views
node_visitor -.->|"acessa"| node_project_routes
node_member -.->|"acessa"| node_project_routes
node_home_view -->|"usa"| node_forms
node_home_view -->|"consulta e cria"| node_user_model
node_home_view -->|"renderiza"| node_templates
node_catalog_view -->|"lista"| node_film_models
node_catalog_view -->|"renderiza"| node_templates
node_detail_view -->|"atualiza visualizações"| node_film_models
node_detail_view -->|"registra histórico"| node_user_model
node_detail_view -->|"renderiza"| node_templates
node_search_view -->|"pesquisa"| node_film_models
node_search_view -->|"renderiza"| node_templates
node_profile_view -->|"atualiza"| node_user_model
node_profile_view -->|"renderiza"| node_templates
node_auth_views -->|"usa páginas"| node_templates
node_forms -->|"valida cadastro"| node_user_model
node_admin -->|"registra"| node_film_models
node_admin -->|"registra"| node_user_model
node_film_models -.->|"persiste dados"| node_database
node_user_model -.->|"persiste dados"| node_database
node_context_processors -->|"consulta recentes e populares"| node_film_models
node_context_processors -.->|"fornece contexto"| node_shared_templates
node_shared_templates -->|"configura processadores"| node_context_processors

click node_project_routes "https://github.com/marcelofantin/projetonetflixfake/blob/main/netflixfake/urls.py"
click node_app_routes "https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/urls.py"
click node_home_view "https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/views.py"
click node_catalog_view "https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/views.py"
click node_detail_view "https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/views.py"
click node_search_view "https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/views.py"
click node_profile_view "https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/views.py"
click node_auth_views "https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/urls.py"
click node_forms "https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/forms.py"
click node_admin "https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/admin.py"
click node_templates "https://github.com/marcelofantin/projetonetflixfake/tree/main/filme/templates"
click node_shared_templates "https://github.com/marcelofantin/projetonetflixfake/tree/main/templates"
click node_film_models "https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/models.py"
click node_user_model "https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/models.py"
click node_context_processors "https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/novos_context.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_project_routes,node_app_routes,node_templates,node_shared_templates toneBlue
class node_catalog_view,node_detail_view,node_search_view,node_context_processors toneAmber
class node_home_view,node_profile_view,node_auth_views,node_forms,node_admin toneMint
class node_film_models,node_user_model,node_database toneRose
class node_visitor,node_member toneIndigo
```

## Components

### Web e navegação

- [Rotas do projeto](https://github.com/marcelofantin/projetonetflixfake/blob/main/netflixfake/urls.py): `netflixfake/urls.py`
- [Rotas do app](https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/urls.py): `filme/urls.py`
- [Páginas do app](https://github.com/marcelofantin/projetonetflixfake/tree/main/filme/templates): `filme/templates`
- [Páginas compartilhadas](https://github.com/marcelofantin/projetonetflixfake/tree/main/templates): `templates`

### Catálogo e descoberta

- [Lista de filmes](https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/views.py): `filme/views.py`
- [Detalhe do filme](https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/views.py): `filme/views.py`
- [Pesquisa](https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/views.py): `filme/views.py`
- [Contexto do catálogo](https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/novos_context.py): `filme/novos_context.py`

### Contas e administração

- [Entrada e cadastro](https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/views.py): `filme/views.py`
- [Perfil](https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/views.py): `filme/views.py`
- [Autenticação Django](https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/urls.py): `filme/urls.py`
- [Formulários](https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/forms.py): `filme/forms.py`
- [Administração](https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/admin.py): `filme/admin.py`

### Dados e contexto

- [Filmes e episódios](https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/models.py): `filme/models.py`
- [Usuário e histórico](https://github.com/marcelofantin/projetonetflixfake/blob/main/filme/models.py): `filme/models.py`
- **Banco de dados**

### Other components

- **Visitante**
- **Usuário autenticado**

## Connections

- Rotas do projeto → Rotas do app: inclui rotas (evidence: `netflixfake/urls.py`)
- Rotas do app → Entrada e cadastro: roteia para (evidence: `filme/urls.py`)
- Rotas do app → Lista de filmes: roteia para (evidence: `filme/urls.py`)
- Rotas do app → Detalhe do filme: roteia para (evidence: `filme/urls.py`)
- Rotas do app → Pesquisa: roteia para (evidence: `filme/urls.py`)
- Rotas do app → Perfil: roteia para (evidence: `filme/urls.py`)
- Rotas do app → Autenticação Django: roteia para (evidence: `filme/urls.py`)
- Visitante → Rotas do projeto: acessa
- Usuário autenticado → Rotas do projeto: acessa
- Entrada e cadastro → Formulários: usa (evidence: `filme/views.py`)
- Entrada e cadastro → Usuário e histórico: consulta e cria (evidence: `filme/views.py`)
- Entrada e cadastro → Páginas do app: renderiza (evidence: `filme/views.py`)
- Lista de filmes → Filmes e episódios: lista (evidence: `filme/views.py`)
- Lista de filmes → Páginas do app: renderiza (evidence: `filme/views.py`)
- Detalhe do filme → Filmes e episódios: atualiza visualizações (evidence: `filme/views.py`)
- Detalhe do filme → Usuário e histórico: registra histórico (evidence: `filme/views.py`)
- Detalhe do filme → Páginas do app: renderiza (evidence: `filme/views.py`)
- Pesquisa → Filmes e episódios: pesquisa (evidence: `filme/views.py`)
- Pesquisa → Páginas do app: renderiza (evidence: `filme/views.py`)
- Perfil → Usuário e histórico: atualiza (evidence: `filme/views.py`)
- Perfil → Páginas do app: renderiza (evidence: `filme/views.py`)
- Autenticação Django → Páginas do app: usa páginas (evidence: `filme/urls.py`)
- Formulários → Usuário e histórico: valida cadastro (evidence: `filme/forms.py`)
- Administração → Filmes e episódios: registra (evidence: `filme/admin.py`)
- Administração → Usuário e histórico: registra (evidence: `filme/admin.py`)
- Filmes e episódios → Banco de dados: persiste dados
- Usuário e histórico → Banco de dados: persiste dados
- Contexto do catálogo → Filmes e episódios: consulta recentes e populares (evidence: `filme/novos_context.py`)
- Contexto do catálogo → Páginas compartilhadas: fornece contexto
- Páginas compartilhadas → Contexto do catálogo: configura processadores
