8000 GitHub - tiehfood/thrifty at v1.3.0
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
8000 / thrifty Public

A simple monthly income and expenses tracker

License

Notifications You must be signed in to change notification settings

tiehfood/thrifty

Repository files navigation

Release Version Docker Pulls License

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
  • Edit existing entries
  • Delete entries
  • Support for SVG icons (default: dollar)
  • Two rows for income and expenses (collapse into single one on smaller devices)
  • API documentation at /swagger/index.html

Frameworks used:

  • UI: SvelteKit and Flowbite
  • API: golang

Screenshots

Screenshot1 Screenshot2

Running the app

Every release since 1.2.0 should create a docker image on DockerHub. Use docker-compose.yaml to run the app with the latest version.

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

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

If you want to build the image yourself, you can use the following commands.

# run the app
docker compose -f docker-compose-build.yaml build

# run the app
docker compose -f docker-compose-build.yaml up -d

Tips

Want to use $ as the currency symbol?

Change currency: 'EUR' to currency: 'USD' in +page.svelte, delete old docker stack, build containers (docker-compose-build.yaml) 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.

I need a docker image for a different architecture.

You can build the image yourself like described above.

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 .

# install swag (optional)
go install github.com/swaggo/swag/cmd/swag@latest

# generate swagger documentation (optional)
swag init

# run api
go run .

Credits

0