File Sharing Utility

From Sugar Labs
Revision as of 23:04, 23 March 2009 by Kashes911 (talk | contribs)
Jump to navigation Jump to search

About you

Q.1 : What is your name?

Ans : Kartik Rustagi


Q.2 : What is your email address?

Ans : kashes911 [AT] gmail [DOT] com


Q.3 : What is your Sugar Labs wiki username?

Ans : kashes911


Q.4 : What is your IRC nickname?

Ans : kartik_rustagi


Q.5 : What is your primary language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)

Ans : English and Hindi


Q.6 : Where are you located, and what hours do you tend to work? (We also try to match mentors by general time zone if possible.)

Ans : Located in New Delhi, India, UTC +530. Since most of the period of Gsoc comes at a time of summer vacation for me, therefore I am comfortable working at any time of the day.


Q.7 : Have you participated in an open-source project before? If so, please send us URLs to your profile pages for those projects, or some other demonstration of the work that you have done in open-source. If not, why do you want to work on an open-source project this summer?

Ans : I have done the following relevant work:

->Implemented 7-zip compressed commics support in Evince Document Viewer, Gnome Bug: #532312

 #Link: http://ftp.gnome.org/pub/GNOME/desktop/2.23/2.23.5/NEWS

->Implemented a peer-to-peer file search and transfer utility in python. It had the following main features:

   #Remote discovery of active peers
   #File search queries using Multicast and File transfer
   #Object matching using regular expressions
   #Link: http://code.google.com/p/p2p-lan/

->Made a distributed game based on Flash and Python and used Asynchronous servers, Mysql db, DOM in its design and implementation.

 #Link: http://code.google.com/p/etheravtar/

About your project

Q.1 : What is the name of your project?

Ans : File Sharing Utility


Q.2 : Describe your project in 10-20 sentences. What are you making? Who are you making it for, and why do they need it? What technologies (programming languages, etc.) will you be using?

a) : What are you making

Ans : There is a lack of file sharing activity in the Sugar Learning Platform, which is quite a roadblock when it comes to the remote sharing of files present in the Journal. There has been some work done with respect to this in Sucrose 0.84 release[1]. But it has very limited and restricted option of only sharing of files among friends with no other capabilities.

Features

  1. Shared folders which will contain files to be shared
  2. Sharing among peers in LAN and Internet
  3. File search query among shared folders of active peers
  4. Show active peers via remote discovery
  5. Easy to use Interface to carry out these functionalities

Other addition which I aim to make to this project outside the paradigm of Google Summer of Code includes: Multiple downloads simultaneously

  1. API to be used by third party applications
  2. Dbus Interface

b) : Who are you making it for

Ans : Primary, Secondary and Higher Secondary Students and Teachers. At a later stage it will be of immense use to developers too.


c) : Why do they need it

Ans : A typical use of this application is the transfer of assignments and similar work among students. There can be many uses of this activity for other activities as well as sharing has been a primary goal for the Sugar Platform.


d) : What technologies (programming languages, etc.) will you be using?

Ans : This project will be started from scratch since their will be a complete rework to the existing file sharing utility in Sucrose 0.84. As most of networking in sugar uses XMPP protocol, hence all the data whether metadata or actual data will be sent in accordance to the XMPP specifications. Major technologies that will be used includes XML, Data Object Model (DOM), Socket Programming, Regular Expressions, GTK, Glade Interface Designer, Twisted libraries and few others.



Q.3 : What is the timeline for development of your project? The Summer of Code work period is 7 weeks long, May 23 - August 10; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (July 6-13); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.

Ans : Before the official program starts I would have made my self comfortable with the Sugar environment and as a prerequisite would have gone through the XMPP specification. The basic development approach will be to design the GUI and write the functionalities simultaneously. Here is the division of my work per week:

Week 1: Design the basic framework of the application. Start coding of the GUI and as I move on, will keep on adding functionalities to This week will require substantial communication with my mentor.

Week 2: Enable the task of shared folders and estabilishment of the basic protocol for peer lookup. After this the feature of remote discovery will be done in LAN.

Week 3: The task of remote discovery on the Internet will also be completed in this week and other miscellaneous backend task of the whole framework will be done with.

Week 4:Will be done with the tasks of file search query and file transfer on LAN.

Week 5: This week will mainly be concentrated on extending most of the work on Internet.

Week 6: This week will be utilized for exaustive testing.

Week 7: Final compilation of the whole work with small alterations will be done.

TODO: This list needs to have a lot of changes after having advice from some developers.


Q.4 : Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the timeline you have described. This is usually where people describe their past experiences, credentials, prior projects, schoolwork, and that sort of thing, but be creative. Link to prior work or other resources as relevant.

Ans : I have quite a lot of experience with all the technologies that will be involved with this project. Other than this I have done substantial amount of work in Python in the past. My biggest asset which will accelerate the speed of the development process is my prior experience of developing a complete working peer to peer file transfer application in Python which handled many of the tasks I have listed for this project. Some of the key time consuming problems were taken care during the development of this application and I will build up on this experience. I again have done a lot of work with PyGTK which again simplifies the development process for me.Having worked on Linux for three years now makes me have an experience with the basics of Sugar. Also I have sound knowledge of content management systems and thus a lot of time will be saved here too. All these facts makes me competent enough to complete my project with quality in the given time frame.



You and the community

Q.1 : If your project is successfully completed, what will its impact be on the Sugar Labs community? Give 3 answers, each 1-3 paragraphs in length. The first one should be yours. The other two should be answers from members of the Sugar Labs community, at least one of whom should be a Sugar Labs GSoC mentor. Provide email contact information for non-GSoC mentors.

Ans : With the completion of this project one of the biggest hurdle of the Sugar Platform will be taken care of. Having the freedom of sharing with anyone any time is essential for such a platform and this project essentially achieves that. Other than this it opens the door for other developers to make creative use of this utility for their own activities.


Q.2 : Sugar Labs will be working to set up a small (5-30 unit) Sugar pilot near each student project that is accepted to GSoC so that you can immediately see how your work affects children in a deployment. We will make arrangements to either supply or find all the equipment needed. Do you have any ideas on where you would like your deployment to be, who you would like to be involved, and how we can help you and the community in your area begin it?

Ans : I would like the deployment to be at a near by Government school for the poor since they are the students that are usually isolated from the strength of electronic education and hence have the maximum curiosity to learn. ----

Q.3 : What will you do if you get stuck on your project and your mentor isn't around?

Ans : I will do the following things in the same order:

  1. Search about it Google
  2. Ask people on the mailing list and IRC for the solution
  3. Will go through the various discussion forums

Q.4 : How do you propose you will be keeping the community informed of your progress and any problems or questions you might have over the course of the project?

Ans : I will do the following things :

  1. Updating the project wiki
  2. Sending regular updates on the mailing list
  3. Ping IRC and asking users/developers for review

Miscellaneous

An example of the kind of screenshot of your first modification to your development environment which you should include in your application. Note that the drop-down menu text has Mel's email address in place of the word "Restart" - your screenshot should contain your email instead.
  1. We want to make sure that you can set up a development environment before the summer starts. Please send us a link to a screenshot of your Sugar development environment with the following modification: when you hover over the XO-person icon in the middle of Home view, the drop-down text should have your email in place of "Restart." See the image on the right for an example. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.

Ans : sugar_prerequisite.png

Q.6 : What is your t-shirt size? (Yes, we know Google asks for this already; humor us.)

Ans : Large

  1. Describe a great learning experience you had as a child.
  2. Is there anything else we should have asked you or anything else that we should know that might make us like you or your project more?