# victornavarreteduran/gestor_sqlite architecture

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

- Interactive diagram: https://gitdiagram.com/victornavarreteduran/gestor_sqlite
- Repository: https://github.com/victornavarreteduran/gestor_sqlite

## Overview

Gestor SQLite PIME is a browser-based small-business manager: an operator opens or creates a local SQLite file, works in dashboard sections, then downloads or directly saves changes. The main flow runs from the home screen through the shared sql.js engine into domain repositories and back to the UI. Distinct capabilities include sales/POS, inventory and stock movements, clients, dashboard analytics, and finance reporting. Express serves static application resources; the README states database queries and persistence remain in the browser. Several repository and module implementations were not excerpted, so their links follow the SOURCE INDEX import references.

Main entry points: [`public/js/dashboard.js`](https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/dashboard.js) (Dashboard bootstrap), [`public/js/db/engine.js`](https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/db/engine.js) (SQLite engine), [`public/js/utils/formatters.js`](https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/utils/formatters.js) (Display formatters), [`public/app.js`](https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/app.js) (Database home)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Entry and navigation"]
  node_home["Database home<br/>[app.js]"]
  node_dashboard["Dashboard bootstrap<br/>[dashboard.js]"]
  node_templates["Template loader<br/>[template-loader.js]"]
  node_navigation["Navigation and session<br/>[navbar.js]"]
  node_server["Static server<br/>[server.js]"]
end

subgraph group_runtime["Local database runtime"]
  node_engine["SQLite engine<br/>[engine.js]"]
  node_schema["Schema and triggers<br/>[schema.js]"]
  node_localdb[("Local SQLite file")]
end

subgraph group_operations["Business operations"]
  node_inventory_ui["Inventory browser<br/>[inventario.js]"]
  node_inventory_repo["Inventory queries<br/>[inventory.repo.js]"]
  node_stock_ui["Stock movements<br/>[kardex.js]"]
  node_stock_repo["Stock repository<br/>[stock.repo.js]"]
  node_pos_ui["Sales POS<br/>[pos.js]"]
  node_sales_repo["Sales repository<br/>[sales.repo.js]"]
  node_clients_ui["Clients and suppliers<br/>[clientes.js]"]
  node_clients_repo["Client repository<br/>[clients.repo.js]"]
  node_formatters["Display formatters<br/>[formatters.js]"]
end

subgraph group_insights["Reporting and analytics"]
  node_dashboard_ui["Home dashboard<br/>[inicio.js]"]
  node_dashboard_repo["Dashboard queries<br/>[dashboard.repo.js]"]
  node_finance_ui["Finance reports<br/>[finanzas.js]"]
  node_finance_repo["Finance queries<br/>[finance.repo.js]"]
end

node_operator(("Operator"))

node_operator -->|"opens database"| node_home
node_home -->|"loads or creates"| node_engine
node_engine -->|"reads and saves"| node_localdb
node_home -->|"opens panel"| node_dashboard
node_dashboard -->|"loads templates"| node_templates
node_dashboard -->|"initializes"| node_navigation
node_dashboard -->|"initializes"| node_dashboard_ui
node_dashboard -->|"initializes"| node_inventory_ui
node_dashboard -->|"initializes"| node_stock_ui
node_dashboard -->|"initializes"| node_pos_ui
node_dashboard -->|"initializes"| node_clients_ui
node_dashboard -->|"initializes"| node_finance_ui
node_navigation -->|"closes session"| node_engine
node_engine -->|"applies indexes"| node_schema
node_dashboard_ui -->|"requests metrics"| node_dashboard_repo
node_finance_ui -->|"requests reports"| node_finance_repo
node_inventory_ui -->|"requests products"| node_inventory_repo
node_stock_ui -->|"records movements"| node_stock_repo
node_pos_ui -->|"records sales"| node_sales_repo
node_clients_ui -->|"manages records"| node_clients_repo
node_dashboard_repo -->|"queries database"| node_engine
node_finance_repo -->|"queries database"| node_engine
node_inventory_repo -->|"queries database"| node_engine
node_stock_repo -->|"writes movements"| node_engine
node_sales_repo -->|"writes sales"| node_engine
node_clients_repo -->|"reads and writes"| node_engine
node_server -->|"serves app assets"| node_operator
node_dashboard_ui -->|"formats display"| node_formatters
node_finance_ui -->|"formats display"| node_formatters
node_inventory_ui -->|"formats display"| node_formatters
node_stock_ui -->|"formats display"| node_formatters
node_pos_ui -->|"formats display"| node_formatters
node_clients_ui -->|"formats display"| node_formatters

