Skip to content

Aritmo is a smart budget tracker that helps you bring rhythm and balance to your finances. Simple, clear, and accessible: organize your expenses, view your income, and find harmony in your numbers.

License

Jean-EstevezT/Aritmo-Budget-Planner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aritmo

Desktop budget planner (Electron) with a visual dashboard for income, expenses, and goals by category.

Aritmo Screenshot

Features

  • Income and expense tracking with categories
  • Category management (create, rename, delete)
  • Budget targets by category for expenses and income
  • Dashboard with:
    • Summary (income vs. expenses vs. savings)
    • Monthly averages
    • Distribution by category (Chart.js)
    • Cash flow
    • Expense drill-down by category (monthly evolution)
  • Maintenance Zone (“Danger Zone”) to clear the local database
  • SQLite database with useful indexes and default categories

Requirements

  • Node.js 18+ recommended (LTS)
  • npm 8+ (included with Node)
  • Operating system: Windows, macOS, or Linux

Quick Start

  1. Install dependencies:
    • Windows/macOS/Linux:
      • npm install
  2. Run the desktop app:
    • npm start

Optional: open DevTools on startup

  • Windows (cmd): set OPEN_DEVTOOLS=1 && npm start
  • PowerShell: $env:OPEN_DEVTOOLS=1; npm start
  • macOS/Linux (bash/zsh): OPEN_DEVTOOLS=1 npm start

Project Structure

Architecture Overview

  • Main process (Electron):

  • Renderer (UI):

    • Modular HTML/CSS and JS per page
    • services/api.js layer that invokes main process IPC
    • Chart.js for graphs
  • Centralized IPC channels:

Database

  • Engine: SQLite (local file in the app.getPath('''userData''') folder)
  • File location: budget.sqlite3 (created automatically on first launch)
  • Automatic runtime migrations (creates tables and indexes if missing)
  • Insertion of default categories (income and expenses)

Clearing the database:

  • UI: Settings → “Danger Zone” → “Clear entire database”
  • Effect: deletes all data tables, runs VACUUM, and re-inserts default categories

Security

  • CSP defined in src/renderer/index.html (local scripts and styles)
  • The project uses nodeIntegration: true and contextIsolation: false in src/main/main.js. This simplifies local development but is not recommended for apps with remote content. No remote resources are loaded.
  • Hardening recommendations:
    • Enable contextIsolation: true and disable nodeIntegration
    • Expose a secure API with preload
    • Maintain and review CSP

Technologies

  • Electron 25
  • SQLite + Knex
  • Chart.js
  • Local iconography (simple/emoji); support for @phosphor-icons/web available

Scripts

  • npm start — Launches Electron with the project
  • Environment variable: OPEN_DEVTOOLS=1 to open DevTools on startup (see “Quick Start” section)

Development

Troubleshooting

  • Error installing sqlite3:
    • Make sure you are using Node 18+ and a recent version of npm
    • Delete node_modules and package-lock.json, then run npm install
  • DB not updating:
    • Close and reopen the app. Automatic migrations run on startup
    • Use “Clear entire database” to rebuild tables and indexes if necessary
  • DevTools not opening:
    • Verify that you are setting OPEN_DEVTOOLS=1 correctly for your shell

Suggested Roadmap

  • Packaging (Windows/macOS/Linux) with electron-builder
  • Preload + contextIsolation: true
  • Export/Import (CSV/JSON)
  • Date range filters and search
  • Internationalization (i18n)
  • Testing (unit and end-to-end)

License

  • This project is under the GNU GPLv3 license. See LICENSE.

Contributions

Credits

Author: Jean Estevez — ctarriba@gmail.com Inspired by real personal budget tracking needs.

About

Aritmo is a smart budget tracker that helps you bring rhythm and balance to your finances. Simple, clear, and accessible: organize your expenses, view your income, and find harmony in your numbers.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published