Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Roadmap OSM 3.0 #710

Open
Dasc3er opened this issue Dec 17, 2019 · 1 comment
Open

Roadmap OSM 3.0 #710

Dasc3er opened this issue Dec 17, 2019 · 1 comment
Labels
da definire Modifiche da pianficare e approfondire
Milestone

Comments

@Dasc3er
Copy link
Contributor

Dasc3er commented Dec 17, 2019

Questa issue descrive le scelte effettuate per la versione futura del gestionale OpenSTAManager (3.0), finalizzata a migliorare la struttura del gestionale secondo standard più recenti.

Framework

Il progetto è stato diviso in due parti, come segue:
👨🏻‍💻 Backend: Scritto in PHP, che utilizza il framework Laravel 8 (da Febbraio 2022 v9 e da Aprile 2023 v10). Si occupa della gestione delle routes, dei models, dei controllers, dei middlewares e di tutto ciò che riguarda il lato server del gestionale.

🖼️ Frontend: Scritto in Typescript (Javascript tipizzato) che utilizza il framework JS Mithril e il framework grafico Material Web/MWC (Material Design).

  • Mithril gestisce tutte le views/pagine (aiutato da Inertia, approfondito sotto questo paragrafo).
  • Material Web e MWC sono entrambi framework CSS/JS open source, sviluppati da Google, con cui costruire la nuova UI (sostituendo Bootstrap). Material Web è la versione di MWC con lo stile e i componenti del Material Design 3, non ancora completa di tutti i componenti, ma le mancanze di MDC verranno compensate da MWC (la versione 2), finchè non saranno disponibili i componenti aggiornati. Datatables è stato sostituito con il componente DataTable del Material Design, implementando anche filtri e paginazione.

Ponte fra backend e frontend: InertiaJS. Permette di condividere dati tra Laravel e Mithril, e gestire meglio il routing tra i due framework.

Sviluppo

Lo sviluppo della nuova versione avviene in una nuova branch 3.x: https://github.com/devcode-it/openstamanager/tree/3.x che includerà esclusivamente il core (nucleo) del gestionale.
Sia il core che tutti i moduli standard inclusi in OSM 2.x verranno ricreati da zero e il loro sviluppo avverrà in repo separati (Esempio: https://github.com/devcode-it/osm_module_attivita_tipi). Questo per favorire una modularità più ampia possibile. Sarà infatti possibile scegliere di installare il solo core, installare il core + tutti i moduli standard o il core con i moduli scelti. In sostanza, si avrà massima libertà nella scelta dei moduli da includere nella propria installazione di OSM.

Lo sviluppo di un modulo dovrà seguire le istruzioni dei pacchetti Laravel (descritte qui e qui). È già stato creato un repository "template", che permette di creare un nuovo modulo di esempio al volo. Verranno indicate ulteriori istruzioni successivamente nella documentazione ufficiale.

Modifiche di accesso

Per l'introduzione di Laravel, deve essere reso disponibile il solo accesso alla cartella public/.

Operazioni da definire e completare

  • Rimozione dei plugin in favore di una gestione unificata come moduli
  • Revisione dei vari componenti come pacchetti Laravel (Revisione dei Componenti #793 per logica personalizzata)
  • Revisione del sistema di permessi tramite Middleware (Revisione del sistema di permessi #792) [moduli, plugin, widget, stampe, email, cronjob, ...]
  • Implementazione del templating nelle email
  • Interfaccia di base per il sistema di importazione/esportazione dei contenuti in vari formati
  • Sistema di upload personalizzabile ed estendibile a servizi esterni (Revisione del sistema degli allegati #791)
  • Generalizzazione sistema evasioni documenti (Generalizzazione sistema evasioni documenti #786)con revisione degli stati
    • Stato del documento
    • Stato di riferimento (non importato, parzialmente importato, importato)
    • Come gestire la traslazione automatica tra stati sulla base del documento di riferimento?
  • Separazione dei sezionali (strettamente legati ai documenti) dai segmenti (filtri selezionabili manualmente dall'utente) (Spostare la gestione dei “Segmenti” in nuovo panel all’interno del modulo “Viste”. #206)
  • Introduzione di un gestore dei menu principali del gestionale scollegato dalla logica dei moduli
  • Rimozione delle query a database per i moduli di default, in modo tale da avere fisicamente raggiungibile la query e mantenendo la personalizzabilità esclusivamente a database (da considerare per le Viste)
  • Rimuovere il supporto a versioni MySQL troppo vecchie (Compatibilità MySQL #355)
  • Miglioramento della gestione interna dei totali (prezzo, iva, ...) per le righe in generale e i documenti (Miglioramento struttura righe/articoli/sconti/descrizioni #546)
  • Revisione del sistema di aggiornamento
    • Controlli di integrità e correttezza di file e database
    • Backup automatico
    • Anteprima dell'aggiornamento
    • Ripristino da backup indipendente in caso di errori
  • Revisione dei campi idtipo* e idstato* in id_tipo_* (da cambiare in id_tipo) e id_stato
  • Sistema di chat e controllo utenti connessi

La roadmap qui indicata non è definitiva e può essere soggetta a cambiamenti anche considerevoli.

@devcode-it devcode-it locked and limited conversation to collaborators Dec 17, 2019
@Dasc3er Dasc3er pinned this issue Dec 17, 2019
@Dasc3er Dasc3er added the da definire Modifiche da pianficare e approfondire label Jan 11, 2020
@Dasc3er Dasc3er added this to the OSM Future milestone Jan 11, 2020
@loviuz loviuz added this to Da valutare in OSM 2.5 prima release May 15, 2021
@loviuz loviuz removed this from Da valutare in OSM 2.5 prima release May 15, 2021
@Dasc3er
Copy link
Contributor Author

Dasc3er commented Jul 22, 2021

Ulteriori punti di interesse per la nuova versione:

@maicol07 maicol07 changed the title Roadmap OSM Future Roadmap OSM 3.0 Dec 28, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
da definire Modifiche da pianficare e approfondire
Projects
None yet
Development

No branches or pull requests

1 participant