Skip to content

Command-line expense tracking application built in Python, focused on recording, displaying, and managing expense entries through a structured CLI workflow.

Notifications You must be signed in to change notification settings

JonasLauri/expense-tracker-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Expense Tracker CLI

A command-line application for recording, viewing, and managing personal expenses in Python.
The project is currently in active development and will evolve into a modular and fully structured application.

Current Status

The core CLI is functional.
Users can enter expenses and list them during the running session.
The application is intentionally simple at this stage, forming a foundation for future expansion.

Goal

Develop a reliable and extendable expense-tracking tool that begins as a basic CLI workflow and progresses toward a modular architecture with validation, persistent storage, and enhanced expense management features.

Summary

This project provides a clear and minimal command-line interface for adding and viewing expense entries.
The current implementation is contained in a single main script to maintain simplicity while laying the groundwork for upcoming modular components.

Current Features

  • Add new expense entries
  • Display all recorded entries
  • Structured and predictable CLI workflow
  • Code formatting, linting, and import sorting using Ruff
  • Pre-commit hooks for automatic code quality checks

Planned Expansion

Modular Architecture

  • cli.py — command parsing and user interaction
  • models.py — Expense and Category structures
  • validation.py — centralized input validation
  • storage.py — JSON, CSV, or simple database persistence

Persistent Data Handling

  • Save expense data between sessions
  • Load and update stored records
  • Implement full CRUD functionality

Enhanced CLI Features

  • Edit and delete specific entries
  • Filter by category, date, or amount
  • Add summary views and basic analytics

Testing and Type Safety

  • Introduce pytest test coverage
  • Add type checking using mypy

Development Environment

This project uses a modern Python development setup with the following tools:

Main Development Dependencies

  • Ruff — linting, formatting, and import sorting
  • mypy — type checking
  • pytest — test framework
  • pre-commit — automated quality checks

These tools are installed inside the project’s .venv virtual environment and configured through:

  • pyproject.toml
  • .pre-commit-config.yaml
  • .vscode/settings.json

Progress Log

  • Initial project structure created
  • Virtual environment and development dependencies configured
  • Pre-commit hooks enabled
  • Baseline CLI application implemented
  • README prepared and documented
  • Next step: Begin redesigning the data model and modular structure (Phase 1.5)

About

Command-line expense tracking application built in Python, focused on recording, displaying, and managing expense entries through a structured CLI workflow.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages