Skip to content

A web app to run a wide game/scavenger hunt type event, featuring questions and photo challenges.

License

Notifications You must be signed in to change notification settings

CabotScouts/trailapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TrailApp

A web app to run wide game/challenge trail/scavenger hunt type events featuring questions and photo challenges.

Jump to installation instructions

Answer questions and complete challenges

Submit answers & photos directly from the app

Question view Challenge view
Question submission Challenge submission

Realtime feedback on submissions

Control team able to accept or reject submissions that have been sent in - feedback given to teams in realtime and points/leaderboard automatically updated.

Dashboard submission view Accepted notification

Realtime messaging from control to teams

Ability to broadcast messages out to teams (both to individual teams, and to all teams).

Broadcast Broadcast received

Supports multiple teams members working collaboratively

QR code allows other members to join the team on the app and be submitting at the same time - realtime feedback to teams throughout the event keeps all members in sync as they go.

Join with QR

Simple dashboard interface

Setup your relevant users and groups, add questions and challenges, mark submissions as they come in, broadcast messages to teams.

Dashboard

Getting Started

Want to jump straight into testing the app? Try running quickstart:

Custom installation

Prerequisites

The app makes use of containers to minimise the need for installing/configuring software, but still requires some essentials to get to that stage:

  • Linux (either native or using Windows Subsystem for Linux) or macOS
  • git - for cloning this repository (comes with most Distros already)
  • docker - for running containers
  • openssl - for generating random strings (comes with most Distros already)

Environment Variables

TODO: write out various sets of env. variables

Ingress Methods

To run the trail you need to get connections into the core app container and the websockets container (unless you really don't want any of the real time stuff).

There's a whole host of proxy services you can use:

Use the APP_PORT and APP_WEBSOCKET_PORT environment vars to set which ports you want the containers to listen on, then point your connections there. Don't forget to update the APP_HOST and APP_WEBSOCKET_HOST vars to the external addresses your proxy is listening on.

Traefik

If you're using the Traefik edge router then TrailApp comes with a docker compose stub and environment variables to configure this (because it's what we use on our server).

Variables to set:

Variable Value
DOCKER_INGRESS "traefik"
DOCKER_TRAEFIK_NETWORK the docker network your traefik container routes through (default: "traefik")
APP_HOST the domain the main app container should be reachable at
APP_WEBSOCKET_HOST the domain the websockets container should be reachable at
APP_WEBSOCKET_PORT the port traefik is listening on for the websocket container, unless you've added extra entry points you probably want to use web secure (443)

Development

Things to chip away at:

  • Pagination of submissions page, to avoid killing the server (sorry Thursday teams...)

About

A web app to run a wide game/scavenger hunt type event, featuring questions and photo challenges.

Resources

License

Stars

Watchers

Forks