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:
)
- 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
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
Change
currency: 'EUR'
tocurrency: 'USD'
in +page.svelte, delete old docker stack, build containers (docker-compose-build.yaml) and start the app like mentioned above.
The step above should apply for any other currency ISO-code in this list: ISO 4217
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.
You can build the image yourself like described above.
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.
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 .