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-startto pull a PostgreSQL image and start a containerjust database-createto initialize thegame-night-dbjust database-migrateto run the existing migrations- This is not needed, since the app runs migrations on startup, but is a good smoke test
just database-shellto get apsqlsession in thegame-night-dbto 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-backendto build a release version of the backend applicationjust run-appto start a local running instance that connects to the containerized PostgreSQL instance
This software is licensed under the BGDC License.