1. Introduzione allo sviluppo del gestionale associativo

Faccio parte dell'associazione ONstage e recentemente è sorta l'esigenza di organizzare le varie attività dell'associazione attraverso un gestionale per poterle automatizzare. Così ho preso l'iniziativa e ho deciso di iniziare lo sviluppo. Prima di iniziare la fase implementativa, ho chiesto quali fossero le reali necessità che dovevano essere poi trasformate in funzionalità del programma, chi doveva effettivamente utilizzare il gestionale e dove doveva essere installato l'applicativo. Dopo una lunga conversazione, in cui si è discusso anche del tema del trattamento dei dati, si è deciso di installare il programma in locale su un computer portatile dell'associazione, con dati gestiti in locale. L'utilizzo del gestionale sarà riservato al direttivo o solo da alcuni membri in determinate circostanze, nonostante ciò si è deciso di non creare degli account per ciascuno degli amministratori. Questa prima fase è stata molto utile per definire quindi uno stack tecnologico:

  • Java come linguaggio per implementare la logica all'interno del programma;
  • JavaFX, per implementare l'interfaccia grafica
  • SQL per la modellazione del database in cui verranno rappresentati i dati

La base di dati in cui memorizzare i dati sarà in locale, in quanto il sistema verrà installato solo sul pc associativo. In futuro, se nascerà l'esigenza verranno spostati in un piccolo server associativo con il quale l'applicativo si interfaccerà. Questa soluzione è stata presa per garantire l'integrità e la sicurezza dei dati, nel rispetto delle leggi sulla tutela di essi. Successivamente sono state individuate diverse aree da implementare, ognuna delle quali corrisponde a una corrispettiva area associativa:

  • Area soci: area relativa alla gestione dei dati degli associati;
  • Area eventi: area dedita alla gestione degli eventi;
  • Area contabile: nella quale si rendicontano le spese, i ricavi e l'inventario
  • Area dev: contenente diverse funzionalità importanti per l'esportazione dei dati dal database o per il supporto di operazioni quali il ripristino di dati a causa di errori

Si è anche espresso la volontà di avere delle statistiche sui dati raccolti, funzionalità che verrà implementata attraverso opportune integrazioni di opportune librerie sviluppate in Python o in Java. Entrando maggiormente nei dettagli delle varie aree.l'area soci racchiuderà operazioni quali:

  • L'aggiunta di nuovi soci
  • la visualizzazione delle informazioni relative a un socio
  • la modifica delle informazioni relative a un socio
  • l'eliminazione dei dati di un socio
  • l'esportazione in foglio excel dei dati relativi ai soci

La sezione eventi dovrà possedere le seguenti funzionalità:

  • Aggiunta degli eventi con le relative informazioni
  • Visualizzazione degli eventi in corso e passati
  • Rendicontazione dei costi e ricavi di ciascuno degli eventi
  • Storico degli eventi

La sezione contabile, dovrà implementare:

  • Aggiunta dei costi e ricavi ordinari e straordinari
  • Creazione e visualizzazione inventario
  • Visualizzazione di dati aggregati relativa ai costi e ricavi

La definizione dell'area dev è ancora in fase di definizione. Nel frattempo ho iniziato l'analisi e il setup dei dati all'interno del database. Inizialmente ho creato uno schema ER, consultabile al seguente link, andando a definire le varie entità che modellano le informazioni riguardanti i soci, gli eventi, l'inventario, la contabilità e le relative associazioni. Oltre alla forma dei contenitori, ho definito anche dei colori per distinguere le entità dalle relazioni e i relativi attributi. Questo è una prima bozza della struttura implementativa, in quanto i requisiti funzionali di un sistema sono volatili e quindi potranno cambiare con il tempo.

Post successivo →