Yoma is a comprehensive platform with multiple components working together to deliver a seamless experience for youth, organisations and administrators.
- Web Frontend - NextJS 15 application providing the user interface
- API Backend - .NET 9 API powering the platform
- Keycloak Integration - Authentication and authorization services
Yoma Web supports multiple user roles with tailored experiences:
- Standard Users: Access opportunities, manage profiles, and track achievements
- Organization Admins: Manage organization details, create and monitor opportunities, and review verifications
- System Administrators: Access maintenance and monitoring functions, manage platform settings, and oversee user management
Recommended tools:
This project uses mise to manage various toolsets (Node, Dotnet, Tilt, etc)
To install mise
, follow the instructions at jdxcode/mise.
Here's a few of the ways to install mise
# Build from source
cargo install mise
# Download pre-compiled binary
curl https://mise.jdx.dev/install.sh | sh
# Cargo Binstall
cargo install cargo-binstall
cargo binstall mise
# MacOS or you're using Homebrew
brew install mise
# MacPorts
sudo port install mise
mise
is compatible with Windows, but it is recommended to use WSL2 (FAQ).
Once you've got mise
installed, you can install the required tooling by running mise install
in the project root.
To pull in the config (e.g: environment variables) set in .mise.toml
file, you'll need to run mise trust
This project uses husky to manage git hooks.
Once you've got mise
and yarn
installed (npm install -g yarn
) run yarn install --frozen-lockfile
in the root of the project.
This will bootstrap husky
and install the configured git hooks.
- SSO Integration Guide - Guide for partners to implement Single Sign-On