☑☐☒❗
- optimisation à prévoir
- gérer la liste des 5 derniers enregistrements en param utilisateur pour simplifier les requêtes ?
- ☐❗❗système de gestion de migration de la DB
- check coherence entre état de la DB actuel VS attendu via dernière migration
- table pour stocker l'ID de la dernière migration jouée
- ☐❗ système de gestion d'achat sur la durée
- période prévisionnelle avant nouvel achat
- amélioration de la saisie
- ajouter un lien sur la saisie simple permettant de générer un raccourci
- stats
- ☐❗ sur le nombre de requêtes des utilisateurs pour voir les actifs ? (tableau admin?)
- ☑ envoyer des notifications
- ☑ créer var env (bool) + url (string)
- ☑ envoyer une notif lors de la création de compte
- ☑ envoyer une notif lors de l'utilisation des fonctions .csv
- liste des derniers
email
+ date de création - liste des derniers
email
triés parlastActivityTime DESC
- nb d
email
distincts aveclastActivityTime
> à ajd - 30 jours
- budget
- ❗❗❗❗ proposer des budgets selon les stats actuellement dispo via l'utilisation de l'outil (période par défaut et possible de modif)
- ☐ Voir pour calculer un revenu moyen en hebdo/mensuel/annuel et afficher les dépenses en cours hebdo/mensuel/annuel
- moyen de vérifier si le budget est cohérent avec les dépenses réelles sur X dernières itérations
- ☐❗❗ améliorer les tests de login
- check de changement de device
- check de changement de langue
- check de récup de token + changement de device
- ☐❗❗ faire des tests automatisés pour la partie front
- ☐ ajout système de données récurrentes:
- ☐ améliorer l'UI en bloquant l'espace via
visibility: hidden
, permettra de ne plus faire de trou dans la page au changement- vérif si bien impossible de cliquer sur l'elem invisible, sinon ajouter un
disable
- vérif si bien impossible de cliquer sur l'elem invisible, sinon ajouter un
- ☐ améliorer l'UI en bloquant l'espace via
- ☐ simplifier les catégories:
- ☐ ajouter 2 niveaux de catégories, avec en mode simple 1 seul niveau obligatoire
- ☐ ajout préférences utilisateur:
- ☐ gestion des préférences de format de date EN + FR avec / ou -
- ☐ gestion des préférences de format csv séparateur colonne + separateur décimal
- ☐ laisser l'overide possible dans les parties import/export csv, mais préselectionner la préférence
- ☐ partie import export CSV:
- ☐ mettre un champ
lastCSVexport
de type date par user à ramener dans le menu (ok si - d'1 mois, ko sinon)- ☐ compter le nombre de lignes à exporter et afficher/bloquer un import si différent de 0 ?
- ☐ mettre un champ
- éditer les données depuis une page web de l'app
- ☐ ❗ ajouter la possibilité de créer un LB dans ce mode édition, actuellement utilisation des existants uniquement
- ☐ ajout multi utilisateur sur un compte
- ☐ un utilisateur admin du compte qui peut en ajouter d'autres (max 5)
- ☐ les autres utilisateurs peuvent se connecter en simultané sur le compte sans possibilité d'ajout d'autres nouveaux
- ☐ 1 ligne de login active par utilisateur, permettra du multi utilisateur / multi login sur différentes plateformes
-
☑ sur toutes les tables, mettre la désignation à la fin pour gagner de la visibilité sur smartphone (voir partie validation qui est ok)
-
☑ dates via svg = 22 jan, fev, mar, avr, mai, juin, juil, aou ...
-
☑ dès que toutes les fonctionnalités essentielles sont en place, démarrer des tests fonctionnels
-
☑ ajout système de données récurrentes:
- ☑ saisie préremplies
- ☑ permettre de prendre des url-param pour pouvoir préselectionner des dépenses
- ☑ factures + revenus mensuelles
- ☑ création, édition, suppression
- ☑ enregistrement avec ajout de jour/mois/année auto à chaque enregistrement
- ☑ fix remettre le submit en mode création après avoir utilisé le mode édition/suppression
- ☑ saisie préremplies
-
☑ refonte de la page de gestion des comptes
- ☑ créer, ordonner, désactiver les comptes
- ☑ ajouter une possibilité de visualiser les comptes utilisés sur au moins 1 enregistrement et pourtant inactif
-
☑ simplifier les catégories:
- ☑ ajouter des logos + couleurs par catégorie
- ☑ nouvelle page de modif des catégories à faire, améliorer l'UI actuelle
- ☑ rajouter des catégories:
- ☑ "Autre" par défaut, avec ... en icone et couleur grise ? (more_horiz e5d3 = ...)
- ☑ "-" avec corbeille en icone = delete e872 couleur rouge
- ☑ renommer Véhicule qui semble faire planter les correspondances à cause de l'accent (ne faisait pas planter mais é retiré pour ne plus avoir le doute)
- ☑ renommer Investissement + Restaurant trop long sur smartphone (max 8 car)
- ☑ voir si possible d'ajouter le logo dans les listes déroulantes de sélection de catégorie
- ☑ voir si possible d'ajouter les icones et couleurs dans les listes d'articles, à la place d'écrire les noms des catégories (gain de place dans les tables)
- ☑ mettre cette fonctionnalité en paramètre, pour pouvoir garder les noms de catégories si souhaité (accessibilité)
- nouvelles tables
- ☑ catégorie dédiée: id, nom, couleur, icone
- ☑ join: user ID associé à category ID
-
☑ Ajout sauvegarde DB SQLite sur Drive
- ☑ avec table SQLite qui garde les ID + nom + date de fichiers sauvegardés + le statut de l'upload (pas besoin l'API Google redonne toutes les infos)
- ☑ voir pour fermer le server et faire la sauvegarde au restart après quelques commandes de nettoyage de DB (semble ok)
- ☑ voir si la gestion d'une seule ouverture/fermeture DB ferait fonctionner le PRAGMA wal_checkpoint(TRUNCATE) sans retourner BUSY
- ☑ obj nettoyer les fichiers wal + shm avant sauvegarde
- ☑ cron based backup :
- ☑ made with a go scheduler
- ☒ https://litestream.io/alternatives/cron/ + monitoring : https://deadmanssnitch.com/account/sign_up?plan=the_lone_snitch
-
☑ partie import export CSV:
- ☑ MAJ le champ
exported
lors des exports et modifications de données - ☑ ajouter un template de fichier csv (dispo partie import dans les explications)
- ☑ objectif: chaque export génère un fichier avec l'ensemble des dernières modifs
- ☑ en jouant toutes les sauvegardes historisées dans l'ordre chronologique, on retrouve l'état des données souhaité
- ☑ ajout d'une option de RAZ de la colonne
exported
- ☑ ajouter un champ
.
à la fin du csv pour permettre l'édition dans Excel + sauvegarde et réimporter directement - ☑ gérer le mode + lien au tier partie .csv (import + export)
- partie .csv, on peut complètement décoreller le .csv des tables
- ☑ ajout de 2 colonnes dans le .csv
Mode
+ThirdParty
- ☑ récupérer le nom du tier lorsque relié
- ☑ vérifier le nom du tier correspondant (potentielle création) lors d'un import
- ☑ supprimer la partie tier sur les lignes en mode 0 (sans aucun lien) lors d'update (possible annulation de prêt/emprunt)
- ☑ gérer également le mode d'enregistrement de la ligne 0à4
- ☑ gérer les noms des tiers en mode export
- ☑ modification d'un tier attaché à une ligne
- ☑ passage d'un mode 0 à un mode 1à4 avec tier existant
- ☑ passage d'un mode 0 à un mode 1à2 avec création de tier
- ☑ MAJ le champ
-
☑ édition de ligne unitaire depuis une page web de l'app
- ☑ permettre d'éditer unitairement les lignes affichées via une page dédiée à l'édition
- ☑ valider / annuler / modifier des données = front quasi similaire
- ☑ permettre la gestion des pret / emprunt via l'édition
- ☑ ajouter cas de test d'édition
-
☑ ajout système de budget:
- ☑ ajout des champs et possibilité de modification des infos de budget
- ☑ budget de dépense par catégorie
- ☒ info sur le budget en cours à la saisie ?
- stats
- ☑ stats sur les budgets activés
- ☑ amélioration des stats avec exemple et ajout d'une barre pour chaque dépassement
- ☒ refonte complète avec ApexCharts ?
-
☑ système de gestion de prêt/emprunt
- ☑ icone + catégories spé à mettre en présélection auto selon sélection mode 1à4
- ☑ faire une page front de recap par personne avec les montants du et remboursés
- ☑ ajouter un script js qui gère la sélection de ligne d'en tête pour afficher le détail associé (via bouton switch on/off ?)
- ☑ ajouter la gestion des noms des LB
- ☑ ajouter système permettant de retirer un lien entre un prêt/emprunt/remboursement avec un tier
- ☑ partie saisie: en JS, désactiver la case création si mauvais mode
- créer un prêt ou emprunt qui autorise une création de tier ou utilisation d'un tier existant
- remboursement qui autorise uniquement l'utilisation d'un tier existant
- ☑ faire un système de specific record générique, avec mode qui change le fonctionnement de la table
- ☑ gérer ce nouveau mode partie import/export csv (détails partie csv)
-
☑ passer l'affichage des boutons de l'accueil via 2 modes, simple et avancé
- le + utile:
- saisie simple
- stats
- budgets
- stats prets
- déco
- le reste:
- transfert
- enr reg
- pret / emprunt
- validation
- comptes
- catégos
- exp csv
- imp csv
- le + utile:
-
☑ ajout validation des dépenses: POST ValidateRows
- ☑ système qui ramène l'ensemble des lignes encore non validées
- ☑ voir pour permettre de la validation de groupe en saisissant une date unique et en sélectionnant X lignes
- ☑ à chaque validation, voir pour garder les paramètres spé si utilisés
- ☑ refonte des 2 méthodes POST pour les séparer
- la recherche de données est à séparer des validations/annulation pour ne pas recharger les données de base à chaque POST
- recherche géré via du .js et les méthodes
PostFullRecordRefresh
andGetRecordsViaPost
- ☑ visualisation des données avec filtre et tri via table simple
- ☒ voir pour mettre un tableur ? + rendre editable ou suppr de ligne
- ☑ ajouter le montant total en cours de validation/annulation lors de la sélection des lignes
-
☑ stats,
- ☑ lines
- ☑ suivi des montants sur chaque compte
- ☒ regroupement et cumul global de l'ensemble des comptes
- ☑ stacked bars
- ☑ fix categories, Voyage manquant + possibles catégo manquantes dans l'initialisation
- ☑ fix changement d'année
- ☑ fix dernière stack bar 2024 mal groupée, quelques catégories se superposent
- ☑ ajouter 1 bouton pour suppr toutes les catégories + 1 autre pour toutes les remettre
- ☑ ajouter 1 liste de catégo par défaut à l'ouverture de la page
- ☑ ajouter un switch mois/année
- ☑ ajouter un switch gains/dépense
- ☑ retirer la fonctionnalité de grouper les catégories, inutile
- ☑ ajouter un graph des dépenses mois par mois (des 12 derniers mois)
- ☑ afficher les noms des catégories lors du clic/survol d'une catégo dans le graph
- ☑ pouvoir différencier les montants déjà validés vs non validés dans la page de statistiques globales
- ☑ lines
-
☑ améliorer le onboarding
- expliquer les 1eres étapes
- ☑ ajouter un param "onboardingCheckList" sur les étapes faites dans la checklist initiation par utilisateur
- ☑ besoin d'insérer les params lors de la MEP de cette feature
- ☑ nouveau bouton checklist initiation
- ouvre une page dédiée avec la checklist complète, les étapes faites et les restantes
- faire remonter en prio 1 par défaut dans la page d'accueil
- à chaque clic sur les étapes, maj l'info liée à l'utilisateur
- mettre un param qui permet de forcer que toutes les étapes ont été faites
- mettre un param qui permet de réinitialiser toute la checklist
- ☒ lorsque tout est fait, redescendre le bouton page d'accueil dans la partie configuration en mode grisé
- ☒ pas les données nécessaires depuis la page d'accueil pour le faire de manière simple, laisser toujours en 1 pour le moment afin de ne pas surcharger l'affichage de cette page
- ☑ checklist initiation
- config comptes
- config categories
- saisie de données (utiliser des cas de saisies préremplies avec les params comptes et catégo utilisés par l'utilisateur)
- config budget selon la dépense faite
- voir les stats liées au budget
- voir les stats générales
- éditer une saisie
- annuler une saisie
-
design
- ☑ revue des couleurs
- ☑ passsage à 6 couleurs pour toutes les icones en ajoutant un sens aux couleurs :
- .system-lightgrey{background-color: #DDDDDD;} /* systeme (0,0,87) lightgrey */
- .invest-cyan{background-color: #88CCEE;} /* investissement (200,75,73) cyan */
- .needfix-teal{background-color: #44AA99;} /* besoin-fixe (170,43,47) teal */
- .needvar-olive{background-color: #999933;} /* besoin-variable (60,50,40) olive */
- .wantok-purple{background-color: #AA4499;} /* envie-ok (310,43,47) purple */
- .wantko-wine{background-color: #882255;} /* envie-ko (330,60,33) wine */
- ☑ couleurs accessibles aux malvoyants et accessibles avec écran noir et blanc, contraste cohérent, article source
- 5 contrastes sur 6 couleurs, les besoins ont le même contraste
- ☑ utilisation du champ
colorName
pour l'arrière plan de chaque icône
- ☑ passsage à 6 couleurs pour toutes les icones en ajoutant un sens aux couleurs :
- ☑ revue des couleurs
- PWA
- Ajout SQLite en WebAssembly ?
- voir pour réduire le nombre d'ouverture/fermeture de DB
- en go, open démarre un pool de connexion, mettre en place une route DB.Stats pour avoir des infos en temps réel
- https://go.dev/doc/database/open-handle
- https://go.dev/doc/database/manage-connections
- tuto DB in Go : https://dev.to/techschoolguru/how-to-handle-db-errors-in-golang-correctly-11ek
- DB test case : https://stackoverflow.com/questions/48196746/using-ping-to-find-out-if-db-connection-is-alive-in-golang
- autres améliorations non prioritaires
- voir pour split le SQL dans des fichiers .sql (exemple: https://github.com/qustavo/dotsql)
- voir pour split le HTML dans des fichiers séparés (via templating par block?) OU mieux gérer le HTML directement dans go: https://github.com/a-h/templ
- voir pour créer des packages mieux définis et pouvoir les sortir complètement de cet app (exemple partie auth/session)
- Tester HTMX sur différents type de réponse : 200, 400, 500 ... : https://htmx.org/extensions/response-targets/
- Amélioration download fichier csv : voir si possible de faire mieux directement via le serveur à la place du js
- auth
- check des changements d'IP / user agent pour forcer un relogin
- other .js chart library: Chart.js