AI-powered personal finance management API
As much as I love to work on this project fulltime, I still have a job that I love.
Basically a glorified bookkeeper, financial coach, and financial manager. I wanted to leverage the use of OpenAI models to create an assistant that will:
- keep track of my expenses
- generate reports
- remind me of a money-related event
- make me feel good about my financial health (or not)
- 📃 Create, list, read, update, delete income and expense items.
- 📸 Upload a photo of a receipt and let the assistant book it for you.
- 📈 Generate daily, monthly, yearly reports of your finances.
- 💪🏽Set budgets (daily and weekly).
- 📨 Receive emails about alerts and notifications.
- ⛰️ Set financial goals.
- 👨🏽 Ask the assistant about your finances.
- Use
poetry
for the project. - Define
.env
with the following contents:
STAGE=<stage>
APP_NAME=<name>
PYTHON_PATH=${workspaceDirectory}
All the requirements are found in the financier/functions_stack/layers
folder. We are using pydantic
and there is a special build needed for it to make it working with Lambda.
pip install --platform manylinux2014_x86_64 --implementation cp --python-version 3.12 --only-binary=:all: --upgrade pydantic --target <directory>
Make sure to update this when you are using a new python package.
- Enable your environment.
- Go to
financier/functions_stack/
- Run local FastAPI development server,
fastapi dev fastapi_lambda.py
The project uses: isort
, ruff
, and black
for code formatting. I've created a .bat
file to run the necessary steps.
runner.bat
This will be improved in the future as I am trying to make tox
work for the project.
Initial setup.
- Initialize project structure
- Setup project
- Setup tests
Simple proof of concept for data management.
- Data modelling
- Expense
- Database stack
- DynamoDB setup
- API stack
- Create
- Read
- List
- Update
- Delete
- Lambda stack
- Setup lambda layers
- Create lambda layer creation script
- Create
- List
- Read
- Update
- Delete
- Convert function creations to use YAML loading
Securing our application.
- Stardardize IAM roles
- Cognito setup
- Identity pools
- API Gateway authorizer
Setup the assistant
- Write OpenAI model code for the assistant.
- Interface for the Financier API and the assistant API.
Assistant features
- Tools for the assistant
- Reports generator
- Chat
- Photo manager
More assistant features
- Budget
- Alarms
- Goals