# jaime034/01-engmeca-definitiva architecture

> Architecture diagram of the GitHub repository jaime034/01-engmeca-definitiva, 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/jaime034/01-engmeca-definitiva
- Repository: https://github.com/jaime034/01-engmeca-definitiva

## Overview

ENGMECA is a Portuguese-language engineering information site with pages for courses, resources, tools, company information, and contact. Visitors browse the site, search and filter resources, use engineering unit conversions, or prepare a contact message for their email app. Shared scripts load header/footer partials and manage navigation and theme preferences. The README is empty and the HTML pages were not sampled, so page-to-page navigation and unsampled page capabilities are not mapped; page associations below are based on filenames and the sampled scripts.

Main entry points: [`engmeca/js/include.js`](https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/js/include.js) (Partial loader), [`engmeca/recursos.html`](https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/recursos.html) (Resources), [`engmeca/ferramentas.html`](https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/ferramentas.html) (Tools page), [`engmeca/contato.html`](https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/contato.html) (Contact)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_pages["Site pages"]
  node_home["Home<br/>[index.html]"]
  node_courses["Courses<br/>[cursos.html]"]
  node_resources["Resources<br/>[recursos.html]"]
  node_about["About<br/>[sobre.html]"]
  node_contact["Contact<br/>[contato.html]"]
  node_tools_page["Tools page<br/>[ferramentas.html]"]
end

subgraph group_tools["Visitor tools"]
  node_resource_search["Resource search<br/>[search.js]"]
  node_unit_converter["Unit converter<br/>[converter.js]"]
  node_contact_form["Contact form<br/>[contact.js]"]
end

subgraph group_shared["Shared interface"]
  node_partial_loader["Partial loader<br/>[include.js]"]
  node_shared_ui["Shared UI<br/>[script.js]"]
  node_theme_init["Theme initialization<br/>[theme-init.js]"]
  node_header_partial["Header partial<br/>[header.html]"]
  node_footer_partial["Footer partial<br/>[footer.html]"]
end

node_visitor(("Visitor"))
node_browser_storage[("Browser storage")]
node_email_app(("Email application"))

node_visitor -->|"browses"| node_home
node_visitor -->|"browses"| node_courses
node_visitor -->|"browses"| node_resources
node_visitor -->|"browses"| node_about
node_visitor -->|"opens"| node_contact
node_visitor -->|"opens"| node_tools_page
node_resources -->|"hosts search"| node_resource_search
node_tools_page -->|"hosts converter"| node_unit_converter
node_contact -->|"hosts form"| node_contact_form
node_resource_search -->|"filters cards"| node_resources
node_unit_converter -->|"shows results"| node_tools_page
node_contact_form -->|"opens draft"| node_email_app
node_partial_loader -->|"fetches"| node_header_partial
node_partial_loader -->|"fetches"| node_footer_partial
node_partial_loader -->|"signals ready"| node_shared_ui
node_theme_init -->|"reads preference"| node_browser_storage
node_shared_ui -->|"saves preference"| node_browser_storage

click node_home "https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/index.html"
click node_courses "https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/cursos.html"
click node_resources "https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/recursos.html"
click node_about "https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/sobre.html"
click node_contact "https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/contato.html"
click node_tools_page "https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/ferramentas.html"
click node_resource_search "https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/js/search.js"
click node_unit_converter "https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/js/converter.js"
click node_contact_form "https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/js/contact.js"
click node_partial_loader "https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/js/include.js"
click node_shared_ui "https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/js/script.js"
click node_theme_init "https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/js/theme-init.js"
click node_header_partial "https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/partials/header.html"
click node_footer_partial "https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/partials/footer.html"

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_courses,node_resources,node_about,node_contact,node_tools_page toneBlue
class node_resource_search,node_unit_converter,node_contact_form,node_browser_storage toneAmber
class node_partial_loader,node_shared_ui,node_theme_init,node_header_partial,node_footer_partial toneMint
class node_visitor,node_email_app toneIndigo
```

## Components

### Site pages

- [Home](https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/index.html): `engmeca/index.html`
- [Courses](https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/cursos.html): `engmeca/cursos.html`
- [Resources](https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/recursos.html): `engmeca/recursos.html`
- [About](https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/sobre.html): `engmeca/sobre.html`
- [Contact](https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/contato.html): `engmeca/contato.html`
- [Tools page](https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/ferramentas.html): `engmeca/ferramentas.html`

### Visitor tools

- [Resource search](https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/js/search.js): `engmeca/js/search.js`
- [Unit converter](https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/js/converter.js): `engmeca/js/converter.js`
- [Contact form](https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/js/contact.js): `engmeca/js/contact.js`

### Shared interface

- [Partial loader](https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/js/include.js): `engmeca/js/include.js`
- [Shared UI](https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/js/script.js): `engmeca/js/script.js`
- [Theme initialization](https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/js/theme-init.js): `engmeca/js/theme-init.js`
- [Header partial](https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/partials/header.html): `engmeca/partials/header.html`
- [Footer partial](https://github.com/jaime034/01-engmeca-definitiva/blob/main/engmeca/partials/footer.html): `engmeca/partials/footer.html`

### Other components

- **Visitor**
- **Browser storage**
- **Email application**

## Connections

- Visitor → Home: browses
- Visitor → Courses: browses
- Visitor → Resources: browses
- Visitor → About: browses
- Visitor → Contact: opens
- Visitor → Tools page: opens
- Resources → Resource search: hosts search
- Tools page → Unit converter: hosts converter
- Contact → Contact form: hosts form
- Resource search → Resources: filters cards
- Unit converter → Tools page: shows results
- Contact form → Email application: opens draft
- Partial loader → Header partial: fetches
- Partial loader → Footer partial: fetches
- Partial loader → Shared UI: signals ready
- Theme initialization → Browser storage: reads preference
- Shared UI → Browser storage: saves preference
