# cristianlira-dev/tcc-adotepatas architecture

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

- Interactive diagram: https://gitdiagram.com/cristianlira-dev/tcc-adotepatas
- Repository: https://github.com/cristianlira-dev/tcc-adotepatas

## Overview

AdotePatas is a PHP/MySQL adoption platform for adopters, individual pet guardians, NGOs, and administrators. Its main journey is pet discovery and filtering, viewing a pet, submitting an adoption interest form, and communicating with the guardian; pet listings also pass through administrator moderation. The map preserves documented account, profile, favorites, chat, recovery, and location capabilities. README claims support several areas whose handlers were not sampled, so those links are limited to documented behavior; Google Maps is shown as optional.

Main entry points: [`AdotePatas/conexao.php`](https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/conexao.php) (MySQL database), [`AdotePatas/pets-adocao.php`](https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/pets-adocao.php) (Browse pets), [`AdotePatas/admin-acoes.php`](https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/admin-acoes.php) (Admin actions), [`AdotePatas/recusar-pet/index.php`](https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/recusar-pet/index.php) (Reject pet)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_discovery["Pet discovery"]
  node_listing["Browse pets<br/>[pets-adocao.php]"]
  node_filter["Filter pets<br/>[filtrar-pets.php]"]
  node_petdetail["Pet details<br/>[pet-detalhe.php]"]
  node_maps["Google Maps"]
end

subgraph group_accounts["Accounts and profiles"]
  node_auth["Register and login<br/>[autenticacao.php]"]
  node_registration["Registration handler"]
  node_profile["Profile management<br/>[perfil.php]"]
  node_petmanage["Pet management<br/>[cadastrar-pet.php]"]
end

subgraph group_adoption["Adoption and chat"]
  node_interest["Adoption interest"]
  node_processadoption["Process adoption"]
  node_chat["Chat experience<br/>[index.php]"]
  node_messages["Message endpoint"]
  node_favorites["Pet favorites<br/>[favoritar-pet.php]"]
end

subgraph group_moderation["Pet moderation"]
  node_adminpanel["Admin actions<br/>[admin-acoes.php]"]
  node_approval["Approve pet<br/>[aprovar-pet.php]"]
  node_rejection["Reject pet<br/>[index.php]"]
end

subgraph group_services["Platform services"]
  node_database[("MySQL database<br/>[conexao.php]")]
  node_recovery["Password recovery<br/>[index.php]"]
  node_email["Email service<br/>[email-service.php]"]
end

node_adopter(("Adopter"))
node_guardian(("Guardian / NGO"))
node_admin(("Administrator"))

node_adopter -->|"browse"| node_listing
node_guardian -->|"browse"| node_listing
node_listing -->|"filter"| node_filter
node_listing -->|"view pet"| node_petdetail
node_petdetail -->|"express interest"| node_interest
node_interest -->|"submit form"| node_processadoption
node_adopter -->|"register / login"| node_auth
node_guardian -->|"register / login"| node_auth
node_auth -->|"submit registration"| node_registration
node_guardian -->|"manage profile"| node_profile
node_guardian -->|"manage pets"| node_petmanage
node_adopter -->|"favorite pets"| node_favorites
node_adopter -->|"open chat"| node_chat
node_guardian -->|"open chat"| node_chat
node_chat -->|"fetch messages"| node_messages
node_admin -->|"manage platform"| node_adminpanel
node_adminpanel -->|"moderate listings"| node_approval
node_adminpanel -->|"moderate listings"| node_rejection
node_adopter -->|"request reset"| node_recovery
node_recovery -->|"send reset email"| node_email
node_rejection -->|"notify guardian"| node_email
node_listing -.->|"show locations"| node_maps
node_registration -->|"store accounts"| node_database
node_petmanage -->|"store pet records"| node_database
node_filter -->|"query listings"| node_database
node_processadoption -->|"record adoption"| node_database
node_messages -->|"read messages"| node_database
node_favorites -->|"store favorites"| node_database
node_approval -->|"update status"| node_database
node_rejection -->|"update status"| node_database
node_recovery -->|"store reset token"| node_database

