Online services are playing an increasingly important role as the use of technology in the classroom grows. Teachers use online services to give out assignments, supplement lectures, or perform other activities. While integration of these services improves the efficiency of teaching, there is still one source of inefficiency that is not addressed. If classwork is assigned by a teacher and afterwards discussed upon completion, the teacher must wait until all of the students are done with the assignment. He or she must individually check if each student is done, which wastes a lot of time. There is also an overhead of keeping track of who is done. For ten students, this overhead may be negligible, but for fifty students, it is much more significant. However, if the classwork requires the use of technology, an online service that indicates whether or not these students are done would minimize this wastage of time.
This scenario can also extend to everyday life. A group of friends planning to have lunch together may need to wait for each other to arrive at the restaurant. Online gamers wait for their friends to prepare to play with them. Organizers of an event need to ensure that everyone is ready before starting.
Toggle.club is a real-time online waiting-list web application that aims to eliminate the time spent checking whether or not other people are done with a task. The user can create a virtual waiting room on Toggle.club's website. People can then join that room and indicate whether they are "ready" or not by clicking a single button. The creator of the room can moderate the room by
- "locking" the room to limit participants
- kicking out unwanted participants
- marking all participants as ready
The name of Toggle.club came from its main functionality of "toggling" status and its objective of being fun and simple.
Toggle.club is created using Scala, Play Framework, and Akka, with SBT used as a build tool. The project was developed incrementally, with features built on top of each other. The backend was developed first, with the frontend written afterwards. The server is packaged with Docker and deployed to a server running on Linode.
- A textual, user-indicated status
- Improved handling of rooms
- Detection of offline users
- Room messages
- Chat integration