GithubHelp home page GithubHelp logo

bmacswigg / jitsi-party Goto Github PK

View Code? Open in Web Editor NEW

This project forked from morganecf/jitsi-party

1.0 0.0 0.0 658.21 MB

Partying in the time of corona

License: MIT License

HTML 1.92% JavaScript 57.90% Shell 1.27% CSS 24.44% Python 14.16% Dockerfile 0.17% Makefile 0.13%

jitsi-party's Introduction

jitsi-party

A virtual party space.

Contributing

Installation

# Set up a virtualenv
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt

# Make sure you have node/npm installed
brew install node # on Linux: `apt install npm`

# Make sure you have protoc installed
brew install protobuf # on Linux: `apt install protobuf-compiler`

# Install client dependencies
cd app/client/
npm install

Running the app locally

# Make sure your virtual env is activated
source venv/bin/activate
cd app/

# Export env variables.
source setup.sh

# Build proto schemas for config files
# Equivalent to `make schema`. Run `make clean` to clean
make

# Create db
flask create-db

# Run flask app
flask run

# Run webpack
cd client/
bash run.sh

The app should now be running on localhost:3000.

Configuration

App configuration is done with a collection of JSON files in app/config. base.conf is the root configuration, and is merged with/superceded by the values in development.json and production.json when in those respective environments. rooms.json contains the room layout that is loaded into the database and used by all connected clients.

To use a custom configuration, add a config.json and/or rooms.json to app/config/overrides/. app/config/overrides/config.json will be merged with/supercede the default configs, while app/config/overrides/rooms.json will completely replace the default rooms.

Querying the DB

Using sqlite directly

sqlite3
.open db.sqlite
.tables
select * from rooms;

Using flask shell

flask shell
Room.query.all()

Running with eventlet

If you want websockets to actually work:

flask run-eventlet

Jitsi API documentation

API doc: https://github.com/jitsi/jitsi-meet/blob/master/doc/api.md

Definition of JitsiMeetExternalAPI(): https://github.com/jitsi/jitsi-meet/blob/master/modules/API/external/external_api.js

Config options: https://github.com/jitsi/jitsi-meet/blob/master/config.js

Interface config options: https://github.com/jitsi/jitsi-meet/blob/master/interface_config.js

A slightly irritating note

It seems like the Jitsi Meet library isn't intended to be consumed the way you'd use a regular JS library in a modern app, i.e., it seems you can't import it. We have to use a script tag to get it working, and then access the global variable:

<body>
  ...
  <script src='https://meet.jit.si/external_api.js'></script>
  <script type="text/javascript" src="js/bundle.js"></script>
</body>
// To use inside a React component
const JitsiAPI = window.JitsiMeetExternalAPI

jitsi-party's People

Contributors

bmacswigg avatar danielmdavis avatar dependabot[bot] avatar dsshimel avatar hndrewaall avatar ichthala avatar morganecf avatar seangibat avatar seanmcgrath avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.