Developed by Carnegie Mellon University's Software Engineering Institute (SEI), Gameboard is a flexible web platform that provides game design capabilities and a competition-ready user interface. The Gameboard API works in conjunction with the Gameboard web client to deliver a full competition environment.
The Gameboard API requires the .NET Core 8.0 framework, an identity provider, a PostgreSQL database, and a "game engine" (described below).
You can download .NET Core from its official website or using an OS package manager. The current version of Gameboard requires .NET Core 8.0.
Gameboard is compatible with any OIDC-compliant identity provider, including KeyCloak, Okta, Auth0, or any platform-based third-party provider (e.g. Google, Meta, etc.). Configure Gameboard's IDP using the appsettings.conf
file.
The API relies on a PostgreSQL database to persist its data. Supply connection information to Gameboard via the Database__
settings in appsettings.conf
.
The API leverages a "game engine" service to orchestrate virtualized challenge resources. Currently, the only officially-supported engine is TopoMojo. You'll need to an API key from an active TopoMojo app to connect it with Gameboard.
Review the appsettings.conf
file. Put alterations in appsettings.Development.conf
, which cascades on top of appsettings.conf
. Recommended dev settings can be found at the bottom of the appsettings.conf
file.
- Install and configure dependencies
- Create
appsettings.Development.conf
and set appropriate values for your IDP, database, and game engine - Start the application using the following command:
dotnet run
(or use an IDE's debug tools) - Browse to
http://localhost:5002/api
.
Gameboard is part of the Crucible framework. We maintain comprehensive documentation for all Crucible apps, including Gameboard, there. Check it out!