GSOC 2014/Student Application souradeep/Wartaa

From FedoraProject

Jump to: navigation, search
  • Name: Souradeep De
  • FAS Account: souradeep

Contact Information

Contents

Why do you want to work with the Fedora Project?

I want to be a part of the Fedora project as I am quite keen about working on and contributing to various open source projects. I have been using Fedora as my primary OS for some time now, and I find it way better than the other operating systems I have used in the past. Thus, I want to get involved with the Fedora project and contribute back to the community.

Do you have any past involvement with the Fedora project or any other open source project as a contributor?

I have contributed to Waartaa. I have also worked on other open source projects inside the Mozilla Community.

Did you participate with the past GSoC programs, if so which years, which organizations?

No. This will be my first time.

Will you continue contributing/ supporting the Fedora project after the GSoC 2014 program, if yes, which team(s), you are interested with?

Yes. I like contributing to open source projects, and I would love to remain associated with the Fedora project even after I am done with GSoC 2014. I would like to keep contributing to Waartaa and to fedora-infra projects

Why should we choose you over other applicants?

I find the project Waartaa very interesting and useful, and hence, I have been contributing to Waartaa for some time now. I have made about three patches to the project and looking forward to send more patches before the actual coding time starts. I have went through the code base of Waartaa and have acquired good knowledge about it.

Proposal Description

An overview of your proposal

Waartaa is a web IRC client written in Meteor JS. It is aimed towards being an intuitive, collaborative IRC client across multiple devices of the user along with centralized logging. I will be working on implementing certain useful features such as a dashboard which would show live IRC discussions on popular channels. Elastic search will be implemented, which will help developers search through IRC logs for content easily. elasticsearch will be used because it can handle huge log files, is scalable and implements realtime searching. Hence it is suited for the needs of Waartaa.
A JSON API, meant to be used by other IRC clients, so that they never lose a message even when they get disconnected. I believe, IRC being one of the most widely used form of chat by open source organizations, must also be the most reliable way to connect to developers and have discussions. IRC clients must be able to take care of frequent disconnection factors and make sure that users never lose a message. This JSON API is a step to neutralize this problem and make way for better connectivity and hence, better productivity.
Chat logs of other IRC clients can be synced with that of Waartaa for popular IRC clients. Waartaa will make sure that no one ever loses a message, even if they are offline. The Waartaa UI needs lots of polishing, especially visual elements showing latency. This would ensure that users don't get confused in case of heavy latency issues.

The need you believe it fulfills

IRC is one of the oldest forms of chat widely used today for communication in open source organizations. But the fact is that IRC is not very reliable in terms that a majority of clients, when they get disconnected, fail to receive and deliver messages, sometimes, even without the knowledge of the user. As a result, it harms productivity and creativity to a great extent.
Waartaa is meant to take care of these problems, it stores IRC logs in a centralized location, to be used by Waartaa web clients. Waartaa will transform the native IRC into a next generation communication tool, where users need not worry about disconnection, they can subscribe and browse through channel logs of popular open source projects. Waartaa will also help other IRC clients with a JSON API to distribute live channel logs and fresh chat logs for popular IRC clients.

Any relevant experience you have

I have been contributing to this project for a few months now. Waartaa is primarily written in JavaScript, with Meteor.js, in which I have become quite proficient. I have worked in other web based projects and that knowledge will be helping me getting my tasks done in Waartaa.

How do you intend to implement your proposal

  • Build a central hub for searching/reading channel logs for Open Source communities and projects

Waartaa can be set to log popular channels and live logs conversations can be displayed without the user joining the channel. There will be options allowing the user to join the channel and take part in the conversation. Searching will be done using elasticsearch, which has an API to query using AJAX calls.

  • Expose an API so that users can use their existing IRC clients with Waartaa

A JSON API can be exposed by JavaScript codes written on server side in Meteor. The API will use centralized chat logs to send data over to other clients. Routes for the web API can be set using iron-router. The API will accept GET and POST parameters and return relevant data in JSON format.

  • Have a script which will sync logs with other IRC clients

Every desktop based IRC clients store logs locally in different formats. Have a script which will take in parameters like a date-range and channels (optional). The script will then sync the appropriate log files with messages it receives by calling the Waartaa API. The script will first call the Waartaa API and download all the logs for the date range provided, it will then replace the old logs with these new logs.

  • Polishing the Web UI

The Web UI needs to have more html visual elements like spinners and loaders in appropriate places.

A rough timeline for your progress

  • April 21 – May 19: Community bonding period, work on the mock-ups and get them reviewed by the mentor.
  • May 15 – June 2: Tentative University exam dates
  • June 3 – June 10: Work on building JSON API to be used by other IRC clients
  • June 10 – June 17 : Have a script which will sync logs with other IRC clients
  • June 18 – June 22 : Polish Waartaa UI
  • July 23 – June 27: Mid term evaluation
  • June 28 – August 11: Implement web dashboard for reading/searching IRC logs of popular open source projects.
  • August 12 - August 17: Review Code, Write documentation
  • August 18 : Firm Pencils down date

Any other details you feel we should consider

I have been contributing to this project for the past 2 months. I have been in touch with the mentor since then. I have gathered good knowledge of the project's codebase.

Have you communicated with a potential mentor? If so, who?

Yes, I have communicated with the potential mentors, Ratnadeep Debnath, Sayan Chowdhury and Kushal Das.