{"id":15197061,"url":"https://github.com/openfun/jitsi-box","last_synced_at":"2025-10-28T07:30:38.105Z","repository":{"id":42566197,"uuid":"424700846","full_name":"openfun/jitsi-box","owner":"openfun","description":"A Raspberry Pi based box to automate holding hybrid conferences with Jitsi","archived":false,"fork":false,"pushed_at":"2022-04-21T20:02:12.000Z","size":17724,"stargazers_count":29,"open_issues_count":0,"forks_count":4,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-02-01T12:44:09.005Z","etag":null,"topics":["classroom","classroom-tools","conference","education","educational-project","educational-technology","government","iot","iot-device","jitsi","jitsi-meet","meeting","opensource","public","raspberry-pi","raspberry-pi-4","raspberry-pi-camera","raspberrypi","visio"],"latest_commit_sha":null,"homepage":"https://jitsi-box.com","language":"TypeScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openfun.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-11-04T18:34:07.000Z","updated_at":"2024-01-26T22:34:22.000Z","dependencies_parsed_at":"2022-09-08T01:03:35.941Z","dependency_job_id":null,"html_url":"https://github.com/openfun/jitsi-box","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Fjitsi-box","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Fjitsi-box/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Fjitsi-box/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Fjitsi-box/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openfun","download_url":"https://codeload.github.com/openfun/jitsi-box/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238608309,"owners_count":19500354,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["classroom","classroom-tools","conference","education","educational-project","educational-technology","government","iot","iot-device","jitsi","jitsi-meet","meeting","opensource","public","raspberry-pi","raspberry-pi-4","raspberry-pi-camera","raspberrypi","visio"],"created_at":"2024-09-28T00:40:34.669Z","updated_at":"2025-10-28T07:30:32.463Z","avatar_url":"https://github.com/openfun.png","language":"TypeScript","readme":"\n# Jitsi Box, an opensource device for hybrid classrooms and conferences\n\nA **hybrid classroom** combines traditional face-to-face teaching with online teaching.\n\n**Our ambition is to blend the virtual classroom with the real classroom through the use of a simple device called the `Jitsi-Box`**.\n\nThe `Jitsi-Box` is a case with an interface which allows teachers to connect their physical classroom to their online teaching meeting. \n\nUltimately, the idea is to ensure that online students feel as if they were actually in the classroom with easy interactions with their peers in the class and vice-versa.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./docs/images/jitsi-box-in-hybrid-classroom.jpg\" width=\"500\" alt=\"Jitsi Box in hybrid classroom\"/\u003e\n\u003c/p\u003e\n\nIn order to do that, the `Jitsi-Box` device can be placed in a classroom (on a wall or desk) and then connected to:\n\n- a sound system to render the sound of the people online\n- various cameras dispersed in the room to render the classroom to the people online\n- a microphone to take the sound from the classroom\n- a TV to see the people online within the classroom\n\nAll of these outputs can be chosen by he/she who setups the jitsi-box in a room.\n\nA version of the application is available on https://jitsi-box.com\n\nThe application has been configured as a `Progressive Web App` and can therefore be installed on the desktop of any device.\n\n## Architecture\n\nThe `Jitsi-box` is made up of 3 essential building blocks: a `React` frontend application, a `Raspberry Pie` controller and a `touchscreen` to control the application.\n\n\n## Getting Started\n\n### `React` Front-end\n\nA simplified tree of the app:\n\n\u003cpre\u003e\n├── src\n│   ├── App.css\n│   ├── App.test.tsx\n│   ├── App.tsx\n│   ├── components\n│   │   ├── css\n│   │   ├── tests\n│   │   └── ts\n│   │       ├── ConnectionComponent.tsx\n│   │       ├── CreateMeetingComponent.tsx\n│   │       ├── FormJoinMeeting.tsx\n│   │       ├── HomeButtonsComponent.tsx\n│   │       ├── HomeComponent.tsx\n│   │       ├── JitsiComponent.tsx\n│   │       ├── JoinMeetingComponent.tsx\n│   │       ├── MarshaLoginComponent.tsx\n│   │       ├── PopupComponent.tsx\n│   │       ├── QrCodeComponent.tsx\n│   │       └── QrCodeScanner.tsx\n│   ├── dictionnaries_fr\n\u003c/pre\u003e\n\n### `Raspberry`\n\nFor the setup, please see the following **[SETUP](./SETUP.md)**\n\nThe `Raspberry Pi` runs the latest Raspbian OS, based on Debian 11 Bullseye.\n\nBecause Raspbian switched recently from Buster to Bullseye, there are still many bugs, especially regarding KMS drivers.\n\nFor now, in order to use the touchscreen, you must replace line 62 of `/boot/config.txt`: `dtoverlay=vc4-kms-v3d` by `dtoverlay=vc4-fkms-v3d`.\n\nThis switches from KMS drivers to Fake-KMS drivers, resolving the uncatched touch-events problem.\n\nThe sound also seems to be a problem: when using a microphone attached to a webcam, depending on the brand and the drivers, the microphone may be recognized but no sound is catched. For now, the only solution is to use an external microphone, or a camera that happens to have a compatible microphone.\n\n## Hardware\n\nAlmost all of the hardware used in this project is exchangeable with any other that the users consider fit or easier to acquire.\n\nAll we aim to do in this section is to present the hardware that we have selected and tested in our prototype.\n\n- **Controller**: Raspberry Pi 4 B with 4 Go of RAM DDR4 (screen+rpi) ~155€\n- **Touchscreen**: 7\" capacitive touch screen\n- **Case**: a suitable case for the touch screen and the raspberry attached to it\n- **Camera \u0026 Microphone**: Webcam USB Chat Webcam 1080p Full HD (SANDBERG 134-15) (for now the microphone of the webcam doesn’t work) ~35€\n- **Speakers**: LOGITECH S120 Speaker (PC, stereo, S120)  ~15€\n\nFeel free to add your tested hardware **[here](./docs/hardware_tested.md)**\n\n\n## Deployment\n\nFor the deployment setup and launch, please see the following **[ReadMe](./staging/README.md)**\n\n## Contributors\n\nThis project is an MVP developed by 3 MEng Students from the **Paris Digital Lab** a digital innovation program of CentraleSupélec.\n\nThe team is composed of:\n\n**Mohamed Khairallah Gharbi \\\nArthur Naudy \\\nSimon Maréchal**\n\n## Contributions\n\nThis project is intended to be community-driven, so any PR is welcome !\n\n## License\n\nThis work is released under the `MIT License`.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenfun%2Fjitsi-box","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenfun%2Fjitsi-box","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenfun%2Fjitsi-box/lists"}