Budgeteur is a budgeting and personal finance web-app.
This app aims to provide two services:
- Budgeting: Recording your income and expenses, and tracking savings targets.
- Personal Finance: Keeping track of your net worth.
The application consists of a single REST server that renders and serves HTML directly.
This project was developed with cargo 1.8.0, other versions have not been tested.
-
(First time only) Run the below script to create the test database:
cargo run --bin create_test_db -- --output-path test.db
-
To start the server run the following command:
SECRET=YOUR_SECRET_HERE cargo run -- --db-path test.db --cert-path path/to/cert_and_key_pem
By default, this will serve on port 3000.
If you want to automatically recompile and restart the server you can use the following command:
cargo watch -E SECRET=YOUR_SECRET_HERE -x 'run -- --db-path test.db --cert-path path/to/cert_and_key_pem'
--cert-path
should contain the filescert.pem
andkey.pem
. If you do not have the required SSL certificates, you can generate your own using OpenSSL (make sure to add the flag-nodes
). -
Test that the server is running:
curl -i -X GET https://localhost:3000/coffee
Example output:
HTTP/2 418 content-length: 0 date: Thu, 22 Aug 2024 03:00:58 GMT
If you have Nix installed, use nix develop
while in the root directory to create the development environment.
This creates a new shell environment with the packages declared in flake.nix
.
Similar to a Docker image, this shell environment is isolated from your system and enables easy, replicable development environments.
Currently, user registration, log in and log out have been implemented on both the backend and frontend.
The next steps will be to work on CRUD functionality for transactions. This will allow for the fundamental budgeting functionality.