Guida per principianti

Questo percorso ti accompagna nell'installazione dell'ambiente, nella comprensione del backend Django e nella modifica dei template frontend.

La versione completa è disponibile nel repository in docs/guida_principianti_backend_frontend.md. Copia il file tra gli statici se desideri offrirne il download diretto agli utenti finali.

1. Preparazione dell'ambiente

  1. Installa Python 3.10+, Git e (opzionale) PostgreSQL.
  2. Clona il repository: git clone <URL_DEL_REPO> mygest.
  3. Crea il virtualenv: python3 -m venv venv e attivalo con source venv/bin/activate.
  4. Aggiorna pip e installa le dipendenze: pip install --upgrade pip quindi pip install -r requirements.txt.
  5. Esegui le migrazioni: python manage.py migrate e crea l'utente admin con python manage.py createsuperuser.
  6. Avvia il server di sviluppo: python manage.py runserver e visita http://127.0.0.1:8000.

2. Architettura backend

MyGest è un progetto Django composto da più app specializzate. I file più importanti:

  • mygest/settings.py: configurazione generale.
  • mygest/urls.py: include i router delle varie app.
  • mygest/views.py: viste generiche (home, help, ecc.).
  • pratiche/: gestione delle pratiche, note, relazioni.
  • scadenze/: nuova app per le scadenze con modelli dedicati.

Le scadenze sono ora indipendenti dalle pratiche e includono occorrenze, log e webhook. Vedi i servizi in scadenze/services.py per generazione massiva, notifiche e sincronizzazione Google Calendar.

3. Workflow di sviluppo backend

  1. Modifica o aggiungi modelli in models.py.
  2. Genera le migrazioni con python manage.py makemigrations <app>.
  3. Applica le migrazioni con python manage.py migrate.
  4. Scrivi o aggiorna i test (es. pratiche/tests.py).
  5. Esegui la suite con python manage.py test.
  6. Verifica dal browser le pagine interessate.

Suggerimento: installa django-extensions per usare shell_plus e sperimentare con l'ORM.

4. Template e frontend

I template sono organizzati per app. Alcuni esempi utili:

  • pratiche/templates/pratiche/home.html: dashboard con pratiche recenti e scadenze imminenti.
  • scadenze/templates/scadenze/detail.html: dettaglio di una scadenza con occorrenze.
  • scadenze/templates/scadenze/form.html: form di creazione/modifica scadenza.

Per aggiungere risorse statiche, utilizza static/ e carica le librerie con . Il layout base è in templates/base.html.

  1. Identifica il template da modificare.
  2. Aggiungi blocchi HTML e template tag.
  3. Se servono filtri personalizzati, crea un modulo templatetags/.
  4. Verifica il rendering con il server di sviluppo.

5. Checklist prima del commit

  • Ambiente virtuale attivo.
  • Migrazioni generate e applicate.
  • Test eseguiti e passati.
  • Template/statici controllati dal browser.
  • Nessun file temporaneo o credenziale nel commit.

Per approfondimenti consulta la documentazione ufficiale:

6. Prossimi passi

Quando ti senti a tuo agio con le basi:

  • Esplora scadenze/services.py per aggiungere nuovi canali di notifica.
  • Scrivi test dedicati in scadenze/tests/ per validare casi particolari.
  • Documenta ogni funzionalità in docs/ così il team può seguirti.

Buon lavoro con MyGest!