This is a personal finance expense tracker. This works on top of transactions in beancount file format. The app converts an uploaded csv of credit card statement into a beacnount file and categorizes the expenses with an AI agent.
- Categorize transactions using AI
- Install the python version specified in pyproject.toml
- cd backend
- pip install poetry
- poetry install
This is a Next.js app bootstrapped with create-next-app
.
Install
- Node.js (version 22.x or later recommended)
- npm (comes with Node.js)
- cd frontend
- npm install
Backend
- Install dependencies:
cd backend
poetry shell
poetry install
- Run the server:
ANTHROPIC_API_KEY=<your_key> poetry run uvicorn app:app --reload
Build the Docker image:
docker build -t ai-money/backend .
Test locally:
docker run -p 8000:8000 -e ANTHROPIC_API_KEY=your_key ai-money/backend
docker build --platform=linux/amd64 -t ai-money/backend:`git log -n 1 --format="%H"` .
docker tag ai-money/backend:`git log -n 1 --format="%H"` 867344451303.dkr.ecr.us-west-2.amazonaws.com/ai-money/backend:`git log -n 1 --format="%H"`
aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin 867344451303.dkr.ecr.us-west-2.amazonaws.com
docker push 867344451303.dkr.ecr.us-west-2.amazonaws.com/ai-money/backend:`git log -n 1 --format="%H"`
Frontend
cd frontend
npm run dev
And visit localhost:3000
# Build the Docker image
docker build -t ai-money/frontend .
# Run the container
docker run -p 3000:3000 -e BACKEND_HOST=localhost:8000 ai-money/frontend
docker build --platform=linux/amd64 -t ai-money/frontend:`git log -n 1 --format="%H"` .
docker tag ai-money/frontend:`git log -n 1 --format="%H"` 867344451303.dkr.ecr.us-west-2.amazonaws.com/ai-money/frontend:`git log -n 1 --format="%H"`
aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin 867344451303.dkr.ecr.us-west-2.amazonaws.com
docker push 867344451303.dkr.ecr.us-west-2.amazonaws.com/ai-money/frontend:`git log -n 1 --format="%H"`
Sample CC statement
A sample statement is available in backend/statements. Currently, the application supports only this statement format. To use this application, ensure your statements are converted to this CSV format.
Paisa is a dashboard tool to visualize the transactions. To visualiase the transactions you can use that.