# willxbernardo/t2g8-plugin-wordpress architecture

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

- Interactive diagram: https://gitdiagram.com/willxbernardo/t2g8-plugin-wordpress
- Repository: https://github.com/willxbernardo/t2g8-plugin-wordpress

## Overview

LGBTQ+ Connect is a WordPress plugin for displaying an interactive map of LGBTQ+-welcoming places and collecting visitor suggestions. Visitors browse approved locations or submit a place; submissions are geocoded and stored as pending records for administrators to filter, edit, approve, reject, or delete. Approved records feed the public map. The sampled files support these core links; the map and form JavaScript implementations were not sampled, so their internal interactions are omitted.

Main entry points: [`lgbtq_connect/index.php`](https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/index.php) (Plugin entry), [`lgbtq_connect/assets/index.html`](https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/assets/index.html) (Map page), [`lgbtq_connect/includes/admin/pagina_administracao.php`](https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/includes/admin/pagina_administracao.php) (Admin page), [`lgbtq_connect/includes/data/conexao_bd.php`](https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/includes/data/conexao_bd.php) (Table and reads)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public experience"]
  node_public_map["Interactive map<br/>[script.js]"]
  node_public_page["Map page<br/>[index.html]"]
  node_place_form["Suggestion form<br/>[formulario.js]"]
  node_form_ui["Form behaviors<br/>[funcionalidades.js]"]
end

subgraph group_intake["Submission and data"]
  node_database_setup["Table and reads<br/>[conexao_bd.php]"]
  node_forms_db[("Forms table")]
  node_submission_handler["Submission handler<br/>[process_form.php]"]
  node_form_helpers["Form helpers"]
end

subgraph group_moderation["Admin moderation"]
  node_admin_page["Admin page"]
  node_admin_ui["Review interface"]
  node_admin_script["Admin interactions<br/>[admin_script.js]"]
  node_query_handler["Filtered query<br/>[realizar-query.php]"]
end

subgraph group_platform["WordPress integration"]
  node_plugin_entry["Plugin entry<br/>[index.php]"]
end

node_visitor(("Site visitor"))
node_admin(("Site administrator"))
node_nominatim["Nominatim"]
node_leaflet_tiles["OpenStreetMap tiles"]
node_mail["WordPress mail"]

node_visitor -->|"opens"| node_public_page
node_public_page -->|"renders"| node_public_map
node_public_page -->|"presents"| node_place_form
node_public_page -->|"loads"| node_form_ui
node_plugin_entry -->|"returns markup"| node_public_page
node_plugin_entry -->|"loads"| node_database_setup
node_plugin_entry -->|"loads"| node_submission_handler
node_plugin_entry -->|"loads"| node_admin_page
node_plugin_entry -->|"loads"| node_query_handler
node_plugin_entry -->|"reads forms"| node_database_setup
node_public_map -->|"loads tiles"| node_leaflet_tiles
node_place_form -->|"submits form"| node_submission_handler
node_submission_handler -->|"uses helpers"| node_form_helpers
node_submission_handler -->|"reverse geocodes"| node_nominatim
node_form_helpers -->|"inserts records"| node_forms_db
node_database_setup -->|"creates and reads"| node_forms_db
node_admin -->|"opens panel"| node_admin_page
node_admin_page -->|"renders"| node_admin_ui
node_admin_page -->|"counts records"| node_forms_db
node_admin_page -->|"sends decisions"| node_mail
node_admin_ui -->|"updates records"| node_forms_db
node_admin_script -->|"requests filtered rows"| node_query_handler
node_query_handler -->|"queries records"| node_forms_db
node_admin_script -->|"updates display"| node_admin_ui
node_database_setup -->|"provides approved data"| node_public_map

click node_public_map "https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/assets/js/script.js"
click node_public_page "https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/assets/index.html"
click node_place_form "https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/assets/js/formulario.js"
click node_form_ui "https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/assets/js/funcionalidades.js"
click node_plugin_entry "https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/index.php"
click node_database_setup "https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/includes/data/conexao_bd.php"
click node_submission_handler "https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/includes/data/process_form.php"
click node_form_helpers "https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/includes/data/auxiliar_process_form.php"
click node_admin_page "https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/includes/admin/pagina_administracao.php"
click node_admin_ui "https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/includes/admin/formulario-admin-page.php"
click node_admin_script "https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/includes/admin/admin_script.js"
click node_query_handler "https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/includes/admin/realizar-query.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_public_map,node_public_page,node_place_form,node_form_ui toneBlue
class node_database_setup,node_forms_db,node_submission_handler,node_form_helpers toneAmber
class node_admin_page,node_admin_ui,node_admin_script,node_query_handler toneMint
class node_plugin_entry toneRose
class node_visitor,node_admin,node_nominatim,node_leaflet_tiles,node_mail toneIndigo
```

## Components

### Public experience

- [Interactive map](https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/assets/js/script.js): `lgbtq_connect/assets/js/script.js`
- [Map page](https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/assets/index.html): `lgbtq_connect/assets/index.html`
- [Suggestion form](https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/assets/js/formulario.js): `lgbtq_connect/assets/js/formulario.js`
- [Form behaviors](https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/assets/js/funcionalidades.js): `lgbtq_connect/assets/js/funcionalidades.js`

### Submission and data

- [Table and reads](https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/includes/data/conexao_bd.php): `lgbtq_connect/includes/data/conexao_bd.php`
- **Forms table**
- [Submission handler](https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/includes/data/process_form.php): `lgbtq_connect/includes/data/process_form.php`
- [Form helpers](https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/includes/data/auxiliar_process_form.php): `lgbtq_connect/includes/data/auxiliar_process_form.php`

### Admin moderation

- [Admin page](https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/includes/admin/pagina_administracao.php): `lgbtq_connect/includes/admin/pagina_administracao.php`
- [Review interface](https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/includes/admin/formulario-admin-page.php): `lgbtq_connect/includes/admin/formulario-admin-page.php`
- [Admin interactions](https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/includes/admin/admin_script.js): `lgbtq_connect/includes/admin/admin_script.js`
- [Filtered query](https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/includes/admin/realizar-query.php): `lgbtq_connect/includes/admin/realizar-query.php`

### WordPress integration

- [Plugin entry](https://github.com/willxbernardo/t2g8-plugin-wordpress/blob/main/lgbtq_connect/index.php): `lgbtq_connect/index.php`

### Other components

- **Site visitor**
- **Site administrator**
- **Nominatim**
- **OpenStreetMap tiles**
- **WordPress mail**

## Connections

- Site visitor → Map page: opens
- Map page → Interactive map: renders
- Map page → Suggestion form: presents
- Map page → Form behaviors: loads
- Plugin entry → Map page: returns markup
- Plugin entry → Table and reads: loads
- Plugin entry → Submission handler: loads
- Plugin entry → Admin page: loads
- Plugin entry → Filtered query: loads
- Plugin entry → Table and reads: reads forms
- Interactive map → OpenStreetMap tiles: loads tiles
- Suggestion form → Submission handler: submits form
- Submission handler → Form helpers: uses helpers
- Submission handler → Nominatim: reverse geocodes
- Form helpers → Forms table: inserts records
- Table and reads → Forms table: creates and reads
- Site administrator → Admin page: opens panel
- Admin page → Review interface: renders
- Admin page → Forms table: counts records
- Admin page → WordPress mail: sends decisions
- Review interface → Forms table: updates records
- Admin interactions → Filtered query: requests filtered rows
- Filtered query → Forms table: queries records
- Admin interactions → Review interface: updates display
- Table and reads → Interactive map: provides approved data
