# Mago4 Demo - ERP Gestionale Demo funzionante di un gestionale ERP ispirato a **Mago4**, realizzato con **Python FastAPI**. ## 🎯 Caratteristiche - **Dashboard interattivo** con KPI e widget - **Gestione Clienti** - Anagrafica e crediti - **Gestione Fornitori** - Anagrafica e debiti - **Catalogo Articoli** - Inventario con alert sottosorta - **Ordini Vendita** - Creazione e tracciamento - **Ordini Acquisto** - Gestione forniture - **Magazzino** - Inventario con controllo giacenze - **API REST** completamente documentata - **Database in-memoria** per demo (facilmente migrabile a SQL) - **UI ispirata a Mago4** - Design moderno con Material Icons ## πŸš€ Quick Start ### 1. Installare dipendenze ```bash pip install -r requirements.txt ``` ### 2. Avviare l'applicazione ```bash python main.py ``` L'app sarΓ  disponibile su: **http://127.0.0.1:8000** ### 3. Accedere alle sezioni - **Dashboard**: http://127.0.0.1:8000/ - **API Docs**: http://127.0.0.1:8000/docs - **Clienti**: http://127.0.0.1:8000/customers - **Fornitori**: http://127.0.0.1:8000/suppliers - **Articoli**: http://127.0.0.1:8000/products - **Ordini Vendita**: http://127.0.0.1:8000/sales-orders - **Ordini Acquisto**: http://127.0.0.1:8000/purchase-orders - **Magazzino**: http://127.0.0.1:8000/warehouse ## πŸ“ Struttura del Progetto ``` mago4-demo/ β”œβ”€β”€ main.py # FastAPI app principale β”œβ”€β”€ models.py # Modelli dati (Pydantic) β”œβ”€β”€ database.py # Database in-memoria β”œβ”€β”€ requirements.txt # Dipendenze Python β”œβ”€β”€ templates/ # Template HTML (Jinja2) β”‚ β”œβ”€β”€ base.html # Layout con sidebar β”‚ β”œβ”€β”€ dashboard.html # Dashboard KPI β”‚ β”œβ”€β”€ customers.html # Gestione clienti β”‚ β”œβ”€β”€ suppliers.html # Gestione fornitori β”‚ β”œβ”€β”€ products.html # Catalogo articoli β”‚ β”œβ”€β”€ sales_orders.html # Ordini vendita β”‚ β”œβ”€β”€ purchase_orders.html # Ordini acquisto β”‚ └── warehouse.html # Magazzino └── static/ # Assets frontend β”œβ”€β”€ css/style.css # Stili (colori Mago4) └── js/app.js # FunzionalitΓ  JS ``` ## 🎨 Design & Colori (ispirato a Mago4) - **Blu**: #1976D2 (Azioni, statistiche) - **Arancione**: #F57C00 (Avvisi, acquisti) - **Verde**: #388E3C (Conferme, OK) - **Rosso**: #D32F2F (Errori, sottosorta) ## πŸ“Š Dati Inclusi - **4 Clienti**: Acme, TechFlow, European Logistics, Alpine Manufacturing - **3 Fornitori**: Global Components, Asia Electronics, Nordic Materials - **5 Articoli**: Widget, Connectors, Brackets, Bearings, Control Module - **3 Ordini Vendita**: SO-2024-0001/0002/0003 - **3 Ordini Acquisto**: PO-2024-0001/0002/0003 ## πŸ”Œ API REST Tutti gli endpoint sono auto-documentati su `/docs` (Swagger UI) ### Principali endpoint: - `GET/POST /api/customers` - `GET/POST /api/suppliers` - `GET/POST /api/products` - `GET/POST /api/sales-orders` - `GET/POST /api/purchase-orders` - `GET /api/warehouse/stats` - `GET /api/info` ## πŸ”„ Migrazione a SQL Pronto per SQLAlchemy + SQL Server/PostgreSQL: ```bash pip install sqlalchemy sqlmodel ``` Sostituire `database.py` con modelli SQLModel e aggiungere connection string. ## βš™οΈ Tech Stack - **Backend**: FastAPI (async Python) - **Template**: Jinja2 - **Validazione**: Pydantic - **DB Demo**: In-memoria (list) - **Frontend**: HTML5 + CSS3 + JavaScript vanilla - **Icons**: Material Design Icons - **Font**: Roboto (Google Fonts) ## ⚠️ Note - Demo con dati fittizi in-memoria - Per produzione: aggiungere auth, DB reale, validazione completa, HTTPS - Facilmente estendibile con nuovi moduli