Skip to content

CallCenterVillage/challenge-dashboard

Repository files navigation

Challenge Dashboard

A simple PHP/Laravel dashboard to display the status of challenges during an event, like a conference village.

Running The Dashboard

After cloning the application, open your terminal and run the following commands from the cloned directory:

cp .env.example .env
composer install
php artisan key:generate
vendor/bin/sail up -d
npm install
npm run dev

You can now access the application in your browser at http://localhost. The vite server will hot-reload any changes you make to village or challenge configurations.

Application Workflow

This application (and how I use it) is highly opinionated and may not be suitable for anyone other than me. However, I will try to explain the workflow of the application, as I use it for the Call Center Village use-case.

  • I clone this application for each event I run (whether public/private)
  • I typically run the application locally using Laravel sail, but for public events, we use Forge to deploy the application.
  • I update the village and challenge configurations in the config directory for the particular event/challenge
  • If I need to pivot a challenge to a demo because nobody can figure it out, I can quickly adjust the php array in the config/challenges.php file
  • For local events, the change is instant. For public events, I push the changes to the repository, and Laravel Forge automatically deploys the changes to the server.
  • Git commits can also be used to write quick feedback notes as changes are made to the live event
  • For public events, I will generally put IP restrictions in place so only on-site participants can access the dashboard

While I'm using Laravel Forge for the public events, you could use any normal Laravel hosting option you are comfortable with.

In my opinion, the application shines when ran locally for onsite users. It's a quick and easy way to provide a dashboard for your event, and it's easy to update on the fly.

Application Overview

This application is configuration driven, primarily controlled by two files:

  • config/village.php
  • config/challenges.php.

Supported Event Types

  • Challenge: A challenge to be solved including hints to help your participants
  • Hidden: A hidden challenge. Finding the URL of the challenge is typically the solution.

Challenges can be marked as solved, which will display the solutions and mitigations.

Hidden Challenges can be marked as solved, which will display the mitigations (and show it as solved on the dashboard.) The solution to a hidden challenge is shown before being marked solved, as finding the URL of a hidden challenge is typically the solution.

We also support basic village event types I've used so far:

  • Talks: A talk you being given at your village or event
  • Demonstrations: A demonstration performed at your village or event
  • Parties: Share the details of a party or social event

Village Configuration

To update the attributes of your event/village, you can edit the config/village.php file.

Documentation for this will come when I hit a stable "API". For now use the included examples.

Challenge Configuration

To update the challenges, you can edit the config/challenges.php file.

Documentation for this will come when I hit a stable "API". For now use the included examples.

Screenshots

Check out the resources/screenshots directory for screenshots of every event type.

An example dashboard based on the packaged configuration: Dashboard

Marking a challenge as solved will the solutions and mitigations: Solved

License

MIT License (MIT). Please see License File for more information.

About

A village dashboard to track challenges during an event

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages