Budget-app is a personal finance app (cash organizer) with the following functionality:
Start Docker containers
make docker-up
Run database migrations
make migrate-up
Run REST server
make run
Access full documentation on REST API here.
docker, docker-compose
go-migrate cli tool
PostgreSQL
Redis
Redis is used as a fast-access persistent storage for handling invalid JWT tokens.
Start Docker containers
make docker-up
Stop and remove Docker containers
make docker-down
Create a database migration
make migrate-generate name=some_name_for_your_migration
Run database migrations up
make migrate-up
Run database migrations down
make migrate-down
Run REST server
make run
Run tests
make test
Run linter
make lint
Build project (builds to directory /build)
make build
A web client application is currently being developed that uses this REST API to serve UI.
Check out the repository here.
E2E Tests are run on each pull request into master via Github Actions.
To run e2e tests locally:
make setup-e2e-env
to set up the testing environment (this simply shuts down and removes running containers if they exist, starts docker containers, runs postgresql migrations)make run
to starts the REST server (for convenience, use a separate terminal window for this)make run-e2e-tests
to run e2e testsE2E testing is done using go test. Unit tests and e2e tests are separated and will not run simultaneously.