# breno-n/ctp architecture

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

- Interactive diagram: https://gitdiagram.com/breno-n/ctp
- Repository: https://github.com/breno-n/ctp

## Overview

This is a CodeIgniter web application for a neighborhood-oriented request portal, with public registration, login, news and contact pages plus an administrative area for users, requests, neighborhoods and reference data. The likely user journey is to register or sign in, provide address details, and use request-related functionality; administrators maintain requests and the data that classifies them. The tree establishes these domains, but README content is absent and most controller/model implementations were not sampled, so uncertain runtime connections are omitted.

Main entry points: [`application/config/routes.php`](https://github.com/breno-n/ctp/blob/master/application/config/routes.php) (Route mapping), [`application/config/database.php`](https://github.com/breno-n/ctp/blob/master/application/config/database.php) (Application database), [`application/controllers/admin/Requisicoes.php`](https://github.com/breno-n/ctp/blob/master/application/controllers/admin/Requisicoes.php) (Request admin), [`application/controllers/Home.php`](https://github.com/breno-n/ctp/blob/master/application/controllers/Home.php) (Home page)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public site"]
  node_home["Home page<br/>[Home.php]"]
  node_news["News<br/>[Home.php]"]
  node_contact["Contact<br/>[Contato.php]"]
  node_contact_view["Contact form<br/>[index.php]"]
end

subgraph group_identity["Accounts and access"]
  node_registration["Registration<br/>[Cadastro.php]"]
  node_registration_view["Registration form<br/>[index.php]"]
  node_login["Login<br/>[Login.php]"]
end

subgraph group_requests["Request operations"]
  node_requests_controller["Request admin<br/>[Requisicoes.php]"]
  node_requests_model["Requests<br/>[Requests_model.php]"]
  node_requests_view["Request views<br/>[add_requests.php]"]
end

subgraph group_admin["Administration"]
  node_users_controller["User admin<br/>[Usuarios.php]"]
  node_users_view["User form<br/>[add_users.php]"]
  node_news_admin["News admin<br/>[Noticias.php]"]
  node_news_model["News data<br/>[News_model.php]"]
  node_reference_admin["Reference data<br/>[Tipos_negocios.php]"]
  node_reference_models["Reference models"]
end

subgraph group_shared["Shared application"]
  node_database[("Application database<br/>[database.php]")]
  node_base_controller["Controller services<br/>[MY_Controller.php]"]
  node_layout["Layout rendering<br/>[Layout.php]"]
  node_routes["Route mapping<br/>[routes.php]"]
end

node_visitor(("Visitor"))

node_visitor -->|"requests pages"| node_routes
node_routes -->|"defaults to"| node_home
node_routes -->|"maps admin"| node_login
node_home -->|"serves news"| node_news
node_visitor -->|"submits inquiry"| node_contact
node_contact -->|"renders"| node_contact_view
node_visitor -->|"registers"| node_registration
node_registration -->|"renders"| node_registration_view
node_visitor -->|"signs in"| node_login
node_users_controller -->|"renders"| node_users_view
node_requests_controller -->|"queries requests"| node_requests_model
node_requests_controller -->|"renders"| node_requests_view
node_requests_model -->|"reads and writes"| node_database
node_news_admin -->|"manages news"| node_news_model
node_news_model -->|"stores news"| node_database
node_reference_admin -->|"manages types"| node_reference_models
node_reference_models -->|"stores types"| node_database
node_base_controller -->|"uses layout"| node_layout

click node_home "https://github.com/breno-n/ctp/blob/master/application/controllers/Home.php"
click node_news "https://github.com/breno-n/ctp/blob/master/application/controllers/Home.php"
click node_contact "https://github.com/breno-n/ctp/blob/master/application/controllers/Contato.php"
click node_contact_view "https://github.com/breno-n/ctp/blob/master/application/views/site/contact/index.php"
click node_registration "https://github.com/breno-n/ctp/blob/master/application/controllers/Cadastro.php"
click node_registration_view "https://github.com/breno-n/ctp/blob/master/application/views/site/register/index.php"
click node_login "https://github.com/breno-n/ctp/blob/master/application/controllers/Login.php"
click node_users_controller "https://github.com/breno-n/ctp/blob/master/application/controllers/admin/Usuarios.php"
click node_users_view "https://github.com/breno-n/ctp/blob/master/application/views/admin/users/add_users.php"
click node_requests_controller "https://github.com/breno-n/ctp/blob/master/application/controllers/admin/Requisicoes.php"
click node_requests_model "https://github.com/breno-n/ctp/blob/master/application/models/Requests_model.php"
click node_requests_view "https://github.com/breno-n/ctp/blob/master/application/views/admin/requests/add_requests.php"
click node_news_admin "https://github.com/breno-n/ctp/blob/master/application/controllers/admin/Noticias.php"
click node_news_model "https://github.com/breno-n/ctp/blob/master/application/models/News_model.php"
click node_reference_admin "https://github.com/breno-n/ctp/blob/master/application/controllers/admin/Tipos_negocios.php"
click node_reference_models "https://github.com/breno-n/ctp/blob/master/application/models/Type_business_model.php"
click node_database "https://github.com/breno-n/ctp/blob/master/application/config/database.php"
click node_base_controller "https://github.com/breno-n/ctp/blob/master/application/core/MY_Controller.php"
click node_layout "https://github.com/breno-n/ctp/blob/master/application/libraries/Layout.php"
click node_routes "https://github.com/breno-n/ctp/blob/master/application/config/routes.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_home,node_news,node_contact,node_contact_view toneBlue
class node_registration,node_registration_view,node_login toneAmber
class node_requests_controller,node_requests_model,node_requests_view toneMint
class node_users_controller,node_users_view,node_news_admin,node_news_model,node_reference_admin,node_reference_models toneRose
class node_database,node_base_controller,node_layout,node_routes,node_visitor toneIndigo
```

## Components

### Public site

- [Home page](https://github.com/breno-n/ctp/blob/master/application/controllers/Home.php): `application/controllers/Home.php`
- [News](https://github.com/breno-n/ctp/blob/master/application/controllers/Home.php): `application/controllers/Home.php`
- [Contact](https://github.com/breno-n/ctp/blob/master/application/controllers/Contato.php): `application/controllers/Contato.php`
- [Contact form](https://github.com/breno-n/ctp/blob/master/application/views/site/contact/index.php): `application/views/site/contact/index.php`

### Accounts and access

- [Registration](https://github.com/breno-n/ctp/blob/master/application/controllers/Cadastro.php): `application/controllers/Cadastro.php`
- [Registration form](https://github.com/breno-n/ctp/blob/master/application/views/site/register/index.php): `application/views/site/register/index.php`
- [Login](https://github.com/breno-n/ctp/blob/master/application/controllers/Login.php): `application/controllers/Login.php`

### Request operations

- [Request admin](https://github.com/breno-n/ctp/blob/master/application/controllers/admin/Requisicoes.php): `application/controllers/admin/Requisicoes.php`
- [Requests](https://github.com/breno-n/ctp/blob/master/application/models/Requests_model.php): `application/models/Requests_model.php`
- [Request views](https://github.com/breno-n/ctp/blob/master/application/views/admin/requests/add_requests.php): `application/views/admin/requests/add_requests.php`

### Administration

- [User admin](https://github.com/breno-n/ctp/blob/master/application/controllers/admin/Usuarios.php): `application/controllers/admin/Usuarios.php`
- [User form](https://github.com/breno-n/ctp/blob/master/application/views/admin/users/add_users.php): `application/views/admin/users/add_users.php`
- [News admin](https://github.com/breno-n/ctp/blob/master/application/controllers/admin/Noticias.php): `application/controllers/admin/Noticias.php`
- [News data](https://github.com/breno-n/ctp/blob/master/application/models/News_model.php): `application/models/News_model.php`
- [Reference data](https://github.com/breno-n/ctp/blob/master/application/controllers/admin/Tipos_negocios.php): `application/controllers/admin/Tipos_negocios.php`
- [Reference models](https://github.com/breno-n/ctp/blob/master/application/models/Type_business_model.php): `application/models/Type_business_model.php`

### Shared application

- [Application database](https://github.com/breno-n/ctp/blob/master/application/config/database.php): `application/config/database.php`
- [Controller services](https://github.com/breno-n/ctp/blob/master/application/core/MY_Controller.php): `application/core/MY_Controller.php`
- [Layout rendering](https://github.com/breno-n/ctp/blob/master/application/libraries/Layout.php): `application/libraries/Layout.php`
- [Route mapping](https://github.com/breno-n/ctp/blob/master/application/config/routes.php): `application/config/routes.php`

### Other components

- **Visitor**

## Connections

- Visitor → Route mapping: requests pages
- Route mapping → Home page: defaults to
- Route mapping → Login: maps admin
- Home page → News: serves news
- Visitor → Contact: submits inquiry
- Contact → Contact form: renders
- Visitor → Registration: registers
- Registration → Registration form: renders
- Visitor → Login: signs in
- User admin → User form: renders
- Request admin → Requests: queries requests
- Request admin → Request views: renders
- Requests → Application database: reads and writes
- News admin → News data: manages news
- News data → Application database: stores news
- Reference data → Reference models: manages types
- Reference models → Application database: stores types
- Controller services → Layout rendering: uses layout
