WEBVTT

00:00.000 --> 00:08.640
It has been involved in the Big Lebuton project for over 10 years.

00:08.640 --> 00:10.240
So we are really passionate about this.

00:10.240 --> 00:13.760
We have Stephen Muggy, who is the executive director of the Big Lebuton Foundation.

00:13.760 --> 00:16.400
We're all wearing the same shirts.

00:16.400 --> 00:20.760
Okay, so Big Lebuton, it is a virtual classroom.

00:20.760 --> 00:27.440
You can think of it as a web conferencing, a video chat, and others found in 2008, a 7.7K

00:27.440 --> 00:29.240
get the stars on GitHub.

00:29.240 --> 00:31.600
So we've been around for a while.

00:31.600 --> 00:34.840
Funny thing, there's these other products in the market.

00:34.840 --> 00:39.080
Sometimes people say that Big Lebuton is the free open source of equivalent of Zoom.

00:39.080 --> 00:44.760
Every here's Zoom, not here, probably, but we think of it a different way.

00:44.760 --> 00:51.840
We think Zoom is the paid, a close source equivalent of Big Lebuton, because we came first.

00:51.840 --> 00:56.920
So let's just say the world needs more Big Lebuton, more collaboration.

00:56.920 --> 01:01.000
So we actually went for a very specific market segment when we did Big Lebuton.

01:01.000 --> 01:04.840
That was online learning, synchronous learning, distance education.

01:04.840 --> 01:09.880
So we say that Big Lebuton is a virtual classroom that provides built-in tools for active

01:09.880 --> 01:14.600
learning and live analytics to ensure every student learns.

01:14.600 --> 01:17.000
There's no back of the classroom with Big Lebuton.

01:17.000 --> 01:18.400
It's not dependent on webcams.

01:18.400 --> 01:19.640
The students are sharing webcams.

01:19.640 --> 01:22.880
You can still see how they're doing.

01:22.880 --> 01:26.960
It's obviously free opens for software and it's been built into Moodle, Canvas,

01:26.960 --> 01:31.280
Camille, Open Social, and many other platforms.

01:31.280 --> 01:36.240
So two examples, for example, so if anyone knows that graph, that was a graph on a graph

01:36.240 --> 01:38.080
from Beta Woodenberg.

01:38.080 --> 01:42.720
So during COVID, they had 3,000 schools, they ran 4,000 Big Lebuton servers, and they

01:42.720 --> 01:46.280
peaked at 185,000 concurrent teachers and students.

01:46.280 --> 01:47.280
All with open source.

01:47.280 --> 01:52.240
We didn't even know about it until they contacted us.

01:52.240 --> 01:56.000
As of that, and a lot of other adoption worldwide, look lies in 65 languages.

01:56.000 --> 01:58.960
Big Lebuton was built into the core of Moodle.

01:58.960 --> 02:02.400
The world's most popular learning management system.

02:02.400 --> 02:03.640
But we have a problem.

02:03.640 --> 02:06.520
We have a product and how do we move it to a platform.

02:06.520 --> 02:10.120
I'll turn over to you, Chego.

02:10.120 --> 02:11.760
Thank you.

02:11.760 --> 02:22.200
So before the version that we are launching by the end of February,

02:22.720 --> 02:23.840
that is 3,0.

02:23.840 --> 02:27.160
So before 3,0, in order to customize Big Lebuton,

02:27.160 --> 02:29.560
you had to modify the service code.

02:29.560 --> 02:32.800
You had to build the package that you modified,

02:32.800 --> 02:37.720
and you had to deploy these package in servers.

02:37.720 --> 02:43.240
And this was a bit complicated because sometimes one little customer

02:43.240 --> 02:46.840
wants a little change, and you had to run a server for this customer,

02:46.840 --> 02:50.280
because you was running customized service codes.

02:50.360 --> 02:53.840
And of course, even if you was doing that,

02:53.840 --> 02:57.480
you had to reapply the changes every time a new version

02:57.480 --> 02:59.720
of Big Lebuton service code was available.

02:59.720 --> 03:03.800
It was a bit traumatic for the developers.

03:03.800 --> 03:06.560
So with Big Lebuton 3,0,

03:06.560 --> 03:10.680
we are introducing Applegene architecture.

03:10.680 --> 03:15.080
And with the plugin architecture, now you can create a plugin,

03:15.080 --> 03:18.600
host it locally or externally.

03:18.600 --> 03:23.840
In able the plugin via the session creation API call,

03:23.840 --> 03:27.240
and the end, of course, the developers are not

03:27.240 --> 03:30.080
having to write the same code again and again.

03:30.080 --> 03:32.280
And the important thing about this architecture

03:32.280 --> 03:37.080
is that one server can run different plugins in different meetings.

03:37.080 --> 03:41.000
So you don't need to have customized a server,

