A full-stack expense and subscription tracking platform designed to surface spending insights, trends, financial clarity.
- Track date, amount, category, and receipt per expense
- View all expenses in a searchable, sortable, filterable data grid
- Track charge interval (yearly, monthly)
- Automatically generates expenses when subscriptions are due
- Enable/disable subscriptions inline
- View upcoming charge dates
- Stacked Bar Chart - Breakdown of expenses by category over time
- Donut Chart - Category breakdown of total spending
- Line Chart - Expense spending by month for the year
- Heatmap - Showing days where the most purchases were made
- Compare total income (salary + extras) against total expenses
- View net surplus or deficit
- Import multiple expenses at once using CSV files
- Bank and credit card API integrations
- Deployment:
docs/deployment.md - Development workflows:
docs/development.md
See docs/development.md on how to run without using Docker.
Follow these steps to run the Backend, Frontend, and PostgreSQL database locally in Docker.
The database container will automatically be seeded with dev data.
- Docker Desktop
- Commandbox >=6.3.2
- Node >=24
-
Configure Environment
Copy
docker/.env.docker.exampletobackend/.envcp backend/.env.docker.example backend/.env
Modify the environment variables as necessary
You will need to set the
JWT_SECRETandENCRYPTIONKEY -
Start Application with Docker
Navigate to Docker dir
cd dockerStart all services in detached mode (runs in background):
docker compose up -d
First run: Docker will build the frontend and backend images automatically.
This may take a few minutes. Subsequent runs will use cached images and start much faster.
-
Verify the Application is
Service URL Frontend http://localhost:3000 Backend Health Check http://localhost:8082/api/v1/healthcheck -
Stop Application by running
docker compose down
-
Setup GitHooks from root
npm install -g lefthook lefthook install
-
Run the 'Post-checkout' GitHook
lefthook run post-checkout
-
Build fresh images
docker compose up --build -
Stop containers and clear all data
docker compose down -v -
Restart the containers
docker compose restart -
View logs from all services
docker compose logs -f
| Setting | Value |
|---|---|
| Host | localhost |
| Port | 5433 |
| Database | spendingtracker_db |
| Username | docker_user |
| Password | docker1234 |
| Schema | public |