[MUSIC PLAYING]
PETER FRIESE: Hey, everyone.
My name is Peter.
I'm a developer advocate on the Firebase team.
And I'm excited to be here today with Daniel from Classkick.
Hey Daniel, why don't you introduce yourself.
DANIEL JAMES: All right.
Hey there, Peter.
I'm excited to be here today.
And I would love to share more about why people love Classkick
so much.
First off, I want to share a little bit about myself
as you requested.
I'm Daniel James.
A graduate at the University of Tennessee Chattanooga.
I hold a bachelor's degree in mechanical engineering.
And I'm addicted to building apps.
At Classkick, I maintain the iPad application.
And because of this position, I often interface with Firebase.
PETER FRIESE: Awesome.
Cool.
So as far as I understand, Classkick
is a tool, and application, that makes
it easier for teachers to teach their students at school
and also virtually.
So why don't we go into how that looks
like from an user's perspective first
before we go into the technical details.
So maybe we can start with how Classkick looks
like for a student, Daniel.
Can you show us?
DANIEL JAMES: Yeah, Peter.
I would love to show you the student's point of view.
All right.
So if you look at my demo here, we
see that the web client is showing
the student's perspective.
The student has just logged into class for today.
And they have a message that says, good morning.
I have a fun exercise before today's lesson plan
on slide two.
So now the student can go to this slide,
and they can interact with the lesson plan.
The request is to move all the squares to reveal
your group for the day.
And as a student does this, it updates
for the teacher in real time.
And the teacher will know when they're
ready to begin the lesson plan.
PETER FRIESE: OK.
Cool.
Yeah.
So I think in the background we saw the teacher's perspective.
So maybe we can look at that next.
And you can tell us a little bit about what the teacher can do,
and how the teacher can interact with the students.
DANIEL JAMES: Yeah.
Yeah.
Sure.
So as you noticed, this is the teacher's point of view.
And this is on the iPad.
So you can imagine a teacher just
in the morning with their iPad watching over a full classroom
of students.
So this is me, the student, that was on the web client.
And there could be a lot of me there.
Could be Daniel, Scott, Kayla.
And the teacher is watching over the classroom,
and they can see where each student is at
and the assignment.
So as I was clicking through the assignment the teacher would
have known, oh, Daniel has came into class.
Or maybe not came in the class.
Maybe Daniel is at home or maybe Daniel is on a road trip.
But Daniel has logged into the assignment.
And I can see that Daniel is on slide one here.
And when Daniel interacts with the assignment,
I can see exactly what my student is doing
and that he's ready for work.
PETER FRIESE: OK.
Cool.
So that also means that the students can probably
ask for help if they get stuck.
So how does this work?
DANIEL JAMES: So from the student's perspective,
let's say I need help.
Say, I can't figure out this assignment.
So what I would do is I would click on this icon
up here in the top.
Right.
And I have two choices.
I can either ask for help, or I can ask the teacher
to check my work.
So if I want help, I can click to raise my hand.
And you'll see that on the teacher's client,
the hand has been raised and this teacher can
respond to the student by clicking into their slide.
And give them whatever help they see fit.
PETER FRIESE: Cool.
Yeah.
This looks very useful, especially
if you imagine you've got a class full of students
and everybody might be progressing
at a different pace.
And then some people might get stuck.
And then it's easier for the teacher
to see where they need to help.
Yeah.
That's really neat.
So in the background, I think I already
spotted the Firebase Console.
So now I'm really curious how you use Firebase
to make this magic happen.
I'm guessing that you use the Realtime Database, Daniel.
Is that right?
DANIEL JAMES: Yes, Peter.
That would be a really good guess.
The Realtime Database really fit our needs for this use case.
And as you noticed, we can use real time
to save some properties in a key value
store about the experience that's going on in the Canvas.
So when I click, Please Help, you
can see that Firebase Realtime Database has
this very convenient feature that highlights
what information is changing.
And so on the help request, when I tap Please Help,
all the information gets populated.
And both clients can see it.
PETER FRIESE: OK.
Cool.
So they're both subscribed to this note.
Or to multiple notes in the teacher's case.
So that the client can say, student A and C
raise their hands.
And then as the teacher goes to help them,
then they can probably mark that they've
helped the students, which will lower the hand.
I guess virtually.
DANIEL JAMES: Yes, that's exactly right.
So all of the hands can raise.
And as teachers click through, and help a student,
and mark on their Canvas, it automatically
lowers the hand for the teacher.
At Classkick, we really like to automate whatever we can
for the teacher to make their lives easier.
PETER FRIESE: So I think you mentioned
that you support a variety of different elements
that you can put on the Canvas to make
it more engaging for students.
So which kinds of elements are we talking here?
DANIEL JAMES: Yeah.
Absolutely.
At Classkick, we've been working to expand our import features.
So for now, a teacher can highlight text.
Can draw or write on the Canvas.
The teacher can add a text box.
We can add a line for geometry.
Math teachers really use this.
You can speak to your students with an audio element.
You can add a clip to a YouTube video or any other link
you want to.
Or an image from your device.
We have these things called manipulatives
that are really interesting.
These boxes are actually manipulatives,
which allow you to do some fun auto grading features.
And then also we have a multiple choice and a fill in the blank.
PETER FRIESE: Oh, cool.
All right.
So given that these are very, very different
and probably have loads of different attributes,
how do you store these in the Realtime Database?
That's what I want to know.
DANIEL JAMES: Well, all these attributes are different.
It's not really of a major concern
because we rely heavily on the Realtime Database
to store things like the location and the relationship
to maybe other elements on screen.
So we actually use SQL to store elements,
and then we use Firebase to link to that element.
And store metadata about that element.
PETER FRIESE: Oh, OK.
OK, cool.
So it's actually two different systems
that you use for storage.
So the Realtime Database mostly is
for achieving this there's real time
collaboration on the canvas.
And then storage is somewhere else.
DANIEL JAMES: Yes, that's exactly right.
PETER FRIESE: Cool.
So yeah.
I imagine that this must be a really useful tool for teachers
for being able to run a class with loads of students,
and being able to see what's going on.
And probably it's also great for students
to basically silently raise their hand
without their classmates being able to see
that they had a question.
And maybe being ashamed of asking yet again.
So yeah.
I really like this.
DANIEL JAMES: If you think about some of the features
that we have, not only can students
raise their hands silently, but other students
can help students.
So we have a peer feature to allow
students that want to participate more
in class to help each other.
And yeah.
So when students raise their hands,
those hand raises are persistent for a long period of time.
So imagine how many students raise their hand in class,
and then put it down kind of disgruntled
that the teacher didn't respond.
But with Classkick, when a hand is raised,
that's persisted in the Realtime Database.
And the teacher will always have an opportunity
to help that student out.
PETER FRIESE: That's brilliant.
So in a normal class, you would probably
have 20 to 30 students I'm guessing?
DANIEL JAMES: Yeah.
About your typical classroom size.
20 to 30 plus.
PETER FRIESE: How far did you roll out Classkick?
Is it just being used in the United States?
Or is this a worldwide thing now?
DANIEL JAMES: This is a worldwide thing.
We have a huge audience in Singapore.
We have an audience in Africa, Australia.
Any continent you name, we're probably there.
PETER FRIESE: OK.
Cool.
Yeah and I'm guessing that it was hugely beneficial
throughout the pandemic.
DANIEL JAMES: Yeah.
This was very beneficial during the pandemic.
It allowed teachers to stay connected with their students
as they weren't allowed to return to the schools.
And the collaboration feature made sure
that lesson plans are being completed,
and that kids weren't being left behind.
PETER FRIESE: Yeah.
Really, really cool.
Yeah it's great to see how technology helps
to solve real world problems and make the world
a better place one step at a time.
Yeah.
Daniel, thank you so much for being on the show
and taking us behind the scenes of Classkick,
and how you use the Realtime Database to build it.
DANIEL JAMES: Yeah.
Any time.
Thanks for having me.
PETER FRIESE: And that was another episode
of Firebase stories where we show you
how developers like yourself build applications
that make the world a better place one step at a time.
Thanks for watching.
And I will see you the next time.
[MUSIC PLAYING]