03:41.000 --> 03:44.160
or you don't need to have the same plugins running

03:44.160 --> 03:46.000
for all the classrooms.

03:46.000 --> 03:47.520
So it's really important.

03:49.360 --> 03:53.880
So what a client plugin can do in Big Lebuton.

03:53.880 --> 03:57.000
It can access real-time session data.

03:57.000 --> 04:01.680
It means that a plugin can observe the current is light text,

04:01.680 --> 04:05.400
or the number of participants, or if there is someone

04:05.400 --> 04:11.120
with the hand raised and the plugin can react to this.

04:11.120 --> 04:14.040
There are some predefined methods.

04:14.040 --> 04:17.200
Like you can say, yeah, use the current is light,

04:17.200 --> 04:19.720
and then you have it ready to go,

04:19.720 --> 04:22.640
or you can write custom GraphQL queries.

04:22.640 --> 04:27.760
The GraphQL queries are going to run obviously

04:27.760 --> 04:32.360
in a secure way, limited to the context of the session

04:32.360 --> 04:33.440
that a plugin is running.

04:33.440 --> 04:35.600
So it's pretty secure as well.

04:35.600 --> 04:40.360
It's the same way that the Big Lebuton UI in 3.0

04:40.360 --> 04:42.400
is consuming data from GraphQL.

04:42.400 --> 04:46.240
So we expose this data layer to the plugins as well.

04:46.240 --> 04:49.560
So it's really powerful.

04:49.560 --> 04:52.480
We enable real-time user interactions, which

04:52.480 --> 04:54.880
means that a plugin running in a browser can

04:54.880 --> 04:57.360
publish to a data channel, and this data

04:57.360 --> 05:01.120
is flowing to the other participants in the same session,

05:01.120 --> 05:02.480
running the same plugin.

05:02.480 --> 05:08.760
So the plugin can create, it can exchange any data, it once.

05:08.760 --> 05:11.640
It also allows you to query and control the UI.

05:11.640 --> 05:14.560
Let's say the plugin wants to reduce the volume

05:14.560 --> 05:19.280
of the external video player, or it wants to reduce it automatically.

05:19.280 --> 05:23.480
A plugin can do it, so it can perform operations

05:23.480 --> 05:24.960
on behalf of the user.

05:24.960 --> 05:27.040
We can Big Lebuton, of course.

05:27.040 --> 05:29.560
And you can customize chat rendering.

05:29.560 --> 05:32.280
We have an example of a plugin that

05:32.280 --> 05:34.120
do code highlight.

05:34.120 --> 05:37.000
So you can customize how the chat message

05:37.000 --> 05:37.680
are rendered.

05:37.680 --> 05:40.840
You can add more features on the chat.

05:40.840 --> 05:41.680
And much more.

05:41.680 --> 05:49.360
We have more than 80 APIs ready for use, it's really powerful.

05:49.360 --> 05:53.440
So we are launching Big Lebuton 3.0.

05:53.440 --> 05:55.400
We've some plugins that we created.

05:55.400 --> 05:58.120
But obviously, the idea is that the community

05:58.120 --> 06:00.420
will create plugins, and the universities

06:00.420 --> 06:02.440
will be creating plugins as well.

06:02.440 --> 06:06.280
So the plugins we are going to chip in Big Lebuton 3.0

06:06.280 --> 06:09.760
is the peak random user.

06:09.760 --> 06:11.480
Sometimes you are in a meeting, and you

06:11.480 --> 06:14.080
want to decide who starts talking.

06:14.080 --> 06:16.560
So you can use it in our daily meetings.

06:16.560 --> 06:18.760
So we click OK, pick a random user.

06:18.760 --> 06:21.520
So it says OK, Tiago says now, the other user.

06:21.520 --> 06:24.560
So it ensures that all the users will

06:24.560 --> 06:28.960
have the change to speak.

06:28.960 --> 06:31.520
Share website link as a content.

06:31.520 --> 06:34.560
So let's say you want to share a Google Docs document,

06:34.560 --> 06:35.160
or something.

06:35.160 --> 06:38.680
You can share, and everyone will get the same page rendered

06:38.680 --> 06:42.560
within a Big Lebuton, and more.

06:42.560 --> 06:46.960
So here, I'm showing you how the peak random user

06:46.960 --> 06:48.320
displays in Big Lebuton.

06:48.320 --> 06:50.800
As you can see, the peak random user

06:50.800 --> 06:52.160
button is here.

06:52.160 --> 06:55.280
And it's integrated in the UI.

06:55.280 --> 06:57.800
Someone that doesn't know it's a plugin.

06:57.800 --> 07:00.080
It thinks it's in Big Lebuton itself.

07:00.080 --> 07:04.040
So it has a seamless UI integration.

07:04.040 --> 07:10.920
And this is the closet captions plugin,

