[haiku-development] Re: GSoC 2020

  • From: "Adrien Destugues" <pulkomandy@xxxxxxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx, shekharhiran@xxxxxxxxx
  • Date: Mon, 20 Jan 2020 13:15:56 +0000

Hi,

I am a Ph.D. student working on distributed systems and software security. 
Came across the proposal
of 'Better XMPP instant messaging client for Haiku'. I have prior experience 
building a chat
application using the XMPP protocol and would like to apply as a GSoC student 
to improve Renga.

I wanted to know what is the procedure is and what are the prerequisites I 
need to finish up on
before applying.

Hi!

First, I must mention that Google has not yet decided which projects will be 
part of Google Summer
of Code.
So, we may or may not be selected this year. Prepare accordingly.

Anyway, to work on this project you need to setup Haiku (either on real 
hardware or a virtual
machine)
and make sure you can compile Renga from sources (which are at
https://github.com/haikuarchives/renga).

As part of your GSoC application (as documented at
https://www.haiku-os.org/community/gsoc/2020/students)
you will need to submit some "sample code" to show that you have the needed 
skills (compiling and
making
changes to a C++ program, etc). There are several issues open in Renga 
bugtracker, you could for
example
work on one of them as a code sample.

The project will involve a mix of:
- Implementation of XMPP protocol, either in Renga code or in the gloox library 
(to which patches
can be
upstreamed)
- Haiku user interface programming
- UI and UX design to make a nice and easy to use client
- Deciding on a roadmap for support of modern XMPP features and good 
interfacing with other clients
(typically, using the same account with Renga on Haiku and Conversations on 
Android is a typical
use case), and with servers (making sure we play nicely with the features 
available there).

The idea is to start with the basic features expected from an IM client (group 
and user-to-user
chat,
file attachments, avatars, discovering chatrooms, etc) and then, if time 
allows, go with more
advanced
things such as shared whiteboard, message reactions, maybe voice chat.

--
Adrien.


Other related posts: