Web App creata con Claude
  • Python 32.2%
  • JavaScript 25.2%
  • CSS 22.6%
  • HTML 20%
Find a file Use this template
2026-06-19 12:29:17 +02:00
database Provato funzionamento 2026-06-19 12:29:17 +02:00
models Upgrade con codice a barre 2026-06-18 23:31:35 +02:00
routes Upgrade con codice a barre 2026-06-18 23:31:35 +02:00
static Upgrade con codice a barre 2026-06-18 23:31:35 +02:00
templates Upgrade con codice a barre 2026-06-18 23:31:35 +02:00
.gitignore Initial commit 2026-06-17 17:06:30 +00:00
app.py Primo commit 2026-06-17 19:09:01 +02:00
config.py Modifica file config e test di funzionamento 2026-06-18 12:58:58 +02:00
LICENSE Initial commit 2026-06-17 17:06:30 +00:00
README.md Primo commit 2026-06-17 19:09:01 +02:00
requirements.txt Primo commit 2026-06-17 19:09:01 +02:00

Gestione Scontrini

Applicazione web per archiviare gli scontrini della spesa: prodotti acquistati, prezzo, descrizione, marca e negozio/supermercato. Include una dashboard con statistiche di spesa e una ricerca avanzata fra tutti i prodotti acquistati.

Stack tecnologico

  • Backend: Python 3 + Flask
  • Database: SQLite (file singolo, zero configurazione)
  • Frontend: HTML + CSS + JavaScript vanilla (nessun framework JS richiesto)

Struttura del progetto

scontrini-app/
├── app.py                  # Entry point Flask
├── config.py                # Configurazione centrale (percorsi, parametri)
├── requirements.txt
├── database/
│   └── db.py                # Connessione SQLite e creazione schema
├── models/                  # Logica di accesso ai dati, un file per entità
│   ├── negozio.py
│   ├── marca.py
│   ├── scontrino.py
│   └── prodotto.py
├── routes/                  # Controller Flask (blueprint)
│   ├── pages.py             # Pagine HTML
│   └── api.py                # API REST in JSON usate dal frontend JS
├── templates/                # Template Jinja2 (HTML)
│   ├── base.html
│   ├── dashboard.html
│   ├── scontrini.html
│   ├── scontrino_form.html
│   ├── prodotti.html
│   └── 404.html
└── static/
    ├── css/style.css
    └── js/
        ├── utils.js              # Funzioni comuni (fetch API, toast, formati)
        ├── scontrini_list.js
        ├── scontrino_form.js
        └── prodotti_search.js

Installazione

cd scontrini-app
pip install -r requirements.txt

Avvio

python3 app.py

L'applicazione sarà disponibile su http://localhost:5000. Al primo avvio viene creato automaticamente il file database/scontrini.db con le tabelle necessarie: non serve nessuna configurazione manuale.

Funzionalità

  • Dashboard: spesa totale, spesa per negozio, top marche, andamento mensile.
  • Scontrini: elenco, creazione, modifica, eliminazione (con filtri per negozio e data).
  • Prodotti: ogni scontrino contiene una lista di prodotti con descrizione, marca, prezzo unitario, quantità e categoria opzionale.
  • Ricerca prodotti: ricerca testuale e filtri (marca, negozio, intervallo date) su tutti i prodotti acquistati nel tempo, utile per analisi storiche dei prezzi.
  • Anagrafiche automatiche: negozi e marche vengono creati automaticamente alla prima digitazione (con autocompletamento nei form) e riutilizzati in seguito.

Modello dati

negozi (id, nome)
marche (id, nome)
scontrini (id, data_acquisto, negozio_id, note)
prodotti (id, scontrino_id, descrizione, marca_id, prezzo, quantita, categoria)

Le foreign key sono attive (PRAGMA foreign_keys = ON): eliminando uno scontrino vengono eliminati automaticamente anche i suoi prodotti (CASCADE).

Estendere l'applicazione

Il progetto è organizzato per essere facilmente estendibile:

  • Nuovo campo su un'entità: modifica lo schema in database/db.py, poi aggiorna le query nel relativo file in models/.
  • Nuova funzionalità (es. categorie predefinite, export CSV, grafici): aggiungi una funzione nel modello pertinente, una route in routes/api.py o routes/pages.py, e — se serve una pagina — un nuovo template più un file JS dedicato in static/js/.
  • Nuova entità: crea un nuovo file in models/, la tabella in database/db.py, ed eventualmente nuove route. La separazione in blueprint permette di aggiungere routes/nuova_area.py senza toccare il resto.

API REST disponibili

Metodo Endpoint Descrizione
GET /api/scontrini Lista scontrini (filtri opzionali)
GET /api/scontrini/ Dettaglio scontrino con prodotti
POST /api/scontrini Crea uno scontrino
PUT /api/scontrini/ Modifica uno scontrino
DELETE /api/scontrini/ Elimina uno scontrino (e i prodotti)
POST /api/scontrini//prodotti Aggiunge un prodotto allo scontrino
PUT /api/prodotti/ Modifica un prodotto
DELETE /api/prodotti/ Elimina un prodotto
GET /api/prodotti/ricerca Ricerca prodotti con filtri
GET /api/negozi Lista negozi
GET /api/marche Lista marche
GET /api/statistiche Statistiche aggregate per dashboard