ClassDojo: Virtual Classroom Management Tool With PubNub
A teacher can spend up to 40% of their time managing the behavior of their students rather than teaching. ClassDojo is a virtual classroom management tool that uses basic game mechanics and reward & punishment principles to aid teachers in the classroom. ClassDojo allows teachers to give students points for good behavior or subtract points for bad behavior. Points earned or docked can be displayed in real-time to students via a web or mobile device, with the option of displaying students’ standings on a smartboard or projector.
Why is real-time important to ClassDojo?
In the classroom, it’s essential to have a reliable real-time communication between devices. When dealing with a class room full of students with short attention spans, devices need to be able to signal between each other as quickly as possible. Otherwise, you’re losing the attention of that entire class.
What business challenge did PubNub solve for you?
PubNub resolved ClassDojo’s issue of build vs. buy: would ClassDojo devote several resources to building and maintaining their own custom solution in-house, or simply plug into the PubNub Real-Time Network? ClassDojo needed to scale real-time communications for tens of thousands of users on thousands of devices.
"We didn’t know whether we should hire people to do that, whether we’d have to increase the size of the team, and eventually we just sat down and thought, ‘this isn’t the core of our business is about. We shouldn’t really be spending loads of money and time trying to make real-time work, when we should be focusing on our own business challenges. Real-time was a requirement for our business, but not a business challenge that we should have to solve."
Liam Don, Co-founder and CTO of ClassDojo
Why PubNub?
ClassDojo had originally built their own solution, but soon ran into issues with the unique nature of schools and school networks. Schools have old fashioned networks, use outdated browsers, and have proxy servers and firewalls that block a fair amount of traffic. Experimenting with WebSockets, ClassDojo found that 50% of users couldn’t use the real-time features on the school’s network. Because PubNub supports long polling, ClassDojo was able to make themselves compatible across all school networks.
"When we were looking to do this in house, we had a load balances holding open sockets. How do you tune your servers to handle that many concurrent connections? What do we do? We're trying to build a consumer education product, not a whole new real-time infrastructure."
Reliability was another key factor. ClassDojo needed a globally scaled and redundant network to ensure that all messages got where they needed to go, the instant they were sent. With thousands of users, every message counts.
"When a teacher gives a feedback point on ClassDojo, it calls PubNub and sends a popup. Since we started, we sent over a billion of those, all through PubNub. PubNub allows us to scale up to hundreds of thousands of concurrent connections with no problems at all."
What PubNub Services Do You Use?
ClassDojo uses many different PubNub real-time features across their application. With PubNub, ClassDojo has built a real-time communication layer for messaging between teachers and parents, as well as creating an interactive dashboard for students. In addition to PubNub's data streaming functionality, Presence allows ClassDojo users to see who is and how many people are online at a given time, specifically with their chat feature. Class Dojo also uses Multiplexing, allowing one connection to a server to pull from multiple channels. This enables them to filter out different events and give end users full control over what channels they have access to.
Implementing the PubNub Platform
"It was really, really easy to implement it, and that was another reason we chose to go with it. Even though we started using PubNub in the early days, they already had a load of libraries written"
Don
Because ClassDojo needed to work across a wide variety of platforms, from web, to iOS, to Android, they needed a real-time network provider that would support as many platforms as possible. Implementation was as easy as dropping in the library and adding a couple lines of code. That tied in with PubNub’s dedicated support made integration seamless.
"Integration was really easy. We never had to worry about scaling, about spinning up servers, about how many people are online right now. We just don’t have to worry about that."
"You always have this prioritization problem when you’re working on a product like ours, and you have a small team like ours. It’s like, what do you build? If you can reduce the number of cycles it takes to build something, which in this case is what PubNub has done, then it becomes a much easier decision to build those features"
Don