diff --git a/CHANGELOG.md b/CHANGELOG.md index 61fd98a..3f71fb4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,75 @@ # Changelog +## 0.3.7 + +### Fixes +- Remove MSI bundle to prevent updater install path conflict +- Change Windows updater installMode to basicUi +- Improve split indicator visibility and adjustments layout + +## 0.3.2 + +### New Features +- **Linux support**: Add Linux build (`.deb`, `.rpm`, `.AppImage`) to release workflow +- **Transaction splits on Adjustments page**: View transaction split adjustments in a dedicated section on the Adjustments page + +### Fixes +- Fix CSV auto-detect edge cases +- Remove accent from productName for Linux `.deb` compatibility + +## 0.3.1 + +### Fixes +- Always show profile switcher in sidebar (#2) + +## 0.3.0 + +### New Features +- **Multiple profiles**: Create multiple profiles with separate databases, custom names, and colors +- **PIN protection**: Protect profiles with an optional numeric PIN +- **Profile switcher**: Quick profile switching from the sidebar +- **Drag-and-drop categories**: Reorder categories or change parent via drag-and-drop in the category tree +- **Transaction splits**: Split a transaction across multiple categories with adjustable amounts + +## 0.2.10 + +### New Features +- **Period quick-select**: Add quick period filter buttons (This month, Last month, etc.) on the Transactions page +- **Budget vs Actual report**: Monthly and year-to-date comparison table in Reports +- **Parent category subtotals**: Budget page shows aggregated subtotals for parent categories +- **User guide**: Complete documentation page accessible from Settings, printable to PDF + +### Improvements +- Persist template selection and add Update template button +- Don't pre-select already-imported files when entering source config +- Make settings data imports visible in Import History +- Replace per-template delete buttons with single delete on selection +- Replace refresh icon with save icon on update template button +- Add sign convention to budget page + +## 0.2.9 + +### Fixes +- Allow duplicate-content files with different names (#1) + +## 0.2.8 + +### New Features +- **Data export/import**: Export and import your data (transactions, categories, or both) with optional AES-256-GCM encryption (#3) + +### Fixes +- Cross-file duplicate detection and per-file import tracking + +## 0.2.5 + +### New Features +- **Import config templates**: Save and load import source configurations as reusable templates +- **12-month budget grid**: Full year budget view with monthly cells and annual totals + +### Fixes +- Budget and category fixes +- Migration checksum issue (schema.sql must not be modified after initial release) + ## 0.2.3 ### New Features diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index e70238b..da4cf38 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -468,14 +468,19 @@ "tipsHeader": "Tips", "gettingStarted": { "title": "Getting Started", - "overview": "Simpl'Result helps you track your personal finances by importing bank statements, categorizing transactions, setting budgets, and generating reports.", + "overview": "Simpl'Result helps you track your personal finances by importing bank statements, categorizing transactions, setting budgets, and generating reports. The app is available on Windows and Linux.", "features": [ "Import CSV bank statements from multiple sources", "Automatic and manual transaction categorization", + "Split a transaction across multiple categories", "Budget planning with monthly and annual views", - "Visual reports and trend analysis" + "Visual reports and interactive charts with context menu", + "Multiple profiles with separate databases and optional PIN", + "Dark mode with warm gray palette", + "Data export and import with optional AES-256 encryption" ], "steps": [ + "On first launch, choose or create a profile — each profile has its own database", "Go to Settings and set your import folder — create one subfolder per bank account", "Place your CSV bank statements in the corresponding subfolder", "Open the Import page and configure your source (column mapping, delimiter, date format)", @@ -485,28 +490,54 @@ ], "tips": [ "You can switch between English and French using the language selector in the sidebar", + "Toggle dark mode using the button in the sidebar", "Each page has a help icon (?) in the header with quick tips", "Your data is stored locally on your computer — nothing is sent to the cloud" ] }, + "profiles": { + "title": "Profiles", + "overview": "Manage multiple independent profiles, each with its own database. Ideal for separating personal and business finances, or for multiple users on the same computer.", + "features": [ + "Create multiple profiles with custom names and colors", + "Each profile has its own separate database", + "Optional PIN protection (numeric code)", + "Quick profile switching from the sidebar", + "Delete a profile along with all its data" + ], + "steps": [ + "Click the profile selector in the sidebar to see available profiles", + "Click Manage Profiles to create, edit, or delete profiles", + "Create a new profile by choosing a name, color, and optional PIN", + "Switch between profiles by clicking the one you want in the selector" + ], + "tips": [ + "A default profile is automatically created on first launch", + "The PIN is requested each time you access a protected profile", + "Deleting a profile permanently removes all its data — this action cannot be undone" + ] + }, "dashboard": { "title": "Dashboard", "overview": "The Dashboard gives you an at-a-glance summary of your financial situation for a selected time period.", "features": [ "Balance, income, and expense summary cards", - "Expense breakdown by category (pie chart)", + "Expense breakdown by category (pie chart with SVG patterns)", "Recent transactions list", - "Adjustable time period selector" + "Adjustable time period selector", + "Context menu (right-click) to hide a category or view its transactions" ], "steps": [ "Use the period selector in the top-right to choose a time range (month, 3 months, year, etc.)", "Review the summary cards for your balance, total income, and total expenses", "Check the pie chart to see how your spending is distributed across categories", + "Right-click a category in the chart to hide it or view its transaction details", "Scroll down to see your most recent transactions" ], "tips": [ "The balance is calculated as income minus expenses for the selected period", - "Click on a category in the pie chart to view its transactions" + "Hidden categories appear as dismissible chips above the chart — click Show All to restore them", + "SVG patterns (lines, dots, crosshatch) help distinguish categories beyond just color" ] }, "import": { @@ -543,6 +574,7 @@ "Inline category assignment via dropdown", "Auto-categorize based on keyword rules", "Add keywords directly from a transaction", + "Split a transaction across multiple categories", "Transaction notes" ], "steps": [ @@ -550,12 +582,14 @@ "Click a column header to sort ascending or descending", "To categorize a transaction, click its category dropdown and select a category", "To auto-categorize all uncategorized transactions, click the Auto-categorize button", - "To add a keyword rule from a transaction, click the + icon and enter the keyword" + "To add a keyword rule from a transaction, click the + icon and enter the keyword", + "To split a transaction across categories, use the Split button and add amounts per category" ], "tips": [ "Use the quick period buttons (This month, Last month, etc.) for fast date filtering", "Auto-categorize only affects uncategorized transactions — it won't overwrite manual assignments", - "Adding a keyword from a transaction pre-fills the category so you can quickly build rules" + "Adding a keyword from a transaction pre-fills the category so you can quickly build rules", + "Split transactions display a visual indicator and show the breakdown details" ] }, "categories": { @@ -566,12 +600,15 @@ "Three category types: Expense, Income, Transfer", "Keyword rules with priority levels for auto-categorization", "Custom colors for chart display", + "Drag-and-drop to reorder categories or change their parent", "Toggle categories as inputable or non-inputable", + "All Keywords view to see all rules at a glance", "Re-initialize categories to defaults" ], "steps": [ "Click Add Category to create a new category — choose a name, type, and optional parent", "Select a category in the tree to view its details and keyword list", + "Drag and drop a category in the tree to reorder it or move it under a different parent", "Add keywords that match transaction descriptions for auto-categorization", "Set keyword priority to resolve conflicts when multiple categories match", "Use the color picker to assign a custom color for charts" @@ -579,25 +616,29 @@ "tips": [ "Non-inputable categories are hidden from budget and transaction dropdowns but still visible in reports", "Higher priority keywords win when multiple categories match the same transaction", + "Use the All Keywords view to get a global overview of your categorization rules", "Use Re-initialize to reset categories to defaults — this will unlink all transaction categories" ] }, "adjustments": { "title": "Adjustments", - "overview": "Add manual entries that don't come from bank imports — useful for expected expenses, income, or corrections not yet in your statements.", + "overview": "Add manual entries that don't come from bank imports, and view transaction splits created from the Transactions page.", "features": [ "Create named adjustment groups with multiple entries", "Assign a category to each entry", - "Mark adjustments as recurring" + "Mark adjustments as recurring", + "View transaction splits in a dedicated section" ], "steps": [ "Click New Adjustment to create an adjustment group", "Add entries with a description, amount, date, and category", - "Toggle the recurring flag if the adjustment should repeat each period" + "Toggle the recurring flag if the adjustment should repeat each period", + "View the Transaction Splits section to see splits created from the Transactions page" ], "tips": [ "Adjustments appear in your budget actuals alongside imported transactions", - "Use adjustments for planned expenses that haven't hit your bank account yet" + "Use adjustments for planned expenses that haven't hit your bank account yet", + "Transaction splits are created from the Transactions page and appear here automatically" ] }, "budget": { @@ -630,31 +671,37 @@ "Monthly Trends: income vs. expenses over time (bar chart)", "Expenses by Category: spending breakdown (pie chart)", "Category Over Time: track how each category evolves (line chart)", - "Budget vs Actual: monthly and year-to-date comparison table" + "Budget vs Actual: monthly and year-to-date comparison table", + "SVG patterns (lines, dots, crosshatch) to distinguish categories", + "Context menu (right-click) to hide a category or view its transactions" ], "steps": [ "Use the tabs to switch between Trends, By Category, Over Time, and Budget vs Actual views", "Adjust the time period using the period selector", - "In the pie chart, click a category to hide/show it", + "Right-click a category in any chart to hide it or view its transaction details", + "Hidden categories appear as dismissible chips above the chart — click them to show again", "In Budget vs Actual, toggle between Monthly and Year-to-Date views" ], "tips": [ "Hidden categories are remembered while you stay on the page — click Show All to reset", "The period selector applies to all chart tabs simultaneously", - "Budget vs Actual shows dollar and percentage variance for each category" + "Budget vs Actual shows dollar and percentage variance for each category", + "SVG patterns help colorblind users distinguish categories in charts" ] }, "settings": { "title": "Settings", - "overview": "Configure app preferences, check for updates, and manage your data with export/import tools.", + "overview": "Configure app preferences, check for updates, access the user guide, and manage your data with export/import tools.", "features": [ "App version display", + "Complete user guide accessible directly from settings", "Automatic update checker with one-click install", "Data export (transactions, categories, or both) in JSON or CSV format", "Data import from a previously exported file", - "Optional encryption for exported files" + "Optional AES-256-GCM encryption for exported files" ], "steps": [ + "Click User Guide to access the full documentation", "Click Check for Updates to see if a new version is available", "Use the Data Management section to export or import your data", "When exporting, choose what to include and optionally set a password for encryption", @@ -663,7 +710,8 @@ "tips": [ "Updates only replace the app binary — your database is never modified", "Change the app language using the language selector in the sidebar", - "Export regularly to keep a backup of your data" + "Export regularly to keep a backup of your data", + "The user guide can be printed or exported to PDF via the Print button" ] } }, diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 83b1663..0e54f33 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -468,14 +468,19 @@ "tipsHeader": "Astuces", "gettingStarted": { "title": "Premiers pas", - "overview": "Simpl'Résultat vous aide à suivre vos finances personnelles en important des relevés bancaires, en catégorisant les transactions, en planifiant des budgets et en générant des rapports.", + "overview": "Simpl'Résultat vous aide à suivre vos finances personnelles en important des relevés bancaires, en catégorisant les transactions, en planifiant des budgets et en générant des rapports. L'application est disponible sur Windows et Linux.", "features": [ "Importation de relevés bancaires CSV depuis plusieurs sources", "Catégorisation automatique et manuelle des transactions", + "Répartition (split) d'une transaction sur plusieurs catégories", "Planification budgétaire avec vues mensuelles et annuelles", - "Rapports visuels et analyse des tendances" + "Rapports visuels et graphiques interactifs avec menu contextuel", + "Profils multiples avec bases de données séparées et NIP optionnel", + "Mode sombre avec palette gris chaud", + "Export et import de données avec chiffrement AES-256 optionnel" ], "steps": [ + "Au premier lancement, choisissez ou créez un profil — chaque profil a sa propre base de données", "Allez dans Paramètres et définissez votre dossier d'import — créez un sous-dossier par compte bancaire", "Placez vos relevés bancaires CSV dans le sous-dossier correspondant", "Ouvrez la page Import et configurez votre source (mapping des colonnes, délimiteur, format de date)", @@ -485,28 +490,54 @@ ], "tips": [ "Vous pouvez basculer entre le français et l'anglais via le sélecteur de langue dans la barre latérale", + "Activez le mode sombre via le bouton dans la barre latérale", "Chaque page a une icône d'aide (?) dans l'en-tête avec des astuces rapides", "Vos données sont stockées localement sur votre ordinateur — rien n'est envoyé vers le cloud" ] }, + "profiles": { + "title": "Profils", + "overview": "Gérez plusieurs profils indépendants, chacun avec sa propre base de données. Idéal pour séparer les finances personnelles et professionnelles, ou pour plusieurs utilisateurs sur un même ordinateur.", + "features": [ + "Création de profils multiples avec noms et couleurs personnalisés", + "Chaque profil possède sa propre base de données séparée", + "Protection optionnelle par NIP (code numérique)", + "Changement de profil rapide depuis la barre latérale", + "Suppression de profil avec toutes ses données" + ], + "steps": [ + "Cliquez sur le sélecteur de profil dans la barre latérale pour voir les profils disponibles", + "Cliquez sur Gérer les profils pour créer, modifier ou supprimer des profils", + "Créez un nouveau profil en choisissant un nom, une couleur et un NIP optionnel", + "Basculez entre les profils en cliquant sur celui de votre choix dans le sélecteur" + ], + "tips": [ + "Un profil par défaut est créé automatiquement au premier lancement", + "Le NIP est demandé à chaque fois que vous accédez à un profil protégé", + "La suppression d'un profil supprime définitivement toutes ses données — cette action est irréversible" + ] + }, "dashboard": { "title": "Tableau de bord", "overview": "Le tableau de bord vous donne un aperçu rapide de votre situation financière pour une période sélectionnée.", "features": [ "Cartes résumées du solde, des revenus et des dépenses", - "Répartition des dépenses par catégorie (graphique circulaire)", + "Répartition des dépenses par catégorie (graphique circulaire avec motifs SVG)", "Liste des transactions récentes", - "Sélecteur de période ajustable" + "Sélecteur de période ajustable", + "Menu contextuel (clic droit) pour masquer une catégorie ou voir ses transactions" ], "steps": [ "Utilisez le sélecteur de période en haut à droite pour choisir une plage de temps (mois, 3 mois, année, etc.)", "Consultez les cartes résumées pour votre solde, revenus totaux et dépenses totales", "Vérifiez le graphique circulaire pour voir comment vos dépenses sont réparties par catégorie", + "Cliquez droit sur une catégorie dans le graphique pour la masquer ou voir le détail de ses transactions", "Faites défiler vers le bas pour voir vos transactions les plus récentes" ], "tips": [ "Le solde est calculé comme les revenus moins les dépenses pour la période sélectionnée", - "Cliquez sur une catégorie dans le graphique circulaire pour voir ses transactions" + "Les catégories masquées apparaissent sous forme de pastilles au-dessus du graphique — cliquez sur Tout afficher pour les restaurer", + "Les motifs SVG (lignes, points, hachures) aident à distinguer les catégories au-delà des couleurs" ] }, "import": { @@ -543,6 +574,7 @@ "Assignation de catégorie en ligne via menu déroulant", "Auto-catégorisation basée sur les règles de mots-clés", "Ajout de mots-clés directement depuis une transaction", + "Répartition (split) d'une transaction sur plusieurs catégories", "Notes sur les transactions" ], "steps": [ @@ -550,12 +582,14 @@ "Cliquez sur un en-tête de colonne pour trier par ordre croissant ou décroissant", "Pour catégoriser une transaction, cliquez sur son menu déroulant de catégorie et sélectionnez une catégorie", "Pour auto-catégoriser toutes les transactions non catégorisées, cliquez sur le bouton Auto-catégoriser", - "Pour ajouter une règle de mot-clé depuis une transaction, cliquez sur l'icône + et entrez le mot-clé" + "Pour ajouter une règle de mot-clé depuis une transaction, cliquez sur l'icône + et entrez le mot-clé", + "Pour répartir une transaction sur plusieurs catégories, utilisez le bouton Répartition et ajoutez les montants par catégorie" ], "tips": [ "Utilisez les boutons de période rapide (Ce mois, Mois dernier, etc.) pour filtrer rapidement par date", "L'auto-catégorisation n'affecte que les transactions non catégorisées — elle n'écrase pas les assignations manuelles", - "Ajouter un mot-clé depuis une transaction pré-remplit la catégorie pour construire rapidement vos règles" + "Ajouter un mot-clé depuis une transaction pré-remplit la catégorie pour construire rapidement vos règles", + "Les transactions réparties affichent un indicateur visuel et le détail de la répartition" ] }, "categories": { @@ -566,12 +600,15 @@ "Trois types de catégories : Dépense, Revenu, Transfert", "Règles de mots-clés avec niveaux de priorité pour l'auto-catégorisation", "Couleurs personnalisées pour l'affichage des graphiques", + "Glisser-déposer pour réordonner les catégories ou changer leur parent", "Basculer les catégories en saisissable ou non-saisissable", + "Vue « Tous les mots-clés » pour voir l'ensemble des règles", "Réinitialiser les catégories aux valeurs par défaut" ], "steps": [ "Cliquez sur Ajouter une catégorie pour créer une nouvelle catégorie — choisissez un nom, un type et un parent optionnel", "Sélectionnez une catégorie dans l'arbre pour voir ses détails et sa liste de mots-clés", + "Glissez-déposez une catégorie dans l'arbre pour la réordonner ou la déplacer sous un autre parent", "Ajoutez des mots-clés correspondant aux descriptions des transactions pour l'auto-catégorisation", "Définissez la priorité des mots-clés pour résoudre les conflits quand plusieurs catégories correspondent", "Utilisez le sélecteur de couleur pour assigner une couleur personnalisée pour les graphiques" @@ -579,25 +616,29 @@ "tips": [ "Les catégories non-saisissables sont masquées du budget et des menus déroulants mais restent visibles dans les rapports", "Les mots-clés de priorité supérieure l'emportent quand plusieurs catégories correspondent à la même transaction", + "Utilisez la vue Tous les mots-clés pour avoir un aperçu global de vos règles de catégorisation", "Utilisez Réinitialiser pour revenir aux catégories par défaut — cela dissociera toutes les catégories des transactions" ] }, "adjustments": { "title": "Ajustements", - "overview": "Ajoutez des entrées manuelles non issues de vos relevés bancaires — utile pour les dépenses prévues, revenus ou corrections pas encore dans vos relevés.", + "overview": "Ajoutez des entrées manuelles non issues de vos relevés bancaires, et consultez les répartitions de transactions créées depuis la page Transactions.", "features": [ "Créer des groupes d'ajustement nommés avec plusieurs entrées", "Assigner une catégorie à chaque entrée", - "Marquer des ajustements comme récurrents" + "Marquer des ajustements comme récurrents", + "Consultation des répartitions (splits) de transactions dans une section dédiée" ], "steps": [ "Cliquez sur Nouvel ajustement pour créer un groupe d'ajustement", "Ajoutez des entrées avec une description, un montant, une date et une catégorie", - "Activez le drapeau récurrent si l'ajustement doit se répéter à chaque période" + "Activez le drapeau récurrent si l'ajustement doit se répéter à chaque période", + "Consultez la section Répartitions de transactions pour voir les splits créés depuis la page Transactions" ], "tips": [ "Les ajustements apparaissent dans vos réels de budget aux côtés des transactions importées", - "Utilisez les ajustements pour les dépenses prévues qui n'ont pas encore été débitées de votre compte" + "Utilisez les ajustements pour les dépenses prévues qui n'ont pas encore été débitées de votre compte", + "Les répartitions de transactions sont créées depuis la page Transactions et apparaissent automatiquement ici" ] }, "budget": { @@ -630,31 +671,37 @@ "Tendances mensuelles : revenus vs dépenses dans le temps (graphique en barres)", "Dépenses par catégorie : répartition des dépenses (graphique circulaire)", "Catégories dans le temps : suivez l'évolution de chaque catégorie (graphique en ligne)", - "Budget vs Réel : tableau comparatif mensuel et cumul annuel" + "Budget vs Réel : tableau comparatif mensuel et cumul annuel", + "Motifs SVG (lignes, points, hachures) pour distinguer les catégories", + "Menu contextuel (clic droit) pour masquer une catégorie ou voir ses transactions" ], "steps": [ "Utilisez les onglets pour basculer entre Tendances, Par catégorie, Dans le temps et Budget vs Réel", "Ajustez la période avec le sélecteur de période", - "Dans le graphique circulaire, cliquez sur une catégorie pour la masquer/afficher", + "Cliquez droit sur une catégorie dans un graphique pour la masquer ou voir le détail de ses transactions", + "Les catégories masquées apparaissent comme pastilles au-dessus du graphique — cliquez dessus pour les réafficher", "Dans Budget vs Réel, basculez entre les vues Mensuel et Cumul annuel" ], "tips": [ "Les catégories masquées sont mémorisées tant que vous restez sur la page — cliquez sur Tout afficher pour réinitialiser", "Le sélecteur de période s'applique à tous les onglets de graphiques simultanément", - "Budget vs Réel affiche l'écart en dollars et en pourcentage pour chaque catégorie" + "Budget vs Réel affiche l'écart en dollars et en pourcentage pour chaque catégorie", + "Les motifs SVG aident les personnes daltoniennes à distinguer les catégories dans les graphiques" ] }, "settings": { "title": "Paramètres", - "overview": "Configurez les préférences de l'application, vérifiez les mises à jour et gérez vos données avec les outils d'export/import.", + "overview": "Configurez les préférences de l'application, vérifiez les mises à jour, accédez au guide utilisateur et gérez vos données avec les outils d'export/import.", "features": [ "Affichage de la version de l'application", + "Guide d'utilisation complet accessible directement depuis les paramètres", "Vérification automatique des mises à jour avec installation en un clic", "Export des données (transactions, catégories, ou les deux) en format JSON ou CSV", "Import des données depuis un fichier exporté précédemment", - "Chiffrement optionnel pour les fichiers exportés" + "Chiffrement AES-256-GCM optionnel pour les fichiers exportés" ], "steps": [ + "Cliquez sur Guide d'utilisation pour accéder à la documentation complète", "Cliquez sur Vérifier les mises à jour pour voir si une nouvelle version est disponible", "Utilisez la section Gestion des données pour exporter ou importer vos données", "Lors de l'export, choisissez ce qu'il faut inclure et définissez optionnellement un mot de passe pour le chiffrement", @@ -663,7 +710,8 @@ "tips": [ "Les mises à jour ne remplacent que le programme — votre base de données n'est jamais modifiée", "Changez la langue de l'application via le sélecteur de langue dans la barre latérale", - "Exportez régulièrement pour garder une sauvegarde de vos données" + "Exportez régulièrement pour garder une sauvegarde de vos données", + "Le guide d'utilisation peut être imprimé ou exporté en PDF via le bouton Imprimer" ] } }, diff --git a/src/pages/DocsPage.tsx b/src/pages/DocsPage.tsx index d7a0832..210c3b5 100644 --- a/src/pages/DocsPage.tsx +++ b/src/pages/DocsPage.tsx @@ -16,10 +16,12 @@ import { ListChecks, Footprints, Printer, + Users, } from "lucide-react"; const SECTIONS = [ { key: "gettingStarted", icon: Rocket }, + { key: "profiles", icon: Users }, { key: "dashboard", icon: LayoutDashboard }, { key: "import", icon: Upload }, { key: "transactions", icon: ArrowLeftRight },