Create and manage classroom sessions with multiple video chat rooms. It can also be useful to organise small conference or meetup with various topics.
Create New Event | Join Event | |
Main Screen (Jitsi) | Rooms | |
Shared Documents | Settings |
The idea is born from various CoderDojo mentors that were looking for an open source tool with the following characteristics:
- Can create and manage classroom sessions (we call it events) with more than 50 participants
- Is meant to be used by multiple teachers(mentors) in the same classroom
- Provides basic video/audio/text chat capabilities
- Has an easy way to share participants' screen at the same time
- Creates new rooms on the fly
- Enables teachers to move participants automatically between rooms
- Integrates a document viewer (usually we have a small set of topics per events)
If want to know more, we have some blog posts about our story (Part1 - Part2). The posts are in Italian but we're planning to translate them in the future.
Most of the contributors are mentor from several CoderDojo organizations in Italy, we're not directly affiliated with CoderDojo Foundation.
Create a new Firebase project and copy and rename the .env
file to .env.development.local
and add your Firebase Web credentials. Remember to enable anonymous authentication.
We also use Firebase Functions and to enable local development set up admin credential. The key should be located in /functions/dev-admin.key.json
.
To start development for the first time run the following commands:
npm i
cd functions/
npm i
cd ..
npm run start:dev
The commands above will install all the dependencies and will start both Firebase emulator and Frontend development server.
After you deploy for the first time in development(see next section) you don't need to run the Firebase emulator if you're only working at the frontend, just use this command:
npm run start
To deploy in production you have to create a new Firebase Web app and add the credentials to .env.production.local
. Install the Firebase CLI and init your project with hosting enabled, then run:
npm run deploy
Check package.json
to see how to deploy to dev and production with different environment variables.
- Jitsi: Video/audio/text chat
- Firebase: Hosting, Functions, Database with subscriptions
- React: Frontend
- Comic Neue: A font that looks similar to Comic Sans 🎨
Andrea Tosatto 💻 📖 🎨 |
Pietro Rampazzo 💻 🤔 |
Esther 💻 🎨 |
Some of the contributors are Tes employees. Thanks Tes for giving time to develop and release this tool as an open source project.