 Okay, hi. I'm Vasudha and I'm going to be talking about my DSUG project this year. Cool. I don't know why it isn't going full screen. Okay. So, Rukola is a chat application for Rocket Chat. And Rocket Chat is a server and Rukola is a client. So, we're just creating an interface for Rocket Chat client. So, that's the logo for Rukola and Alex made it from hearing coming. You know, it's a cut out image of a leaf that represents Rukola there. So, firstly, where did the name Rukola came from? Anyone? For the non-Italian people here. For the non-Italian people. Okay, so anyone? Yeah. Since we're using Rocket Chat, so we're building an interface for Rocket Chat and in Italy there's a salad called Rocket Salad. And Salad in Italian is called Rukola with a C. But since we're using Qt, we have Rukola with a Q. So, that's how Rukola got its name. So, a bit about Rocket Chat. It's a web server, web chat server. It's developed in JavaScript and it's built over Meteor framework. So, it's like there's this Meteor layer and then there's Rocket Chat layer and then there's this Rukola layer. So, that's how it goes. Then what makes Rukola's backend? So, there are these classes. By these classes, I mean to show you the features we have in Rukola. So, there's this Rukola class. It is the Singleton class. It manages all the other classes in Rukola. Then there's the DDP client class. It's a generic interface to Meteor's DDP. DDP is distributed data protocol. So, we send messages through DDP client class. Then there's a message model class. There's a message object. And this class handles the message object. The message object contains the user, time of sending, and all the fields which a message shouldn't contain, normal fields. Then similarly, there's a room model. Rooms are channels which you subscribe to. Basically, Wiki2Learn will use Rukola for their own website to discuss the content fidelity, whether it's right or not, or user have any conflicting opinions. So, that's why we have Rukola for Wiki2Learn. But it's a general application, generalized and abstracted, so anyone can use it really. Then there's a docket chart backend class. We have subscriptions in this. Users can subscribe to channels, or rooms, or messages. Then there's a message queue class which handles network management. So, network management is when a user is offline, and he sends messages. So, the messages are stored in a queue. When it comes online, they'll be stored in the backend, and will be sent automatically when the user comes online. So, that's what the message queue class does. Then we have a notification class. It's currently there in desktop, but it will soon be on Android 2. We're using FCM for notifications on Android, and we have system TA for notifications on desktop. And there's a screenshot there which says this deserves a screenshot because it was the first time my code for screenshot ran. So, my mentor said that, let's take a screenshot. And then we have an authentication class, but unfortunately, Rukola doesn't provide an API for having federated login. We can't have OAuth in Rukola as of now. Then we have the user interface. So, currently, this is the login screen. We haven't yet worked on the user interface. So, please be kind. This is the login interface. If you type in the service demo.rocket.chat, your username and password, you'll sign in. You can see the rooms on the left, the username and the logout button. Then this is the room. I know it looks like a bit like IRC right now, but we'll start to working on UI soon. And not just rocket chat, you can use it for any other site too. Like if you fill in the server as chat.wikitlearn.org, you'll sign in to rooms from your wikitlearn chat. And there you have those messages. So, it's really an abstracted project, and you can use it for your own purpose. And for the UI, we're planning to use Kirigami, as Marko told all the features. There are a lot of features. As you can see in the screenshot, the buttons are really small on Android currently. So, you can't really see anything or use anything. So, for a cross-platform consistent code, we'll use Kirigami. Then future plans, of course, the UI needs a lot of work. It looks kind of spaghetti for now. So, UI, and we want to have support for iOS too. It does run on iOS, but there's some platform-specific features which require different codes. So, we'll need to work on that. And then we'll soon release the cooler on pointer, probably in September or August. So, that's about the cooler. And then there's this quick mockup. I don't know, it doesn't run. So, we log in, but if you type the wrong password, it'll just log out itself. And if you type the right password, it logs in, loads, and shows you the rooms. Then you can check. So, the backend is done for now, and we now need to work in the UI. Okay, that's it. So, if you want to work or contribute to Rukola, these are the Git repos, and you just have to open Qt creator, go to Rukola directory, open the dot profile, and you'll see something like this project structure. I've told you about most of the classes here, and you can see the application, message client, message Rukola class. So, that's it. And you create an account on demo.rocky.chat, and you set the rock and roll. And then there's this last thing, that I need your feedback. Like, it's currently my... It was built from scratch, like this December, and it's been just six months. So, knowledge only grows if shared. That's how Viki2 learned Moto. So, we do need feedbacks. Tell us what you think of Rukola and your plans and how to use it. I already know two students who plan to use Rukola for their own projects. So, if you have anything in mind, come talk to me. That's it. Finally. Any questions or suggestions or feedbacks? Anything for the UI? I know it looks shit right now. So, have you guys thought about creating a telepathy plugin for that? Yes. And... Like Rukola, you can use it for your own server. If you have a server, put in the server, your username and password, and we'll provide you a basic chat application, like which you can work on on a desktop, Android, and probably iOS soon. So, that's what Rukola does. Anyone else? Okay, so I have a question. I'm not exactly familiar with RocketChat, but I assume that it's open source. Yeah, it is. Have you thought about contributing the federated login APIs as a feature back upstream into RocketChat? Not yet. Okay, because I just thought that this would be a brilliant opportunity to... That can be done, but they won't allow just anyone to build an API for them. Exactly. Well, you've made it into KDE. Yeah. It's not a big jump to contribute new APIs upstream into RocketChat, and this would be a pretty good feature because federated login is something that... Yes, we do need it. If you want to integrate with KDE's identity system, and... Yeah. Okay. Cool. Any other questions? Yeah. This is a good summer of code project, correct? Yes. How has your experience been? Well, we've completed the backend. We've yet to work on the UI, and we're taking help from the Kirigami people. I mean, Alex and Marco, they're really, really helpful. They even designed the logo, so I think it's going pretty good for now. I'm Valerie. I know. I read your mails daily. Hi. I get your status report updates. If I may... It's not just about technical, if you're stressed out or if you feel like... Perfect. It's not... I mean, if there's any communication gaps between the mentors and the... because mentoring is something that we take very seriously. We have our own mentor program. My mentor is very amazing. He's super, super, super amazing. I just love him. Ricardo Iconali and Gabriel. So he's, like, very helpful. I haven't seen that humble guy anywhere. Awesome. So I suppose that we're doing mentoring pretty well then, as a... Yeah. Sad he couldn't come best. He had an exam tomorrow. Could you show the repository? What? The repository. I don't understand. Could you show the address of the repository again? Okay, sure.