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.
- Overview - You are here! Reading a summary of this document! After that is a summary of the project.
- Quickstart - If you just wanna try it out right away
- Orientation - If you're approved to make changes to the codebase but don't know what's going on
- 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.
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.
- Install poetry:
curl -sSL https://install.python-poetry.org | python3 - - Install dependencies:
poetry install
See Poetry docs for details if needed
- Start poetry shell:
poetry shell - Run app:
streamlit run ./src/app.pyand window will pop up
- Install Docker - https://docs.docker.com/engine/install/
- Run
docker compose up -d --build - Navigate to Streamlit app in your browser
To watch the app logs, run
docker logs expense-tracker-api-1 --follow, or rundocker compose upwithout the-dto tail all containers.
- To test, run
poetry run pytest. - To see coverage, run the following:
coverage run -m pytest
coverage html
Finally, open htmlcov/index.html in your browser of choice.
- To run formatting, run
ruff check --fix src test - To run linting, run
pylint src test/*
- 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
- UX/UI Specialist: Kayla
- Chief Data Officer: Mary
- Front-End Developer: Mark
- Back-End Developer: Kirtan
- Team Lead: Justin
Projekt Awesome is licensed under The MIT License.
