This project is intended to allow groups of friends to organize game nights.
- People can invite new members to the group and admins can grant approval.
- People can host game nights with specific games in mind or a selection of options from everyone's boardgame libraries.
- People can express their dietary needs so that food plans accommodate everyone.
- Frequent, pre-planned boardgame nights make people not feel left out if they can't make a specific night.
For local development, just
is used to automate common workflows (see justfile
).
For email to work for login links, you will need a SendGrid token. You can find generate a new one under Settings > API Keys and either add it to your environment as EMAIL_TOKEN
when running the application or store it in app_config.toml
under the key email_token
.
If you are using nix
, there is a nix
flake
that defines a devShell
environment with all of the necessary dependencies for development. direnv
is recommended to automatically apply this devShell
when you are working in this directory.
You'll want to install the following tools:
The local development infrastructure is written to be compatible with both Docker and Podman when configured to replace the docker
command.
To get started with a local database, you'll want to:
just database-start
to pull a PostgreSQL image and start a containerjust database-create
to initialize thegame-night-db
just database-migrate
to run the existing migrations- This is not needed, since the app runs migrations on startup, but is a good smoke test
just database-shell
to get apsql
session in thegame-night-db
to further smoke test
After making changes to the database via migrations, run just database-prepare-for-ci
to re-generate the sqlx-data.json
file that ensures that the compile time checks of the SQL queries are up to date and correct.
just build-backend
to build a release version of the backend applicationjust run-app
to start a local running instance that connects to the containerized PostgreSQL instance
This software is licensed under the BGDC License.