Happy Hour¶
Happy Hour is a virtual mixer for large groups, from a dozen to hundreds.
With twenty people in one video chat, only one person can talk at a time. This feels awkward, because in real life we chat in small groups. Happy Hour gives you many small video chat "tables", allows you to see who is at each one, and easily hop between them.
This was done as a fun experiment, to help others during the Covid-19 quarantine. I got to learn a lot of new technologies in the process. Jitsi Meet video conferencing is the only reason this was possible at all. It was also my first time working with WebSockets, and Socket.io made it pretty simple. And although I'm already AWS certified (Solutions Architect - Professional), this was my first exposure to Lightsail, which I found refreshingly simple (and cheap!) for this kind of hobby project. The source code is available on Github.
Front end¶
- Jitsi Meet's iframe API for the embedded video chat component
- Socket.io for bidirectional communication with the server
- Vue.js for dynamic HTML components
- JavaScript to tie all the above together
- Pure.CSS for baseline styling
Back end¶
- Python 3 for the server
- aiohttp for asynchronous web serving
- python-socketio for bidirectional communication with the clients
- Monit to keep it running
Hosting¶
- AWS Lightsail for the virtual server
- AWS Route53 for DNS
- Nginx for the reverse proxy
- Certbot for Let's Encrypt SSL certificates
- GoAccess for analyzing server logs