# santosv06/foundationvne architecture

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

- Interactive diagram: https://gitdiagram.com/santosv06/foundationvne
- Repository: https://github.com/santosv06/foundationvne

## Overview

Fundación VNE is a multilingual public-information and donation website with volunteer intake and a private request-management panel. The main workflow is a visitor submitting a volunteer application, which is validated and screened before being stored and optionally emailed; administrators then authenticate to review and manage requests. The graph also preserves public pages, donations, and owner operations. Some backend details are represented from SOURCE INDEX references and README statements rather than inspected implementation excerpts.

Main entry points: [`src/routes/__root.tsx`](https://github.com/santosv06/foundationvne/blob/main/src/routes/__root.tsx) (App shell), [`src/lib/volunteer-functions.ts`](https://github.com/santosv06/foundationvne/blob/main/src/lib/volunteer-functions.ts) (Form server actions), [`src/components/shell.tsx`](https://github.com/santosv06/foundationvne/blob/main/src/components/shell.tsx) (Site layout), [`src/routes/solicitudes.tsx`](https://github.com/santosv06/foundationvne/blob/main/src/routes/solicitudes.tsx) (Request admin panel)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public website"]
  node_root["App shell<br/>[__root.tsx]"]
  node_shell["Site layout<br/>[shell.tsx]"]
  node_home["Home page<br/>[index.tsx]"]
  node_publicpages["Program pages<br/>[casas.tsx]"]
  node_leadership["Leadership page<br/>[liderazgo.tsx]"]
  node_support["Support page<br/>[soporte.tsx]"]
  node_legal["Legal pages<br/>[legal.$slug.tsx]"]
  node_donations["Donations page<br/>[donaciones.tsx]"]
  node_payment["Card payment gateway"]
end

subgraph group_volunteer["Volunteer workflow"]
  node_volunteerpage["Volunteer form<br/>[voluntariado.tsx]"]
  node_formfunctions["Form server actions"]
  node_validation["Request validation"]
  node_turnstile["Turnstile verification"]
  node_service["Volunteer service"]
  node_database[("Application database<br/>[db.ts]")]
  node_email["Brevo email"]
end

subgraph group_admin["Administration"]
  node_requests["Request admin panel<br/>[solicitudes.tsx]"]
  node_adminops["Owner operations UI"]
end

subgraph group_shared["Shared services"]
  node_i18n["Translation engine<br/>[translate.ts]"]
  node_catalog["Translation catalog<br/>[catalog.ts]"]
  node_seo["Localized metadata<br/>[seo.ts]"]
end

node_visitor(("Visitor"))
node_citibank{{"Citibank"}}
node_brevo{{"Brevo"}}

node_visitor -->|"opens site"| node_root
node_root -->|"renders layout"| node_shell
node_root -->|"routes to"| node_home
node_root -->|"routes to"| node_publicpages
node_root -->|"routes to"| node_leadership
node_root -->|"routes to"| node_support
node_root -->|"routes to"| node_legal
node_root -->|"routes to"| node_donations
node_root -->|"routes to"| node_volunteerpage
node_root -->|"routes to"| node_requests
node_visitor -->|"fills application"| node_volunteerpage
node_volunteerpage -->|"submits to"| node_formfunctions
node_formfunctions -->|"validates with"| node_validation
node_formfunctions -->|"verifies token"| node_turnstile
node_formfunctions -->|"saves request"| node_service
node_service -->|"reads and writes"| node_database
node_formfunctions -->|"sends notices"| node_email
node_email -.->|"delivers email"| node_brevo
node_requests -->|"manages requests"| node_formfunctions
node_requests -->|"renders tools"| node_adminops
node_requests -->|"loads admin data"| node_service
node_donations -->|"renders gateway"| node_payment
node_payment -.->|"opens card payment"| node_citibank
node_root -->|"provides language"| node_i18n
node_i18n -->|"looks up translations"| node_catalog
node_root -->|"localizes metadata"| node_seo
node_home -->|"uses layout"| node_shell
node_publicpages -->|"uses layout"| node_shell
node_donations -->|"uses layout"| node_shell
node_volunteerpage -->|"uses layout"| node_shell
node_requests -->|"uses layout"| node_shell

click node_root "https://github.com/santosv06/foundationvne/blob/main/src/routes/__root.tsx"
click node_shell "https://github.com/santosv06/foundationvne/blob/main/src/components/shell.tsx"
click node_home "https://github.com/santosv06/foundationvne/blob/main/src/routes/index.tsx"
click node_publicpages "https://github.com/santosv06/foundationvne/blob/main/src/routes/casas.tsx"
click node_leadership "https://github.com/santosv06/foundationvne/blob/main/src/routes/liderazgo.tsx"
click node_support "https://github.com/santosv06/foundationvne/blob/main/src/routes/soporte.tsx"
click node_legal "https://github.com/santosv06/foundationvne/blob/main/src/routes/legal.%24slug.tsx"
click node_donations "https://github.com/santosv06/foundationvne/blob/main/src/routes/donaciones.tsx"
click node_payment "https://github.com/santosv06/foundationvne/blob/main/src/components/citybank-gateway.tsx"
click node_volunteerpage "https://github.com/santosv06/foundationvne/blob/main/src/routes/voluntariado.tsx"
click node_formfunctions "https://github.com/santosv06/foundationvne/blob/main/src/lib/volunteer-functions.ts"
click node_validation "https://github.com/santosv06/foundationvne/blob/main/src/lib/volunteer-schema.ts"
click node_turnstile "https://github.com/santosv06/foundationvne/blob/main/src/lib/turnstile.server.ts"
click node_service "https://github.com/santosv06/foundationvne/blob/main/src/lib/volunteer-service.server.ts"
click node_database "https://github.com/santosv06/foundationvne/blob/main/src/lib/db.ts"
click node_email "https://github.com/santosv06/foundationvne/blob/main/src/lib/brevo-email.server.ts"
click node_requests "https://github.com/santosv06/foundationvne/blob/main/src/routes/solicitudes.tsx"
click node_adminops "https://github.com/santosv06/foundationvne/blob/main/src/components/admin-operations.tsx"
click node_i18n "https://github.com/santosv06/foundationvne/blob/main/src/lib/i18n/translate.ts"
click node_catalog "https://github.com/santosv06/foundationvne/blob/main/src/lib/i18n/catalog.ts"
click node_seo "https://github.com/santosv06/foundationvne/blob/main/src/lib/i18n/seo.ts"

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_root,node_shell,node_home,node_publicpages,node_leadership,node_support,node_legal,node_donations,node_payment toneBlue
class node_volunteerpage,node_formfunctions,node_validation,node_turnstile,node_service,node_database,node_email toneAmber
class node_requests,node_adminops toneMint
class node_i18n,node_catalog,node_seo toneRose
class node_visitor,node_citibank,node_brevo toneIndigo
```

## Components

### Public website

- [App shell](https://github.com/santosv06/foundationvne/blob/main/src/routes/__root.tsx): `src/routes/__root.tsx`
- [Site layout](https://github.com/santosv06/foundationvne/blob/main/src/components/shell.tsx): `src/components/shell.tsx`
- [Home page](https://github.com/santosv06/foundationvne/blob/main/src/routes/index.tsx): `src/routes/index.tsx`
- [Program pages](https://github.com/santosv06/foundationvne/blob/main/src/routes/casas.tsx): `src/routes/casas.tsx`
- [Leadership page](https://github.com/santosv06/foundationvne/blob/main/src/routes/liderazgo.tsx): `src/routes/liderazgo.tsx`
- [Support page](https://github.com/santosv06/foundationvne/blob/main/src/routes/soporte.tsx): `src/routes/soporte.tsx`
- [Legal pages](https://github.com/santosv06/foundationvne/blob/main/src/routes/legal.%24slug.tsx): `src/routes/legal.$slug.tsx`
- [Donations page](https://github.com/santosv06/foundationvne/blob/main/src/routes/donaciones.tsx): `src/routes/donaciones.tsx`
- [Card payment gateway](https://github.com/santosv06/foundationvne/blob/main/src/components/citybank-gateway.tsx): `src/components/citybank-gateway.tsx`

### Volunteer workflow

- [Volunteer form](https://github.com/santosv06/foundationvne/blob/main/src/routes/voluntariado.tsx): `src/routes/voluntariado.tsx`
- [Form server actions](https://github.com/santosv06/foundationvne/blob/main/src/lib/volunteer-functions.ts): `src/lib/volunteer-functions.ts`
- [Request validation](https://github.com/santosv06/foundationvne/blob/main/src/lib/volunteer-schema.ts): `src/lib/volunteer-schema.ts`
- [Turnstile verification](https://github.com/santosv06/foundationvne/blob/main/src/lib/turnstile.server.ts): `src/lib/turnstile.server.ts`
- [Volunteer service](https://github.com/santosv06/foundationvne/blob/main/src/lib/volunteer-service.server.ts): `src/lib/volunteer-service.server.ts`
- [Application database](https://github.com/santosv06/foundationvne/blob/main/src/lib/db.ts): `src/lib/db.ts`
- [Brevo email](https://github.com/santosv06/foundationvne/blob/main/src/lib/brevo-email.server.ts): `src/lib/brevo-email.server.ts`

### Administration

- [Request admin panel](https://github.com/santosv06/foundationvne/blob/main/src/routes/solicitudes.tsx): `src/routes/solicitudes.tsx`
- [Owner operations UI](https://github.com/santosv06/foundationvne/blob/main/src/components/admin-operations.tsx): `src/components/admin-operations.tsx`

### Shared services

- [Translation engine](https://github.com/santosv06/foundationvne/blob/main/src/lib/i18n/translate.ts): `src/lib/i18n/translate.ts`
- [Translation catalog](https://github.com/santosv06/foundationvne/blob/main/src/lib/i18n/catalog.ts): `src/lib/i18n/catalog.ts`
- [Localized metadata](https://github.com/santosv06/foundationvne/blob/main/src/lib/i18n/seo.ts): `src/lib/i18n/seo.ts`

### Other components

- **Visitor**
- **Citibank**
- **Brevo**

## Connections

- Visitor → App shell: opens site
- App shell → Site layout: renders layout (evidence: `src/routes/__root.tsx`)
- App shell → Home page: routes to (evidence: `src/routeTree.gen.ts`)
- App shell → Program pages: routes to (evidence: `src/routeTree.gen.ts`)
- App shell → Leadership page: routes to (evidence: `src/routeTree.gen.ts`)
- App shell → Support page: routes to (evidence: `src/routeTree.gen.ts`)
- App shell → Legal pages: routes to (evidence: `src/routeTree.gen.ts`)
- App shell → Donations page: routes to (evidence: `src/routeTree.gen.ts`)
- App shell → Volunteer form: routes to (evidence: `src/routeTree.gen.ts`)
- App shell → Request admin panel: routes to (evidence: `src/routeTree.gen.ts`)
- Visitor → Volunteer form: fills application (evidence: `README.md`)
- Volunteer form → Form server actions: submits to (evidence: `src/routes/voluntariado.tsx`)
- Form server actions → Request validation: validates with (evidence: `src/lib/volunteer-functions.ts`)
- Form server actions → Turnstile verification: verifies token (evidence: `src/lib/volunteer-functions.ts`)
- Form server actions → Volunteer service: saves request (evidence: `src/lib/volunteer-functions.ts`)
- Volunteer service → Application database: reads and writes (evidence: `src/lib/volunteer-service.server.ts`)
- Form server actions → Brevo email: sends notices (evidence: `src/lib/volunteer-functions.ts`)
- Brevo email → Brevo: delivers email (evidence: `README.md`)
- Request admin panel → Form server actions: manages requests (evidence: `src/routes/solicitudes.tsx`)
- Request admin panel → Owner operations UI: renders tools (evidence: `src/routes/solicitudes.tsx`)
- Request admin panel → Volunteer service: loads admin data
- Donations page → Card payment gateway: renders gateway (evidence: `src/routes/donaciones.tsx`)
- Card payment gateway → Citibank: opens card payment (evidence: `README.md`)
- App shell → Translation engine: provides language (evidence: `src/routes/__root.tsx`)
- Translation engine → Translation catalog: looks up translations (evidence: `src/lib/i18n/translate.ts`)
- App shell → Localized metadata: localizes metadata (evidence: `src/routes/__root.tsx`)
- Home page → Site layout: uses layout (evidence: `src/routes/index.tsx`)
- Program pages → Site layout: uses layout (evidence: `src/routes/casas.tsx`)
- Donations page → Site layout: uses layout (evidence: `src/routes/donaciones.tsx`)
- Volunteer form → Site layout: uses layout (evidence: `src/routes/voluntariado.tsx`)
- Request admin panel → Site layout: uses layout (evidence: `src/routes/solicitudes.tsx`)
