Skip to content

Latest commit

 

History

History
76 lines (58 loc) · 2.2 KB

README.md

File metadata and controls

76 lines (58 loc) · 2.2 KB

Thrifty

Please be gracious with me, this is my first ever app 🙈. Thrifty is a simple web application that helps you manage your income and expenses. It's focused on simplicity and is not aimed to track every single penny you spend. The idea is to get a rough overview of your monthly cash flow and what's left to spend.

Features:

  • Add income and expenses
  • Delete entries
  • Support for SVG icons (default: dollar)
  • Two rows for income and expenses (collapse into single one on smaller devices)

Frameworks used:

  • UI: SvelteKit and Flowbite
  • API: golang

Screenshot

Screenshot

Running the app

I currently don't publish dedicated releases, but you can run the app via docker compose. It is then automatically built and started.

# create docker containers
docker compose -f docker-compose.yml build

# run the app
docker compose -f docker-compose.yml up -d

The app should now be available at http://localhost:9090.

Tips

Want to use $ as the currency symbol?

Change currency: 'EUR' to currency: 'USD' in +page.svelte, delete old docker stack, rebuild containers and start the app like mentioned above.

How about other currencies?

The step above should apply for any other currency ISO-code in this list: ISO 4217

Where is the data stored?

The data is stored in a SQLite database in a docker volume. You can also use a custom path in the docker-compose.yaml to expose the database.

Developing

Frontend

Install node and node modules. Running locally requires you to change the API URL in +page.svelte. Prepend the URL paths in the fetch calls with http://localhost:8080/.

cd ui

# install dependencies
pnpm i

# run ui
pnpm dev

You could also use regular npm instead of pnpm.

Backend

Install golang and run the following commands.

cd api

# install dependencies
go get .

# run api
go run .

Credits