Scouts Finance is a project designed to help leaders and treasurers manage their finances and keep track of income and expenses for scouting activities.
- Create and manage events
- View and categorise payments
- Dart SDK
- Flutter SDK
- Serverpod SDK
- Docker
It is recommended to install the Flutter SDK using the Flutter installation guide.
-
Start the PostgreSQL and Redis services using Docker:
docker compose up --build --detach
-
Start the Serverpod server:
dart bin/main.dart
-
Run the Flutter application on your target of choice:
flutter run
Warning
If you are running the server for the first time, pass the --apply-migrations
flag to apply the database migrations.
To stop the Serverpod server, press Ctrl-C in the terminal where it is running. Then, stop the PostgreSQL and Redis services:
docker compose stopFor more information on how to use Serverpod, refer to the Serverpod documentation.
To access the dev servers (like the pg server) you will need to populate the
(missing) passwords.yaml file in the scouts-finances_server directory.
Please ask a developer for the required secrets.
Caution
This file is in .gitignore and should not be committed to the repository.
Do not try to commit this file.
The code beneath scouts-finances_client is generated by the Serverpod CLI.
To regenerate the code, run:
serverpod generateYou will need to do this each time you change the server code, for example when you add a new endpoint.
The generated boilerplate allows you to call the server endpoints from the client side with dart integration for type safety and autocompletion.
If you modify the database schema, you will need to create a migration file. To create a migration file, run:
serverpod create-migrationThis will create a new migration file in the migrations directory.
Before the migration takes effect, you will need to apply it by running:
dart bin/main.dart --apply-migrationswhen running the server for the first time.
For more information, including on how to repair migrations, refer to the official documentation.
Tip
If you are getting database errors such as relation "table_name" does not exist,
it is likely that you have not applied the migrations.