From Fedora Project Wiki
No edit summary
No edit summary
Line 40: Line 40:
== Proposal Description ==
== Proposal Description ==


The goal of this proposal is to build a new tool called Afterthough. Afterthough is an automation tool that makes installing/setting up things on your linux system easier. There is a remote source that specifies the steps to be takes in a structured format. This source is read by the client script on a linux system and then is   
The goal of this proposal is to build a new tool called Afterthough. Afterthough is an automation tool that makes installing/setting up tools on your linux system easier. There is a remote source that specifies the steps to be takes in a structured format. This source is read by the client script on a linux system and appropriate changes/actions are taken. The source is a structured piece of data that specifies the actions in steps/phases. The client is a python script that parses the source and runs appropriate commands. The goal of the project is that if the procedure can be figured out properly by one person - it shouldn't be taking others work-hour anymore.


== Proposal ==
== Proposal ==


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.
Afterthought besides the core script consists of 2 major parts: "recipes" and "plugins". Recipes are structured pieces of data that consists of the steps to setup a tool. Each recipe would be a JSON file consisting of steps for each hook/phase. There will separate hooks for each phase, 1 for configuration, 1 for dependencies, 1 for download, 1 for building and 1 for cleaning. The plugins are a bit different they are scripts that extends Afterthought's functionality. They use data mining/data scraping to automate some mundane tasks, example: installing gems, installing python packages, applying a github pull request etc.
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 ===
=== Objective ===


The three main tasks are:
The 5 major tasks are:
#Building a central hub for searching/reading channel logs for Open Source Communities and projects.
#Creating the initial Afterthought script.
#A HTML mobile app.
#Creating the test recipe and wrapper keyword functions.
#A video and audio conference facility on top of HTML5 and JS Technologies.
#Creating the remote source that will serve the JSON recipe files.
#Creating the plugin API.
#Creating sample plugins.


==== Building a central hub for searching/reading channel logs for Open Source Communities and projects ====
==== Creating the initial Afterthought script ====
   
   
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.
==== Creating the test recipe and wrapper keyword functions ====
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.
==== Creating the remote source that will serve the JSON recipe files ====
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.
==== Creating the plugin API ====
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.


==== Creating sample plugins ====


== Bibliography ==
== 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.
My name is Aneesh Dogra. I am studying computer science in IIIT Delhi. I have been involved in a few open source projects (primarly libav and sugarlabs) since 2-3 years. I have won GCI twice [1] [2] and mentored in GSoC for Sugarlabs last year. I have a fairly active/updated github [3] and linkedin [4] profile. If you check projects on my github profile you'll notice my interest for automation. I have experience in python, shell, flask and C/C++. I also have experience creating web scrapers in python, I made one for scraping Sheldon's Quotes (The big bang theory) and integrated the db into a shell script, was fun [7]. I created one shell script to make deploying sugar activities on XO a one command job [6]. I also do some web scraping work as freelancing work on Odesk [5]. I also have some more hacks/projects on my github profile. I also have interest in computer vision and I did an internship in IIIT Delhi - Biometrics lab last winter.
I would like to improvise and improve my skills and simultaneously contribute to the Fedora Community.  


[1] : http://google-opensource.blogspot.in/2012/02/google-code-in-2011-grand-prize-winners.html
[2] : http://google-opensource.blogspot.in/2013/02/google-code-in-2012-grand-prize-winners.html
[3] : https://github.com/lionaneesh
[4] : linkedin.com/in/aneeshdogra
[5] : https://www.odesk.com/users/~010cdb9d4ddfddab46
[6] : https://github.com/lionaneesh/sugar-deploy-activities
[7]:  https://github.com/lionaneesh/sheldon-in-shell


== Timeline ==
== Timeline ==


'''21st April – 19th May'''
'''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 May 2nd June'''


'''19th June to 9th August''': Mobile app development.
'''3rd June – 18th June'''


'''23rd June''': Mid-term evaluation.
'''19th June to 9th August"'


'''9th August – 20th August''': Testing and documentation.
'''23rd June'''


'''22nd August''': Final submission.
'''9th August – 20th August''


'''22nd August'''


== Contact ==  
== Contact ==  


* Email: shilpita.nag@gmail.com
* Email: lionaneesh@gmail.com
* Telephone: +919470371032
* Telephone: +918285151175
* IRC nick: shilpi21
* IRC nick: lionaneesh
* Github: github.com/shilpita-nag
* Github: github.com/lionaneesh
* Facebook: facebook.com/shilpita.nag
* Facebook: facebook.com/lionaneesh
* Twitter: twitter.com/ShilpitaNag

Revision as of 15:08, 16 March 2014

Contact Information

  • Email Address: lionaneesh@gmail.com
  • Blog URL: http://anee.me
  • Freenode IRC Nick: lionaneesh

NOTE: We require all students to blog about the progress of their project. You are strongly encouraged to register on the Freenode network and participate in our IRC channels. For more information and other instructions contact Org Admins.

please answer following questions

Why do you want to work with the Fedora Project?

