From Fedora Project Wiki
 
Line 2: Line 2:
GSoC 2014/Student_application_shilpita
GSoC 2014/Student_application_shilpita


*Name: Shilpita Nag
*FAS Account: Shilpita


== Contact ==  
== Contact ==  
Line 28: Line 31:


I am innovative, hardworking and punctual. I have knowledge about what I am doing and do it with a lot of enthusiasm. I am a bit of work maniac, I won't rest in peace till I am done with the work in hand. I have a passion to learn and create new things.
I am innovative, hardworking and punctual. I have knowledge about what I am doing and do it with a lot of enthusiasm. I am a bit of work maniac, I won't rest in peace till I am done with the work in hand. I have a passion to learn and create new things.
== Proposal Description ==
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.
== Proposal ==
The main tasks of this project are:
* Building a central hub for searching/reading channel logs for Open Source Communities and projects.
* A HTML mobile app.
* Overlay for adding user preferences and account settings.
* Creating an admin dashboard.
* 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 or even before they joined the channel.
It has three parts:-
# Storing and managing of channel logs.
# Searching or browsing through channel logs.
# Viewing channel logs.
* For creating a central hub for reading/ searching channel logs we would need to store channel logs. For storing channel logs I would use the managing tool, Logstash. Logstash is a tool for collecting logs, parsing them and storing them for later use.
* For allowing user to search through or browse these stored channel logs searching techniques need to be implemented. I would implement this using Elasticsearch. Elasticsearch is a scaleable, real-time search used for searching through logs or data. Previously stated Logstash is a part of Elasticsearch family.
 
* For viewing of these logs by user I would use a viewing tool namely Kibana. Kibana is a user-friendly way to view, search and visualize log data. It is a browser based interfaced to logstash and elasticsearch.
Providing channel logs that could be read by user anytime, is a feature that would provide Waartaa a more user-friendly feel. Allowing user to view the channel log of a Open Source Community or project before joining it would help the user to know what discussions happen in the channel and also inspire users to join new channels.
==== 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.
==== Overlay for adding user preferences and account settings ====
A user must be provided with facilities for adding user preferences like joining a channel or leaving a channel, adding other preferences like selecting a IRC server etc. To make Waartaa more user friendly facilities must be provided to change account settings.
For implementing these I plan of designing a overlay that would appear on top of the chat page and allow the user to manage their accounts and handle their preferences. For the design of this overlay I am thinking of working with jQuery plugin Chardin.js. Chardin.js is a jQuery plugin creates a simple overlay to display instructions on existent elements.
==== Creating an admin dashboard ====
A admin dashboard is to be designed that would help the admin to handle the activities of the various channels. It would allow the admin to remove a user if they behave as a spam in a particular channel without restarting the server.
==== 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.
== The need you believe it fulfills ==
In my opinion this project will give a great boost to the Waartaa project.
The developing a central hub for searching/ reading a channel logs of Open Source Community or project has been one of the task of prime importance (as told to me by @rtnpro) and it would eventually have many benefits.
* It will help user to read channel logs without joining the particular channel and thus help them understand what discussions are done on the channel before joining.
* It would inspire user to join various channels as they would have been made aware of the channel.
* It would help the user to be continually aware of the discussions going on in a channel.
Having a admin dashboard will help the admin to manage who joins or leaves a particular channel. It would also help to avoid spammers in various channels.
A mobile app for Waartaa would make IRC available for users on their mobile devices thus making Waartaa accessible from anywhere.
== Any relevant experience you have had ==
My end-semesters would be ending in the first week of May. After that I will be able to devout around 8-10 hours a day(or more if necessary) for around 3 months till the last week of July. After that my college reopens but still I'll be able to devout around 4-5 hours a day. My plan is to work taking one goal at a time and strictly following deadlines specified by me in my timeline. All the time I will stay very actively in contact with the assigned mentor taking in feedback and making the changes as and when necessary.
Also, I wish to lay more stress upon quality than quantity. That is to say I'll try to code the things perfectly, as bug free and robust as possible rather than trying to implement more features.
== Final deliverable of the proposal at the end of the period ==
* A display to view and search the channel logs.
* An overlay for the user to add preferences and handle account settings.
* A admin dashboard.
* A HTML mobile app compatible for android.
* If time permits a peer to peer video/ audio conferencing facility.
== 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.
== Have you communicated with a potential mentor, if so who ==
I have been in contact with @rtnpro @sayan. I have discussed my project proposal with them and seeked their suggestions to improve my proposal and present in the current form.

Latest revision as of 10:44, 19 March 2014

Improvements on Waartaa

GSoC 2014/Student_application_shilpita


  • Name: Shilpita Nag
  • FAS Account: Shilpita

Contact

  • Name: Shilpita Nag
  • Telephone: +919470371032
  • Email: shilpita.nag@gmail.com
  • IRC nick: shilpi21
  • Github: github.com/shilpita-nag
  • Facebook: facebook.com/shilpita.nag
  • Twitter: twitter.com/ShilpitaNag

Why do you want to work with Fedora Project

Fedora Project is one of the biggest open source community. It has the reputation of being a FOSS distribution that focuses on Innovation and close work with upstream Linux communities.Fedora project is known to to collaborate closely with the contributors/upstream so that everyone can benefit from the work. I want to work with Fedora Project so that I can learn about open source programming. I also want to contribute to the Fedora project as much as I can and benefit from the community.

Did you participate with the past GSoC programs, if yes which year, which organisation ?

No, I have not previously got an opportunity to work with any GSoC programs in the past years.

Will you continue supporting/contributing to Fedora Project after GSoC 2014, if yes, which team/area you are interested in ?

Yes, I would like to contribute/ support the Fedora Project even after GSoC 2014 program. I am particularly interested in working in the area Web Developer or Administrator.

Why should we choose you over other applicants ?

I am innovative, hardworking and punctual. I have knowledge about what I am doing and do it with a lot of enthusiasm. I am a bit of work maniac, I won't rest in peace till I am done with the work in hand. I have a passion to learn and create new things.