07:10.920 --> 07:13.400
where someone can be writing the text.

07:13.400 --> 07:19.040
And so others can read instead of listening.

07:19.040 --> 07:24.640
This is the shared website link as content as well.

07:24.640 --> 07:27.480
So here, I'm listing some ideas.

07:27.480 --> 07:30.480
Potential examples of what you can do if a plugin.

07:30.480 --> 07:33.880
So you can have AI power transcription.

07:33.880 --> 07:37.600
So instead of someone typing, you can integrate with an LLM,

07:37.600 --> 07:41.800
or something, and the API can do it for you.

07:41.800 --> 07:44.040
CRM and LMS integration.

07:44.040 --> 07:50.160
Imagine you join from a CRM into a call with a customer.

07:50.160 --> 07:53.800
And you can show within Big Lebuton the last interactions

07:53.800 --> 07:55.040
you had with this customer.

07:55.040 --> 07:57.560
Because you can add anything in the Big Lebuton AI

07:57.560 --> 08:01.480
with this powerful plugin architecture.

08:01.480 --> 08:04.480
Also, telemedicine and have the same thing.

08:04.480 --> 08:07.440
If you are joining from a software where

08:07.440 --> 08:12.720
you do online consultancy, the doctor can see the previous prescriptions

08:12.720 --> 08:14.720
and things like that, all in the same screen, which

08:14.720 --> 08:16.760
is really powerful.

08:16.760 --> 08:19.360
And obviously, educational.

08:19.360 --> 08:22.640
We are integrating Big Lebuton with H5B, which

08:22.640 --> 08:28.240
will open to several package that allow gaming

08:28.240 --> 08:32.080
and engaging tools for the classrooms.

08:32.080 --> 08:35.920
So how you can build a plugin?

08:35.920 --> 08:38.640
You clone the SDK repository.

08:38.640 --> 08:42.840
You select a simple plugin as a starting point.

08:42.840 --> 08:46.120
We have several simple plugins there.

08:46.120 --> 08:50.320
And you customize it in the way you want.

08:50.320 --> 08:53.320
You build the plugin using the provided command.

08:53.320 --> 08:55.120
It's a simple command.

08:55.120 --> 08:57.040
And then it generates two files.

08:57.040 --> 08:59.680
A JavaScript bundle and a manifest file.

08:59.680 --> 09:04.200
You just need to host these two files in any HTTP as server.

09:04.200 --> 09:07.920
And when you are creating the Big Lebuton session

09:07.920 --> 09:11.560
from an API call, you pass the manifest URL

09:11.560 --> 09:13.640
and then everything happens.

09:17.960 --> 09:24.680
So this is the Big Lebuton plugin SDK repository.

09:24.680 --> 09:26.120
Here is a list.

09:26.120 --> 09:27.320
It's just the first page.

09:27.320 --> 09:29.560
I think we have four pages of these examples.

09:29.560 --> 09:32.200
So of course, I'm not going to explain any of them.

09:32.200 --> 09:38.440
But basically, you have examples showing each hook of the API.

09:38.440 --> 09:41.640
So it's anything you want to do.

09:41.640 --> 09:46.280
As a plugin, you will find an example showing you how to do.

09:46.280 --> 09:49.600
And here, I don't know if there are some react developers

09:49.600 --> 09:51.680
here, but basically I'm showing you how

09:51.680 --> 09:54.040
is the code.

09:54.040 --> 09:58.680
We created it in a way you have a setter.

09:58.680 --> 10:03.720
So whenever your plugin is loaded, you receive this setters.

10:03.720 --> 10:07.520
And you can say, yeah, set presentation to bar items.

10:07.520 --> 10:13.400
So you pass an array of items for this setter.

10:13.400 --> 10:15.800
And you get a button.

10:15.800 --> 10:18.960
So here in this example, I'm creating a two bar button

10:18.960 --> 10:21.240
on the presentation area.

10:21.240 --> 10:23.080
It's a really simple example.

10:23.080 --> 10:27.360
But a more powerful example could be, OK, look,

10:27.360 --> 10:29.080
the current is light text.

10:29.080 --> 10:31.080
If you find something in this slide,

10:31.080 --> 10:34.960
like a special director or a YouTube link, for example,

10:34.960 --> 10:37.480
add a button on the toolbar that when you click,

10:37.480 --> 10:39.760
it plays the YouTube video.

10:39.760 --> 10:44.560
So it would be just more 10 lines of code in this plugin

10:44.560 --> 10:45.120
architecture.

10:45.120 --> 10:47.480
So it's really simple to develop.

10:47.480 --> 10:51.760
We want to really make the learning curve as a smaller

10:51.760 --> 10:55.680
as possible in order to create a plugin.

10:55.680 --> 10:59.840
So here, you can set the presentation to bar items.