I feel Fedora's pretty open. They have very diverse projects (not just OS/Existing Apps specific) and they are not egotistical about it: the features/projects they work on they try to make it available to non-fedora users as well, this is the coolest thing about this organisation. I love working on projects that are freely available to anyone, regardless of them using fedora or any other linux. Besides this, the ideas were pretty interesting, the mentors were responsive and I could find an idea I am passionate about.

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

Not with fedora but I have worked on a couple of open source projects previously majorly Sugarlabs and Libav. I started out in libav as a GCI 2011 participant and later was selected as one of the grand prize winners. I continued development with Libav for over a year and I worked on the Bytestream2 API, wrote a simple sunrast decoder and fixed a few bugs in some decoders/encoders. I started out in Sugarlabs as a GCI 2012 participant and later was again selected by the organisation as one of the grand prize winners. Majority of my work includes working on the activities. I have worked over 20 Sugar Activities, fixed over a 100 bugs and am maintaining around 6-7 major sugar activities. I later mentored a student for Sugarlabs in GSoC 2013 (A translation server backend - with Restful APIs) and some more students in GCI 2013. I am still a part of sugarlabs, I maintain some of their activities and still contribute towards some sections of the project. Besides these two. I wrote some patches for KStars (KDE), some for KhanAcademy and have minor contributions in some other projects as well. I have a pretty active github profile. I contribute to projects, I find interesting and also put up my own projects there.

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

I didn't participate as a student before, but I did participate as a mentor in GSoC 2013 in Sugarlabs.

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

Yeah I would love to. I wasn't really aware of much of the work Fedora was into till I really started reading about Fedora's projects. I am really interested in the automation and the web development team and would love to contribute and help in anyway possible.

Why should we choose you over other applicants?

I have a fair amount of experience in open source, have experience building and maintaining significant amounts of FOSS code. If you check projects on my github profile you'll notice my interest for automation. I have experience in python, shell, flask and C/C++. Besides my skills, I am not new to deadlines, have no problems in communicating with my mentors and can solve problems quickly.


Afterthought

Proposal Description

The goal of this proposal is to build a new tool called Afterthough. Afterthough is an automation tool that makes installing/setting up tools on your linux system easier. There is a remote source that specifies the steps to be takes in a structured format. This source is read by the client script on a linux system and appropriate changes/actions are taken. The source is a structured piece of data that specifies the actions in steps/phases. The client is a python script that parses the source and runs appropriate commands. The goal of the project is that if the procedure can be figured out properly by one person - it shouldn't be taking others work-hour anymore.

Proposal

Afterthought besides the core script consists of 2 major parts: "recipes" and "plugins". Recipes are structured pieces of data that consists of the steps to setup a tool. Each recipe would be a JSON file consisting of steps for each hook/phase. There will separate hooks for each phase, 1 for configuration, 1 for dependencies, 1 for download, 1 for building and 1 for cleaning. The plugins are a bit different they are scripts that extends Afterthought's functionality. They use data mining/data scraping to automate some mundane tasks, example: installing gems, installing python packages, applying a github pull request etc.

Objective

The 5 major tasks are:

  1. Creating the initial Afterthought script.
  2. Creating the test recipe and wrapper keyword functions.
  3. Creating the remote source that will serve the JSON recipe files.
  4. Creating the plugin API.
  5. Creating sample plugins.

Creating the initial Afterthought script

Creating the test recipe and wrapper keyword functions

Creating the remote source that will serve the JSON recipe files

Creating the plugin API

Creating sample plugins

Bibliography

My name is Aneesh Dogra. I am studying computer science in IIIT Delhi. I have been involved in a few open source projects (primarly libav and sugarlabs) since 2-3 years. I have won GCI twice [1] [2] and mentored in GSoC for Sugarlabs last year. I have a fairly active/updated github [3] and linkedin [4] profile. If you check projects on my github profile you'll notice my interest for automation. I have experience in python, shell, flask and C/C++. I also have experience creating web scrapers in python, I made one for scraping Sheldon's Quotes (The big bang theory) and integrated the db into a shell script, was fun [7]. I created one shell script to make deploying sugar activities on XO a one command job [6]. I also do some web scraping work as freelancing work on Odesk [5]. I also have some more hacks/projects on my github profile. I also have interest in computer vision and I did an internship in IIIT Delhi - Biometrics lab last winter.

[1] : http://google-opensource.blogspot.in/2012/02/google-code-in-2011-grand-prize-winners.html [2] : http://google-opensource.blogspot.in/2013/02/google-code-in-2012-grand-prize-winners.html [3] : https://github.com/lionaneesh [4] : linkedin.com/in/aneeshdogra [5] : https://www.odesk.com/users/~010cdb9d4ddfddab46 [6] : https://github.com/lionaneesh/sugar-deploy-activities [7]: https://github.com/lionaneesh/sheldon-in-shell

Timeline

21st April – 19th May

19th May – 2nd June

3rd June – 18th June

19th June to 9th August"'

23rd June

'9th August – 20th August

22nd August

Contact

  • Email: lionaneesh@gmail.com
  • Telephone: +918285151175
  • IRC nick: lionaneesh
  • Github: github.com/lionaneesh
  • Facebook: facebook.com/lionaneesh