From Fedora Project Wiki

Improvements on Waartaa

GSoC 2014/Student_application_shilpita

Abstract

The goal of this project is to improve on an already existing open source communication tool, Waartaa. It would involve building and implementing such features that would allow Waartaa to be used as a hub for connecting several IRC servers. It would also involve development of features for personal messaging and video/audio conferencing.


Background

Waartaa is an IRC Client as a service. It supports centralized logging, idling features and unique identification in multiple clients. It involves syncing logs across multiple IRC clients. It ensures that you’ll be always connected to the IRC and capturing IRC logs. Lastly Waartaa is built on Web technologies so it works uniformly on multiple devices. It provides a unique UI and chat interface to make the IRC client more users friendly.


Objective

The three main tasks are:

  1. Building a central hub for searching/reading channel logs for Open Source Communities and projects.
  2. A HTML mobile app.
  3. A video and audio conference facility on top of HTML5 and JS Technologies.

Building a central hub for searching/reading channel logs for Open Source Communities and projects

Building a central space for searching or reading channel logs would help the user to retrieve those messages that had been written in the past or while user was away. Providing channel logs that could be read by user anytime they want would provide Waartaa a more user-friendly feel. One way of implementing this feature would require joining the Open Source Community from the server. We store their various channel logs in a text file / log file and make it accessible to everyone.

A HTML mobile app

The rise in the use of mobile devices has made it very necessary for a website to be available as a mobile app. Apart from this in Waartaa we are concerned about the connectivity of the user to the various channels and what better way than to provide them Waartaa as a mobile app that stays in their mobile devices which they carry wherever they go. For development of a mobile app based on HTML5, use of mobile development tools like Sencha Touch working on Android, iUI working on iPhones would be useful. These development tools use plain HTML, CSS and JavaScript to build native-looking webapp. To provide reactivity and realtime data sync we’ll communicate with the server via DDP websocket protocol. Then with the objective DDP library and android-ddp-client library native UI to Meteor.js will be obtained.

A video/audio conference facility

A real time video/audio conferencing facility will help in richer collaboration between the collaborators. As this is not an integral part of the IRC protocol, a custom implementation would be required in its place. Preliminary research indicates that WebRTC would be most suited for this kind of communication. WebRTC is an API that supports browser-to-browser applications for voice calling, video chatting and peer-to-peer file sharing. It includes sets of asynchronous events i.e. signalling, incoming/outgoing calls, presence, chats etc and the involves these asynchronous events in real-time. I will start by looking into https://github.com/dylntrnr/Meteor-Webrtcio as a reference. This is a standalone meteor project which aims at running WebRTC within the Meteor ecosystem. Internally it uses the webrtc npm package. Building upon this I will first try to make this into a Meteor module and then include it in waartaa by integrating the present accounts system and providing the end user with an easy to use and intuitive UI to initiate and control such communication.


Bibliography

I am a third year student of Computer Science and Engineering Department in Birla Institute of Technology, India. I have been involved in Web development for quite some time now. In the past I have worked on some projects of web applications using HTML, CSS, PHP, JavaScript. I am also familiar with languages like Python and JavaScript based software development platforms like Node and Meteor. I would like to improvise and improve my skills and simultaneously contribute to the Fedora Community.


Timeline

21st April – 19th May

  • Insight of the project details.
  • Discussing with mentors on how to implement a particular feature and how to begin working with it.
  • Studying in detail the project and elements of the project.
  • Bonding with the organisation.

19th May – 2nd June: Setting up a hub for collecting logs open source community channels.

3rd June – 18th June: Creating a UI for viewing the logs.

19th June to 9th August: Mobile app development.

23rd June: Mid-term evaluation.

9th August – 20th August: Testing and documentation.

22nd August: Final submission.


Contact

  • Email: shilpita.nag@gmail.com
  • IRC nick: shilpi21
  • Github: github.com/shilpita-nag
  • Facebook: facebook.com/shilpita.nag
  • Twitter: twitter.com/ShilpitaNag