/money_app

WebApp to manage your finances

Primary LanguageRustGNU General Public License v3.0GPL-3.0

Money App

The Money App is an app for analyzing, visualizing and predicting assets, expenses and income. Transactions from different banks can be imported and also created manually. These transactions can then be visualized and evaluated in dashboards. In addition, a potential forecast can be made by creating contracts and financial targets. In short, the aim of this app is to get control and an overview of your finances and to have all the important information about them in one place.

Usage

The app consists of a backend (actix-web) and a frontend (yew), which are both built together in a Docker image. The backend communicates with a SurrealDB database. The app is designed for multi-tenant operation, but does not take care of authentication itself. Instead, it relies on an authentication proxy such as Proxauth, which sets the X-Remote-User header.

Production

For productive operation, it is recommended to use the Docker Image, which is already built on DockerHub for the respective releases. In addition, the SurrealDB and Proxauth image can be used to create a fully functional overall system. An example configuration can be seen in docker-compose.yaml and started via:

docker compose up

Now you can login at localhost:8080 using the user test and the password test. This login is valid for 24h. If you see an error message after this time, you have not been logged out automatically and can log out via localhost:8080/logout. You will then be redirected to the login page and can log in again.

Development

As a development setup, the frontend and the backend must be started separately to ensure an auto rebuild for both components. Proxauth can now be configured to forward frontend requests to the frontend and backend requests to the backend. An example configuration for this can be found in proxauth-config.yaml.

Surrealdb (1.0.0) and proxauth (0.1.0) must be installed as dependencies. In addition, the two crates fancy-yew and fancy-surreal are required, which unfortunately are not yet on crates.io and are therefore needed in parallel to the money-app repository. More detailed information can be found in the Dockerfile.

Once all dependencies have been installed, the four components can be started using the following four commands:

surreal start --log debug --user root --pass root memory --allow-scripting
cd backend && cargo watch -cqx run
cd frontend && trunk serve
CONFIG_FILE="./proxauth-config.yaml" proxauth

Now you can login at localhost:8081 using the user test and the password test. This login is valid for 24h. If you see an error message after this time, you have not been logged out automatically and can log out via localhost:8080/logout. You will then be redirected to the login page and can log in again.

License

GPL-3.0