click node_home "https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/app.js"
click node_dashboard "https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/dashboard.js"
click node_templates "https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/components/template-loader.js"
click node_navigation "https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/components/navbar.js"
click node_server "https://github.com/victornavarreteduran/gestor_sqlite/blob/main/src/server.js"
click node_engine "https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/db/engine.js"
click node_schema "https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/db/schema.js"
click node_dashboard_ui "https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/modules/inicio.js"
click node_dashboard_repo "https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/db/repositories/dashboard.repo.js"
click node_finance_ui "https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/modules/finanzas.js"
click node_finance_repo "https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/db/repositories/finance.repo.js"
click node_inventory_ui "https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/modules/inventario.js"
click node_inventory_repo "https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/db/repositories/inventory.repo.js"
click node_stock_ui "https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/modules/kardex.js"
click node_stock_repo "https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/db/repositories/stock.repo.js"
click node_pos_ui "https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/modules/pos.js"
click node_sales_repo "https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/db/repositories/sales.repo.js"
click node_clients_ui "https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/modules/clientes.js"
click node_clients_repo "https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/db/repositories/clients.repo.js"
click node_formatters "https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/utils/formatters.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_home,node_dashboard,node_templates,node_navigation,node_server toneBlue
class node_engine,node_schema,node_localdb toneAmber
class node_inventory_ui,node_inventory_repo,node_stock_ui,node_stock_repo,node_pos_ui,node_sales_repo,node_clients_ui,node_clients_repo,node_formatters toneMint
class node_dashboard_ui,node_dashboard_repo,node_finance_ui,node_finance_repo toneRose
class node_operator toneIndigo
```

## Components

### Entry and navigation

- [Database home](https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/app.js): `public/app.js`
- [Dashboard bootstrap](https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/dashboard.js): `public/js/dashboard.js`
- [Template loader](https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/components/template-loader.js): `public/js/components/template-loader.js`
- [Navigation and session](https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/components/navbar.js): `public/js/components/navbar.js`
- [Static server](https://github.com/victornavarreteduran/gestor_sqlite/blob/main/src/server.js): `src/server.js`

### Local database runtime

- [SQLite engine](https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/db/engine.js): `public/js/db/engine.js`
- [Schema and triggers](https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/db/schema.js): `public/js/db/schema.js`
- **Local SQLite file**

### Business operations

- [Inventory browser](https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/modules/inventario.js): `public/js/modules/inventario.js`
- [Inventory queries](https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/db/repositories/inventory.repo.js): `public/js/db/repositories/inventory.repo.js`
- [Stock movements](https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/modules/kardex.js): `public/js/modules/kardex.js`
- [Stock repository](https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/db/repositories/stock.repo.js): `public/js/db/repositories/stock.repo.js`
- [Sales POS](https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/modules/pos.js): `public/js/modules/pos.js`
- [Sales repository](https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/db/repositories/sales.repo.js): `public/js/db/repositories/sales.repo.js`
- [Clients and suppliers](https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/modules/clientes.js): `public/js/modules/clientes.js`
- [Client repository](https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/db/repositories/clients.repo.js): `public/js/db/repositories/clients.repo.js`
- [Display formatters](https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/utils/formatters.js): `public/js/utils/formatters.js`

### Reporting and analytics

- [Home dashboard](https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/modules/inicio.js): `public/js/modules/inicio.js`
- [Dashboard queries](https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/db/repositories/dashboard.repo.js): `public/js/db/repositories/dashboard.repo.js`
- [Finance reports](https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/modules/finanzas.js): `public/js/modules/finanzas.js`
- [Finance queries](https://github.com/victornavarreteduran/gestor_sqlite/blob/main/public/js/db/repositories/finance.repo.js): `public/js/db/repositories/finance.repo.js`

### Other components

- **Operator**

## Connections

- Operator → Database home: opens database (evidence: `README.md`)
- Database home → SQLite engine: loads or creates (evidence: `public/app.js`)
- SQLite engine → Local SQLite file: reads and saves (evidence: `README.md`)
- Database home → Dashboard bootstrap: opens panel (evidence: `README.md`)
- Dashboard bootstrap → Template loader: loads templates (evidence: `public/js/dashboard.js`)
- Dashboard bootstrap → Navigation and session: initializes (evidence: `public/js/dashboard.js`)
- Dashboard bootstrap → Home dashboard: initializes (evidence: `public/js/dashboard.js`)
- Dashboard bootstrap → Inventory browser: initializes (evidence: `public/js/dashboard.js`)
- Dashboard bootstrap → Stock movements: initializes (evidence: `public/js/dashboard.js`)
- Dashboard bootstrap → Sales POS: initializes (evidence: `public/js/dashboard.js`)
- Dashboard bootstrap → Clients and suppliers: initializes (evidence: `public/js/dashboard.js`)
- Dashboard bootstrap → Finance reports: initializes (evidence: `public/js/dashboard.js`)
- Navigation and session → SQLite engine: closes session (evidence: `public/js/components/navbar.js`)
- SQLite engine → Schema and triggers: applies indexes (evidence: `public/js/db/engine.js`)
- Home dashboard → Dashboard queries: requests metrics (evidence: `public/js/modules/inicio.js`)
- Finance reports → Finance queries: requests reports (evidence: `public/js/modules/finanzas.js`)
- Inventory browser → Inventory queries: requests products (evidence: `public/js/modules/inventario.js`)
- Stock movements → Stock repository: records movements (evidence: `public/js/modules/kardex.js`)
- Sales POS → Sales repository: records sales (evidence: `public/js/modules/pos.js`)
- Clients and suppliers → Client repository: manages records (evidence: `public/js/modules/clientes.js`)
- Dashboard queries → SQLite engine: queries database (evidence: `public/js/db/repositories/dashboard.repo.js`)
- Finance queries → SQLite engine: queries database (evidence: `public/js/db/repositories/finance.repo.js`)
- Inventory queries → SQLite engine: queries database (evidence: `public/js/db/repositories/inventory.repo.js`)
- Stock repository → SQLite engine: writes movements (evidence: `public/js/db/repositories/stock.repo.js`)
- Sales repository → SQLite engine: writes sales (evidence: `public/js/db/repositories/sales.repo.js`)
- Client repository → SQLite engine: reads and writes (evidence: `public/js/db/repositories/clients.repo.js`)
- Static server → Operator: serves app assets (evidence: `README.md`)
- Home dashboard → Display formatters: formats display (evidence: `public/js/modules/inicio.js`)
- Finance reports → Display formatters: formats display (evidence: `public/js/modules/finanzas.js`)
- Inventory browser → Display formatters: formats display (evidence: `public/js/modules/inventario.js`)
- Stock movements → Display formatters: formats display (evidence: `public/js/modules/kardex.js`)
- Sales POS → Display formatters: formats display (evidence: `public/js/modules/pos.js`)
- Clients and suppliers → Display formatters: formats display (evidence: `public/js/modules/clientes.js`)
