3.8 KiB
trigger
| trigger |
|---|
| always_on |
Produci sempre prima il piano di implementazione nelle cartelle dedicate e proponi di default all'utente di visionarlo, se l'utente specifica di voler andare avanti, prosegui con l'implementazione del piano senza fermarti; aggiorna il piano man mano che viene sviluppato.
Lavora sempre col codice esistente ed integra più possibile il nuovo con l'esistente, questo software deve essere estremanente ottimizzato e facile da usare, l'utente medio sarà una persona completamente ignorante di software o di programmazione, bisogna guidarlo in ogni operazione e automatizzare tutte le operazioni tediose e ridondanti.
La grafica deve essere professionale, appagante e rassicurante, il software deve includere shortcut per l'utilizzo veloce e l'aggiornamento real time delle informazioni modificate / inserite, il salvataggio dei dati deve essere immediato senza cliccare sui tasti salva.
Si sviluppa in react per il frontend e .NET per il backend, utilizza più possibile componenti react standard, molto utilizzati, non cercare componenti esotici e poco aggiornati.
Ogni volta che si richiede una implementazione, aggiornamento o modifica crea un piano di lavoro dettagliato da seguire poi strettamente per raggiungere lo scopo dello sviluppo, se la richiesta risulterebbe in uno sviluppo complesso avvertire l'utente, in ogni caso prima di iniziare scrivi sempre un file dedicato alla richiesta ed al piano creato all'interno della cartella ./docs/development in modo che si potrà tenere traccia del lavoro svolto in ogni momento, tieni questo file aggiornato finchè si sta eseguendo il piano di lavoro.
Il gestionale deve essere organizzato ad applicazioni: ogni applicazione deve poter essere attivata o disattivata a piacimento live e deve essere acquistabile dall'app store interno, nella sezione amministrativa.
Crea sempre interfacce in material design e con icone che identifichino chiaramente lo scopo del applicazione o della funzione.
L'interfaccia deve essere sempre responsive quanto più possibile e stringersi quando lo schermo diventa più piccolo.
Il menu deve essere laterale a sinistra a 2 livelli, il primo livello riguarda le applicazioni acquistate ed attive, il secondo livello riguarda le funzioni presenti all'interno dell'applicazione, come acceleratore di ricerca delle applicazioni e delle funzioni si deve sempre gestire una barra di ricerca in alto con la quale si possono cercare applicazioni e funzioni in modo gerarchico, se la funzione ha a sua volta delle sotto-funzioni, gestirle con un menu diverso interno alla funzione stessa, in modo efficiente.
La struttura della viewport principale deve essere configurabile con delle tab, ogni applicazione che l'utente apre deve aprirsi come una nuova tab, al riavvio dell'applicazione le tab aperte l'ultima volta devono rimanere attive, questa logica su mobile deve avere una visualizzazione specifica per poter cambiare tra le tab (ad esempio un popup a parte).
Il gestionale è multilingua e gestisce la funzione i18n, per ora le lingue gestite sono solo italiano ed inglese, dopo ogni sviluppo, modifica o aggiornamento accertati che la parte di traduzione sia sempre correttamente allineata.
Tutta la parte database deve essere gestita sempre in code first, non voglio vedere query SQL RAW da nessuna parte e tutto il database deve sempre essere gestito a migrazioni con ef migration, come database si deve usare sqlite per lo sviluppo e mysql per la produzione.
Prima ancora di pianificare la nuova attività, però, dobbiamo sempre verificare che attualmente l'applicazione funzioni quindi va avviata e testata preliminarmente nelle sue funzioni di base (e tenuta avviata sempre finchè si sviluppa).
Se il backend restituisce un errore specifico, questo deve essere chiaramente notificato all'utente, invece di un generico "Errore".