click node_listing "https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/pets-adocao.php"
click node_filter "https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/filtrar-pets.php"
click node_petdetail "https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/pet-detalhe.php"
click node_auth "https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/autenticacao.php"
click node_registration "https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/processa_cadastro.php"
click node_profile "https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/perfil.php"
click node_petmanage "https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/cadastrar-pet.php"
click node_interest "https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/formulario-adocao.php"
click node_processadoption "https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/processa-adocao.php"
click node_chat "https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/chat/index.php"
click node_messages "https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/buscar-mensagens.php"
click node_favorites "https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/favoritar-pet.php"
click node_adminpanel "https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/admin-acoes.php"
click node_approval "https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/aprovar-pet.php"
click node_rejection "https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/recusar-pet/index.php"
click node_database "https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/conexao.php"
click node_recovery "https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/recuperar-senha/index.php"
click node_email "https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/email-service.php"

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_listing,node_filter,node_petdetail,node_maps toneBlue
class node_auth,node_registration,node_profile,node_petmanage toneAmber
class node_interest,node_processadoption,node_chat,node_messages,node_favorites toneMint
class node_adminpanel,node_approval,node_rejection toneRose
class node_database,node_recovery,node_email,node_adopter,node_guardian,node_admin toneIndigo
```

## Components

### Pet discovery

- [Browse pets](https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/pets-adocao.php): `AdotePatas/pets-adocao.php`
- [Filter pets](https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/filtrar-pets.php): `AdotePatas/filtrar-pets.php`
- [Pet details](https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/pet-detalhe.php): `AdotePatas/pet-detalhe.php`
- **Google Maps**

### Accounts and profiles

- [Register and login](https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/autenticacao.php): `AdotePatas/autenticacao.php`
- [Registration handler](https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/processa_cadastro.php): `AdotePatas/processa_cadastro.php`
- [Profile management](https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/perfil.php): `AdotePatas/perfil.php`
- [Pet management](https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/cadastrar-pet.php): `AdotePatas/cadastrar-pet.php`

### Adoption and chat

- [Adoption interest](https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/formulario-adocao.php): `AdotePatas/formulario-adocao.php`
- [Process adoption](https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/processa-adocao.php): `AdotePatas/processa-adocao.php`
- [Chat experience](https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/chat/index.php): `AdotePatas/chat/index.php`
- [Message endpoint](https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/buscar-mensagens.php): `AdotePatas/buscar-mensagens.php`
- [Pet favorites](https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/favoritar-pet.php): `AdotePatas/favoritar-pet.php`

### Pet moderation

- [Admin actions](https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/admin-acoes.php): `AdotePatas/admin-acoes.php`
- [Approve pet](https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/aprovar-pet.php): `AdotePatas/aprovar-pet.php`
- [Reject pet](https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/recusar-pet/index.php): `AdotePatas/recusar-pet/index.php`

### Platform services

- [MySQL database](https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/conexao.php): `AdotePatas/conexao.php`
- [Password recovery](https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/recuperar-senha/index.php): `AdotePatas/recuperar-senha/index.php`
- [Email service](https://github.com/cristianlira-dev/tcc-adotepatas/blob/main/AdotePatas/email-service.php): `AdotePatas/email-service.php`

### Other components

- **Adopter**
- **Guardian / NGO**
- **Administrator**

## Connections

- Adopter → Browse pets: browse
- Guardian / NGO → Browse pets: browse
- Browse pets → Filter pets: filter
- Browse pets → Pet details: view pet
- Pet details → Adoption interest: express interest
- Adoption interest → Process adoption: submit form
- Adopter → Register and login: register / login
- Guardian / NGO → Register and login: register / login
- Register and login → Registration handler: submit registration
- Guardian / NGO → Profile management: manage profile
- Guardian / NGO → Pet management: manage pets
- Adopter → Pet favorites: favorite pets
- Adopter → Chat experience: open chat
- Guardian / NGO → Chat experience: open chat
- Chat experience → Message endpoint: fetch messages
- Administrator → Admin actions: manage platform
- Admin actions → Approve pet: moderate listings
- Admin actions → Reject pet: moderate listings
- Adopter → Password recovery: request reset
- Password recovery → Email service: send reset email
- Reject pet → Email service: notify guardian
- Browse pets → Google Maps: show locations
- Registration handler → MySQL database: store accounts
- Pet management → MySQL database: store pet records
- Filter pets → MySQL database: query listings
- Process adoption → MySQL database: record adoption
- Message endpoint → MySQL database: read messages
- Pet favorites → MySQL database: store favorites
- Approve pet → MySQL database: update status
- Reject pet → MySQL database: update status
- Password recovery → MySQL database: store reset token
