# lejoser40/zapateria architecture

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

- Interactive diagram: https://gitdiagram.com/lejoser40/zapateria
- Repository: https://github.com/lejoser40/zapateria

## Overview

This Electron/Vue desktop app presents a Spanish-language business-management interface: users sign in, then navigate to sales, invoicing, inventory, reports, audit-log, and user-management screens. The login and user screens explicitly call a shared HTTP-fetch composable; the routes establish the other product areas, but their internal behavior was not sampled. Electron creates the renderer window and configures a preload bridge. The README identifies only the app framework, so domain capabilities are inferred from the route names; backend implementation and the other screen workflows are not shown.

Main entry points: [`src/renderer/src/routes/index.js`](https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/routes/index.js) (Route map), [`src/renderer/src/views/loginView.vue`](https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/views/loginView.vue) (Sign in), [`src/renderer/src/composable/fectchData.js`](https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/composable/fectchData.js) (HTTP fetch), [`src/main/index.js`](https://github.com/lejoser40/zapateria/blob/main/src/main/index.js) (Electron main)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_desktop["Desktop runtime"]
  node_electron["Electron main<br/>[index.js]"]
  node_preload["Preload bridge<br/>[index.js]"]
end

subgraph group_navigation["App navigation"]
  node_renderer["Vue bootstrap<br/>[main.js]"]
  node_app["App shell<br/>[App.vue]"]
  node_routes["Route map<br/>[index.js]"]
end

subgraph group_business["Business workflows"]
  node_login["Sign in<br/>[loginView.vue]"]
  node_dashboard["Dashboard<br/>[dashBoard.vue]"]
  node_sales["Sales<br/>[ventas.vue]"]
  node_invoicing["Invoicing<br/>[facturacion.vue]"]
  node_inventory["Inventory<br/>[inventario.vue]"]
  node_reports["Reports<br/>[informes.vue]"]
  node_audit["Audit log<br/>[bitacora.vue]"]
  node_users["User management<br/>[usuarios.vue]"]
end

subgraph group_connectivity["API access"]
  node_fetch["HTTP fetch<br/>[fectchData.js]"]
end

node_operator(("Staff user"))
node_backend["Business API"]
node_session[("Browser session")]

node_operator -->|"submits credentials"| node_login
node_electron -->|"configures preload"| node_preload
node_electron -->|"loads window"| node_renderer
node_renderer -->|"mounts"| node_app
node_app -->|"renders routes"| node_routes
node_routes -->|"routes to"| node_login
node_routes -->|"routes to"| node_dashboard
node_routes -->|"routes to"| node_sales
node_routes -->|"routes to"| node_invoicing
node_routes -->|"routes to"| node_inventory
node_routes -->|"routes to"| node_reports
node_routes -->|"routes to"| node_audit
node_routes -->|"routes to"| node_users
node_login -->|"requests login"| node_fetch
node_users -->|"requests user data"| node_fetch
node_fetch -->|"sends HTTP"| node_backend
node_login -->|"stores user"| node_session
node_login -->|"navigates after login"| node_routes

click node_electron "https://github.com/lejoser40/zapateria/blob/main/src/main/index.js"
click node_preload "https://github.com/lejoser40/zapateria/blob/main/src/preload/index.js"
click node_renderer "https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/main.js"
click node_app "https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/App.vue"
click node_routes "https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/routes/index.js"
click node_login "https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/views/loginView.vue"
click node_dashboard "https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/views/dashBoard.vue"
click node_sales "https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/views/pages/ventas.vue"
click node_invoicing "https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/views/pages/facturacion.vue"
click node_inventory "https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/views/pages/inventario.vue"
click node_reports "https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/views/pages/informes.vue"
click node_audit "https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/views/pages/bitacora.vue"
click node_users "https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/views/pages/usuarios.vue"
click node_fetch "https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/composable/fectchData.js"

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_electron,node_preload,node_operator toneBlue
class node_renderer,node_app,node_routes,node_session toneAmber
class node_login,node_dashboard,node_sales,node_invoicing,node_inventory,node_reports,node_audit,node_users,node_backend toneMint
class node_fetch toneRose
```

## Components

### Desktop runtime

- [Electron main](https://github.com/lejoser40/zapateria/blob/main/src/main/index.js): `src/main/index.js`
- [Preload bridge](https://github.com/lejoser40/zapateria/blob/main/src/preload/index.js): `src/preload/index.js`

### App navigation

- [Vue bootstrap](https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/main.js): `src/renderer/src/main.js`
- [App shell](https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/App.vue): `src/renderer/src/App.vue`
- [Route map](https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/routes/index.js): `src/renderer/src/routes/index.js`

### Business workflows

- [Sign in](https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/views/loginView.vue): `src/renderer/src/views/loginView.vue`
- [Dashboard](https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/views/dashBoard.vue): `src/renderer/src/views/dashBoard.vue`
- [Sales](https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/views/pages/ventas.vue): `src/renderer/src/views/pages/ventas.vue`
- [Invoicing](https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/views/pages/facturacion.vue): `src/renderer/src/views/pages/facturacion.vue`
- [Inventory](https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/views/pages/inventario.vue): `src/renderer/src/views/pages/inventario.vue`
- [Reports](https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/views/pages/informes.vue): `src/renderer/src/views/pages/informes.vue`
- [Audit log](https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/views/pages/bitacora.vue): `src/renderer/src/views/pages/bitacora.vue`
- [User management](https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/views/pages/usuarios.vue): `src/renderer/src/views/pages/usuarios.vue`

### API access

- [HTTP fetch](https://github.com/lejoser40/zapateria/blob/main/src/renderer/src/composable/fectchData.js): `src/renderer/src/composable/fectchData.js`

### Other components

- **Staff user**
- **Business API**
- **Browser session**

## Connections

- Staff user → Sign in: submits credentials
- Electron main → Preload bridge: configures preload
- Electron main → Vue bootstrap: loads window
- Vue bootstrap → App shell: mounts
- App shell → Route map: renders routes
- Route map → Sign in: routes to
- Route map → Dashboard: routes to
- Route map → Sales: routes to
- Route map → Invoicing: routes to
- Route map → Inventory: routes to
- Route map → Reports: routes to
- Route map → Audit log: routes to
- Route map → User management: routes to
- Sign in → HTTP fetch: requests login
- User management → HTTP fetch: requests user data
- HTTP fetch → Business API: sends HTTP
- Sign in → Browser session: stores user
- Sign in → Route map: navigates after login