10:59.840 --> 11:01.680
Here, we are passing one item.

11:01.680 --> 11:05.160
And after 10 seconds, we are passing an empty array.

11:05.160 --> 11:07.520
So I'm showing you how to remove things.

11:07.520 --> 11:11.240
So the plugins have its own scope.

11:11.240 --> 11:13.600
So let's say you have two plugins running.

11:13.600 --> 11:16.440
And one plugin set, add the button,

11:16.440 --> 11:18.600
and another plugin, add the button.

11:18.600 --> 11:21.880
And if this first plugin defines an empty array,

11:21.880 --> 11:24.880
when defining, it's going to remove the button only

11:24.880 --> 11:26.080
of the plugin itself.

11:26.080 --> 11:31.560
So it have different partitions in the plugin core.

11:34.680 --> 11:37.200
Yeah, so it's pretty much it.

11:37.200 --> 11:41.600
Here, we are inviting you to join our community.

11:41.600 --> 11:42.600
We have a mailing list.

11:42.600 --> 11:44.480
We have the GitHub.

11:44.480 --> 11:45.280
And that's it.

11:46.040 --> 11:47.040
Yeah.

11:53.040 --> 11:56.200
All right, we have three minutes left.

11:56.200 --> 11:57.040
So feel free.

11:57.040 --> 11:58.000
If anyone has any questions?

12:05.880 --> 12:07.800
Any questions about the plugins?

12:07.800 --> 12:11.720
So it will release, big loop on 3.0 or release end of February.

12:11.720 --> 12:13.920
As Diego said, it will come with lots of examples.

12:13.920 --> 12:15.720
You can download it, try it out.

12:15.720 --> 12:17.960
The whole part was to turn our product into a platform

12:17.960 --> 12:19.520
that other people have built upon it.

12:19.520 --> 12:22.480
You can leverage our 16 years now of building

12:22.480 --> 12:25.000
the collaborative application.

12:25.000 --> 12:26.680
There's a lot of stuff that is in big loop

12:26.680 --> 12:28.480
button that's open source as well.

12:28.480 --> 12:30.840
Most recently, we're moving to the user's live kit

12:30.840 --> 12:32.520
for the audio and video.

12:32.520 --> 12:33.760
I said the scalability.

12:33.760 --> 12:35.240
We talked about the plugin.

12:35.240 --> 12:37.040
And there'll also be a new user interface

12:37.040 --> 12:38.600
as coming out this summer.

12:38.600 --> 12:42.720
So if we present again next to us, it will be almost

12:42.720 --> 12:44.440
like it will look like a whole new product.

12:44.440 --> 12:47.400
So we are very passionate about what we're doing

12:47.400 --> 12:50.240
because it's improving education for the world.

12:50.240 --> 12:54.160
And as a speaker who's before us, talking about climate change,

12:54.160 --> 12:56.960
education is one of the sustainability development goals

12:56.960 --> 12:58.240
for United Nations.

12:58.240 --> 13:00.640
And it is underpinning almost all of the activities

13:00.640 --> 13:01.640
you want to do.

13:01.640 --> 13:03.400
Yes, we are all intelligent people,

13:03.400 --> 13:04.720
but we need to be intelligent people

13:04.720 --> 13:07.280
that can work, collaboratively with other people.

13:07.280 --> 13:10.840
Because the world's problems, they can't be solved by an individual.

13:10.840 --> 13:13.040
They can only solve by communities, by groups,

13:13.040 --> 13:16.120
by governments working together.

13:16.120 --> 13:18.120
All right, thank you.

13:18.120 --> 13:20.880
APPLAUSE

13:20.880 --> 13:22.960
There was a question.

13:22.960 --> 13:24.440
Oh, my God, yes.

13:24.440 --> 13:27.080
Are you planning on making a platform for sharing

13:27.080 --> 13:29.760
plugins on climate change with the language?

13:29.760 --> 13:31.680
Jacob, do you want to say?

13:31.680 --> 13:34.120
Yeah, this I forgot to mention.

13:34.120 --> 13:37.280
The next step is creating the, we don't know

13:37.280 --> 13:41.120
where we're going to call it as a plugin platform,

13:41.120 --> 13:43.400
plugin, star or plugin directory.

13:43.400 --> 13:45.400
But yeah, we're going to create it.

13:45.400 --> 13:50.120
And we will enable you to submit open source plugins

13:50.120 --> 13:54.680
and also paid plugins because we want developers to succeed.

13:54.680 --> 13:57.440
So why not we allow you to create a paid plugin

13:57.440 --> 14:01.600
and benefit the whole ecosystem with good quality software, as well.

14:01.600 --> 14:03.600
So yeah.

14:03.600 --> 14:04.800
All right.

14:04.800 --> 14:06.800
Thanks again.

14:06.800 --> 14:09.040
APPLAUSE

