📈 A finances application to keep track of my personal spendings
Find a file
2025-03-18 09:21:08 +01:00
.github/workflows N-FIN-88: add new GitHub action 2025-03-09 04:32:23 +01:00
docker N-FIN-66: fix restarting stopped container 2025-03-09 06:00:10 +01:00
prisma N-FIN-79: migrate database dropping lucia tables 2024-12-23 00:17:43 +01:00
public N-FIN-76: update app icon 2025-03-13 08:30:49 +01:00
src N-FIN-98: remove initialFocus attribute 2025-03-18 09:06:05 +01:00
.env.example RELEASE-v1.3.0: fix variable naming for clarity 2025-03-16 00:49:50 +01:00
.eslintrc.json Initial commit 2024-03-08 20:24:40 +01:00
.gitignore N-FIN-57: add serwist and PWA configuration 2024-03-17 20:28:41 +01:00
bun.lock Release-v1.3.1: update package version 2025-03-18 09:19:06 +01:00
components.json Initial commit 2024-03-08 20:24:40 +01:00
Dockerfile N-FIN-90: replace legacy ENV format 2025-03-09 05:34:22 +01:00
next.config.mjs N-FIN-57: add serwist and PWA configuration 2024-03-17 20:28:41 +01:00
package.json Release-v1.3.1: update package version 2025-03-18 09:19:06 +01:00
postcss.config.js Initial commit 2024-03-08 20:24:40 +01:00
README.md RELEASE-v1.3.0: update README.md 2025-03-16 00:54:46 +01:00
tailwind.config.ts Initial commit 2024-03-08 20:24:40 +01:00
tsconfig.json N-FIN-83: upgrade dependency versions 2024-12-24 12:49:33 +01:00

Next-Finances

This is my simple finances tracker that I use to keep track of my spending.

Using the app

Understanding the Basics

  • Entities: The core building blocks of your finances.
    • Accounts: Where you hold money (e.g., bank accounts, PayPal account, cash)
    • Entities: Where you spend money (e.g., Walmart, Spotify, Netflix)
  • Payments: Record money movement.
    • Expenses: Money leaving an Account. (Account -> Entity)
    • Income: Money entering an Account. (Entity -> Account)
  • Categories (optional): Add labels to Payments for better tracking.

Your First Steps

  • Set up: Create Entities and Accounts that reflect your finances.
  • Record a Payment:
    • Enter the amount and date.
    • Select payor and payee
    • (optional) Assign a category or enter a note.
  • Explore: View your payment history and view your statics at the dashboard

Tips

  • Install the website as a PWA for easy access.
  • Get in the habit of recording Payments as they happen for accurate tracking.
  • Use categories to understand your spending patterns.

Development

Clone this repository and run the following commands:


## create .env file
cp .env.example .env

## start the database
docker compose -f docker/finances-dev/docker-compose.yml up -d

## generate prisma client
bunx prisma generate

## apply database migrations
bunx prisma migrate deploy

## start the development server
bun run dev

This project relies on Auth0 authentication. To use it you will have to create an Auth0 account, create an application of type 'Single Page Application' and now add the required details to your .env file. You will also have to add http://localhost:3000/auth/callback as an Allowed Callback URL and http://localhost:3000 as an Allowed Logout URL and Allowed Web Origins in your Auth0 console.

Now open http://localhost:3000 with your browser and create an account. While in development mode, you can generate sample data from the Account page.

Deployment

Copy the docker-compose.yaml file and the .env.example from 'docker/finances-prod' to your server.

Rename the .env.example file to .env and adjust the required environment variables.

The docker setup expects you to run a Traefik reverse proxy. It will then register itself automatically. If your setup is different, you will need to adjust the docker-compose.yaml file accordingly.

The finances containers will automatically register themselves to a running watchtower container if it is present.

Finally run docker-compose up -d on your server to start the application.