SRCF / lightbluetent

BigBlueButton frontend (originally dubbed project LightBlueTent) for the SRCF's Timeout videoconf
https://timeout.srcf.net
MIT License
5 stars 6 forks source link

SRCF LightBlueTent

A simple and elegant Flask webapp that turns managing society fairs and events into a piece of cake!

Features:

Upcoming features:

Known events:

Installation

Requirements

Must be run within the CUDN for the Lookup queries to work properly

Instructions

  1. Clone the repository's master branch
  2. Copy the .sample-env file to .env and set variables
  3. Copy the lbt.service file to the relevant systemd location*
  4. Copy .htaccess to your public_html or www folder
  5. Configure any settings needed in lightbluetent/config.py
  6. Install the dependencies with pipenv install
  7. Spawn a shell with the right environment variables pipenv shell and initialize and upgrade the database: flask db init and flask db upgrade
  8. Edit the run.sh script to match directories of choice for the UNIX socket
  9. Start the service

Customization

Strings

All strings have been pulled out into a file for easy customization.

Environment variables

The existing variables are set for development. Remove them and uncomment the ones meant for production. The BigBlueButton server provided is for testing so you should request a secret from mw781.

POSTGRES_USER=postgres
POSTGRES_HOSTNAME=postgres
POSTGRES_PASSWORD=
APPLICATION_DB=lightbluetent

Logging

Logs are made available in production.log and the log level can be set accordingly in run.sh.

Change a user's role

Make someone an admin by running flask change-role [list of crsids] administrator making sure to load the environment variables with pipenv shell beforehand.

Development

Getting started

  1. Clone this repository:
git clone https://github.com/SRCF/lightbluetent.git
  1. Start the containers: cd lightbluetent and then ./develop.sh up
  2. Navigate to localhost:5000 to see the app

Application structure

Environment variables

Workflow

Testing

Development

docker-compose will automtically look for a .env file and load those environment variables.

Database management

DB data is preserved in a docker volume. To remove the volume, docker volume ls and then use the relevant command to delete the volume. This wipes your local dev DB. The next time the container starts up, it will generate an empty database called lightbluetent.

Note: make sure to spawn a shell with the right env vars before running these commands

Project structure and base code based on this tutorial