Skip to content

JustinCBlain/Expense-Tracker

Repository files navigation

Projekt Awesome

Made with Python Made with PostgreSQL Made with Docker OS - Windows OS - macOS

20241110_184852

Overview

TLDR

You there! Yes you, in the rush to find what you need and get outa here! Let me show you the way. This document is meant to guide you in the land of Projekt Awesome - an AI-powered expense tracker. Lemme show you around.

  1. Overview - You are here! Reading a summary of this document! After that is a summary of the project.
  2. Quickstart - If you just wanna try it out right away
  3. Orientation - If you're approved to make changes to the codebase but don't know what's going on
  4. Credits - List of Contributors and fine print if you wanna say hi or... be bored

....Oh. You're not in a rush? You wanna read the whole thing? Oh! Well carry on then.

Project description

The Expense Tracker project aims to develop a user-friendly web app for seamless expense management with data visualizations and potential AI integration. The application will enable users to record and categorize expenses while providing visual insights into spending patterns. Key goals include core expense tracking features, trend analysis through visual data, and basic AI-driven budget recommendations. Focused on single-user use, the project will maintain simplicity, utilizing local data storage and web-based access optimized for desktop. Deliverables include an efficient, professional expense tracker offering actionable financial insights.

Quickstart

Setup

  1. Install poetry: curl -sSL https://install.python-poetry.org | python3 -
  2. Install dependencies: poetry install

See Poetry docs for details if needed

Run locally

  1. Start poetry shell: poetry shell
  2. Run app: streamlit run ./src/app.py and window will pop up

Run in Docker

  1. Install Docker - https://docs.docker.com/engine/install/
  2. Run docker compose up -d --build
  3. Navigate to Streamlit app in your browser

To watch the app logs, run docker logs expense-tracker-api-1 --follow, or run docker compose up without the -d to tail all containers.

Testing and coverage

  1. To test, run poetry run pytest.
  2. To see coverage, run the following:
coverage run -m pytest
coverage html

Finally, open htmlcov/index.html in your browser of choice.

  1. To run formatting, run ruff check --fix src test
  2. To run linting, run pylint src test/*

Orientation

  • Prototyping
    • prototype.py - Original Blueprint
  • sample_data
    • mid_data.csv - 200 example records
    • small_data.csv - 10 example records
  • src
    • app.py - Ignition
    • expense_manager.py - Initializes database and handles all transaction modification
    • layout.py - Defines app layout
    • tabs
      • aitab.py - Placeholder for AI Chat
      • dailytab.py - All behavior related to daily spending visualization
      • distributiontab.py - All behavior related to spending distribution visualization
      • expensecolumn.py - All behavior related to database interface
      • overalltab.py - All behavior related to overall spending visualization
    • util
      • constants.py - Defines database characteristics

Credits

Meet the team

Terms of use

Projekt Awesome is licensed under The MIT License.

About

UMGC Capstone Project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •