Skip to content

fandasson/impro-app

Repository files navigation

ImproApp

This app supports the impro performance of IMPROvariace impro group. It allows the audience to interact with the performance in real-time. All views run in the browser. No app installation or account creation is needed.

Main terminology

User
Show visitor interacting via the app through a smartphone.
Admin
Show moderator or dedicated person responsible for interacting with the app during the show.
Audience
Dedicated view used for displaying content to the whole audience via a screen projector.
Question
Basic entity representing one interaction with the audience. Can be one of many types, like a text question (users input text), vote (users vote for the player they like most), or matching (users match players to characters).
Question Pool
Group of Questions. Used when we want to count the sum of votes (answers) given to players over several Questions. A performance can have any number of Question Pools.

Currently supported use-cases

General

  • Vote Questions can be batched into a Question Pool.

As admin:

  • I can add a vote-type Question.
  • I can manage Performance visibility.
  • I can manage Question visibility towards Users and Audience.
  • I can see users' Answers in real-time.

As user:

  • I only see a Question when the admin sets its visibility.
  • I can submit an Answer to a Question.
  • I can see the results of a Question (if set by Admin).

Current limitations

  • Missing CRUD operations over most of the entities (wasn't needed, Supabase's interface is used).
  • Only vote-type Questions can be added via the Admin interface.

Tech stack

The whole solution stands mainly on the following pillars:

  1. Next.js app using the app router and server actions (I just want to try it).
  2. shadncn/ui
  3. Supabase for database, authentication, image storage, and real-time streaming.
  4. Vercel for frontend cloud.
  5. Zustand for local state management.

Local development

This is a standard Next.js project bootstrapped with create-next-app. If you want to run it locally, deploy it, or customize it, follow the appropriate documentation.

Database schema (possibly not up-to-date) can be found in schema.db.sql file

About

App for real-time interaction with the audience during improv performances.

Resources

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages