<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.sugarlabs.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ManashRaja</id>
	<title>Sugar Labs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sugarlabs.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ManashRaja"/>
	<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/go/Special:Contributions/ManashRaja"/>
	<updated>2026-06-06T05:20:57Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Sugar-server_Journal_backup&amp;diff=98255</id>
		<title>Sugar-server Journal backup</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Sugar-server_Journal_backup&amp;diff=98255"/>
		<updated>2016-04-23T05:42:31Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: /* Owner */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Feature|.]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
Modify the current Sugar Journal backup procedure to enable user&#039;s to maintain a permanent record of their documents on a school server.&lt;br /&gt;
&lt;br /&gt;
== Owner ==&lt;br /&gt;
* Name: [[User:Tony| Tony Anderson]], [[User:ManashRaja| Manash Pratim Das]]&lt;br /&gt;
&lt;br /&gt;
* Email: tony_anderson @ usa (dot) net, mpdmanash @ gmail (dot) com&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
* Targeted release: TBD&lt;br /&gt;
* Last updated: 23 April 2016&lt;br /&gt;
* Percentage of completion: 0%&lt;br /&gt;
&lt;br /&gt;
== Benefit to Sugar ==&lt;br /&gt;
The current backup system does not permit a user to save Journal objects which cause the total Journal size to exceed the available space on the XO. The proposed system will enable a backup to a school server to be limited to the size of the available store on the school server. It will provide the user with the ability to manage the size of the local datastore by deleting data files associated with Journal objects and enable them to be loaded again from the school server as needed.&lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
This feature changes code in Sugar and on the school server.&lt;br /&gt;
&lt;br /&gt;
ds_backup.sh runs the ds_backup.py script on conection to the registered server. The current checks for backup frequency and network load are removed.&lt;br /&gt;
&lt;br /&gt;
&#039;registration&#039; is removed from the menu. Registration is attempted with each schoolserver connection. The idmgr code on the school server is modified to ignore redundant registrations. Registration on only permitted to one school server. If a school server is not the one to which the registration is made, the ds_backup.py script is not run. An unregistered laptop registers with the first server it connects to. If this needs to be changed, the user can delete the server entry in the network control panel and then connect again.&lt;br /&gt;
&lt;br /&gt;
The ds_backup.py script uses the datastore class to access the Journal. It opens each object. If the metadata has a Journal flag, the script checks whether the local object has been modified from the saved object (based on date). If so, the local copy is uploaded to replace the saved copy. &lt;br /&gt;
&lt;br /&gt;
Note: if desired, the uploaded copy could become the prime and other copies could be kept with earlier version id. &lt;br /&gt;
&lt;br /&gt;
If the object is new (no Journal metadata entry), and does not have a data file with a user-supplied title, the metadata file is uploaded to the Log directory and the local object is deleted.&lt;br /&gt;
&lt;br /&gt;
If the object is new but has a data file with a user-supplied name, the metadata is shown with a &#039;Journal&#039; flag and the object is uploaded to the &#039;Journal&#039; folder. The metadata is marked as &#039;keep&#039;.&lt;br /&gt;
&lt;br /&gt;
If an object has a &#039;Journal&#039; metadata field (new or existing), the script checks the &#039;keep&#039; metadata field. If it is set and there is no local copy of the data file, it is downloaded from the school server. If it is not set and there is a local copy of the data file, it is deleted.&lt;br /&gt;
&lt;br /&gt;
The create_user module on the server is changed to create the user directory with subdirectories: Journal and Log. A complete log of the Journal consists to the metadata files in Log plus the metadata files in Journal.&lt;br /&gt;
&lt;br /&gt;
==UI Design==&lt;br /&gt;
&lt;br /&gt;
Remove current registration menu item from main menu.&lt;br /&gt;
&lt;br /&gt;
Use &#039;favorite&#039; stars in Journal to control download and delete of local copies of data files &lt;br /&gt;
associated with Journal objects.&lt;br /&gt;
&lt;br /&gt;
== How To Test ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Examine current Journal display&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Connect to school server&amp;lt;lli&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Verify that Journal display shows &#039;favorite&#039; star set on each object.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt;Verify that some Journal objects no not shown.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Clear favorite star on a Journal object.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Connect again to school server&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Verify that data file for that Journal object is no longer available to resume.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Set favorite star on the object&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Connect again to the school server&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Verify that data file is now available to resume&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== User Experience ==&lt;br /&gt;
&lt;br /&gt;
Has control over data objects using space on laptop.&lt;br /&gt;
Has access to data objects saved on school server&lt;br /&gt;
Journal does not show objects not associated with a data file&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;What other packages (RPMs) depend on this package? Are there changes outside the developers&#039; control on which completion of this feature depends? In other words, does your feature depend on completion of another feature owned by someone else or that you would need to coordinate, which might cause you to be unable to finish on time? Other upstream projects like Python?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This feature is to replace the current ds_backup-client. As an enhancment to the Journal, it is a feature of Sugar. There are parallel feature implementations included in GSOC 16 which may need lead to incompatiblities in the Journal view. These will neeed to be resolved as needed.&lt;br /&gt;
&lt;br /&gt;
The implementation will attempt to preserve compatibility so that it can be retroactively installed on earlier Sugar versions. The documentation will specify how and to which versions this is supported.&lt;br /&gt;
&lt;br /&gt;
The implementation is based on python 2.7. The developers are testing on 13.2.5 and later releases. Implementation assumes future versions of Fedora are compatible. There are no known changes to upstream modules needed at this time.&lt;br /&gt;
&lt;br /&gt;
SOAS, Fedora, and Ubuntu implementations of Sugar are assumed to be compatible. Appropriate testing will be required. Dependencies such as generation of a serial-number can be included in the registration of the server by Sugar. &lt;br /&gt;
&lt;br /&gt;
== Contingency Plan ==&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
Added to Sugar Labs identified documentation.&lt;br /&gt;
&lt;br /&gt;
== Release Notes ==&lt;br /&gt;
&lt;br /&gt;
Notify when feature is released.&lt;br /&gt;
&lt;br /&gt;
== Comments and Discussion ==&lt;br /&gt;
&lt;br /&gt;
There is need for community dicussion on the changes to the ui. There may be concern that &lt;br /&gt;
visible access to Journal objects created for log purposes may not be visible in the Journal.&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=98118</id>
		<title>Summer of Code/2016/Sugar Journal backup and restore</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=98118"/>
		<updated>2016-04-20T07:24:56Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: /* About your project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About You ==&lt;br /&gt;
&#039;&#039;&#039;What is your name?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
My name is &amp;lt;b&amp;gt;Manash Pratim Das&amp;lt;/b&amp;gt;. I am a 2nd Year, Bachelor of Technology (B.Tech), undergraduate student at the [http://www.iitkgp.ac.in/ Indian Institute of Technology, Kharagpur, India]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your email address? &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My email address is &amp;lt;b&amp;gt;mpdmanash@gmail.com&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your Sugar Labs wiki username?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your IRC nickname on irc.freenode.net?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you&#039;d prefer.)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My native language is Hindi, but I am fluent in English as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Where are you located, and what hours (UTC) do you tend to work? (We also try to match mentors by general time zone if possible.)&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
I live at in Kharagpur, West Bengal, India. &amp;lt;br /&amp;gt;&lt;br /&gt;
My timezone is &amp;lt;b&amp;gt;UTC + 5:30 (Indian Standard Time)&amp;lt;/b&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
I generally tend to work in the evening (from 5 pm) and late night (to 4 am). But my time table is very flexible and can be changed as per the convenience of my mentor/community members. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Yes, I have contributed to two completely open source research projects at my college:&lt;br /&gt;
* [https://github.com/quadrotor-IITKgp “Aerial Robotics Kharagpur”]: I am a software team member of this organization. Few specific (other than open code contribution) [https://github.com/quadrotor-IITKgp/grid_localization 1][https://github.com/ManashRaja/quad_simulator 2]&lt;br /&gt;
* [https://github.com/AGV-IIT-KGP “Autonomous Ground Vehicle”]: Specific work [https://github.com/AGV-IIT-KGP/computer_vision/pull/28 1],[https://github.com/AGV-IIT-KGP/eklavya-2015/pull/75 2]&lt;br /&gt;
* My [https://github.com/ManashRaja/ GitHub profile] in general.&lt;br /&gt;
I also solved a bug for an Arduino library, but it was solved before I could send the PR :) .&lt;br /&gt;
&lt;br /&gt;
== About your project ==&lt;br /&gt;
&#039;&#039;&#039;What is the name of your project?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sugar Journal backup and restore&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will add advanced Sugar-server integration to increase the utility of available servers (XSCE or cloud). The following are the features in detail:&lt;br /&gt;
#&#039;&#039;&#039;Add selective backup-restore:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: easy).&amp;lt;/i&amp;gt; User can select part of the journal to be backed up or restored directly from within the backup page. Metadata for each Journal entry will store the list of dependencies and library objects, which will be downloaded again as needed (and, as available). &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; &lt;br /&gt;
#*Backups will be specific and save unnecessary wastage of storage space. &lt;br /&gt;
#*Teachers will be able to distribute specific Journal objects without hampering the existing Journal of a student.&lt;br /&gt;
#&#039;&#039;&#039;Add system to backup and restore from school servers (XSCE):&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: medium)&amp;lt;/i&amp;gt;. Now backup can only be stored and restored from devices, but this feature will add school servers to the options. &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
#*If the school-servers are present, then they can be made an easy way to store and distribute backups among many.&lt;br /&gt;
#*The existing (ds-backup) option on OLPC OS is not an effective method because it cannot be easily restored. (from what I understand)&lt;br /&gt;
#&#039;&#039;&#039;Add cloud service:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: easy).&amp;lt;/i&amp;gt; In a few clicks, it will let schools to connect each student’s pc to a local cloud server or a third party cloud server as per the availability to sync the journal data at a central location.&amp;lt;br /&amp;gt;&amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; It will be easy for schools to let hardware be shared among the student batches as students can login to their account from any hardware and can still access his/her own journal. This feature will strongly support the &amp;quot;One to many concept&amp;quot; that can be implemented on Sugar. (concept discussed on GSoC 2016 idea page [https://wiki.sugarlabs.org/go/Summer_of_Code/2016 link])&lt;br /&gt;
#&#039;&#039;&#039;Easy sharing of Journal items based on above server frameworks:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: medium)&amp;lt;/i&amp;gt; When server frameworks like XSCE and cloud are available, their utility can be increased by adding features where children can share any item with each other in just few easy clicks. &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt;&lt;br /&gt;
#*The backups can be used by multiple types of hardware/platform running Sugar (OLPC pcs, Android, Sugarizer) seamlessly using school-server’s multi-platform support to the advantage.&lt;br /&gt;
#*Teachers can distribute journal entries on mass scale.&lt;br /&gt;
#&#039;&#039;&#039;Use the servers for sharing storage space:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: hard)&amp;lt;/i&amp;gt;. &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;The data created by a Journal may take the free storage space on a low storage device pretty soon.&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; Hence this background feature will let the Journal utilize both the local storage and the server storage. Journal objects or libraries will be shifted if it can be shifted to the server. When any object will be needed, it will be downloaded and cached temporarily on the local storage. A method will be devised that will be looking for the objects that can be shifted to the server like, objects which are rarely used and those containing library items. The user will be able to set rules to manage the behaviour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Technologies:&amp;lt;/u&amp;gt; I will use python and its libraries for the main backend along with GTK+ (GTK3) for the GUI and graphics generator like Inkscape for the icons. For the different server integration, I am planning to use use server specific cli, apis, libraries or scripts like “owncloudcmd” for ownCloud,  “RClone” that supports many cloud services like Google Drive, Amazon S3, Openstack Swift / Rackspace cloud files / Memset Memstore, Dropbox, Google Cloud Storage, Amazon Cloud Drive, Microsoft One Drive, Hubic, Backblaze B2, Yandex Disk, The local filesystem. I will also use polkit for permissions and symbolic links. If I finally use rclone for cloud sync, then I might learn and use go programming language (its written on) or use pexpect to run its cli.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is the timeline for development of your project? The Summer of Code work period is from mid-May to mid-August; 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&#039;s good to have a plan at the beginning so you have an idea of where you&#039;re headed.) Note that you should probably plan to have something &amp;quot;working and 90% done&amp;quot; by the midterm evaluation (end of June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align: center;&amp;quot; | Week&lt;br /&gt;
! Scheduled Work &lt;br /&gt;
! Time I can devote&lt;br /&gt;
|-&lt;br /&gt;
| 22 April-22 May&lt;br /&gt;
(Community Bonding period)&lt;br /&gt;
| &lt;br /&gt;
*Introduce and become part of the community.  &lt;br /&gt;
*Look for various different ways to approach the project.&lt;br /&gt;
*Discuss with mentor(s), OLPC members, XSCE members and if possible the people who work down there to tailor the project to the perfect needs and flow.&lt;br /&gt;
*Draw a detailed roadmap on how I will implement each feature.&lt;br /&gt;
*Learn any required skill I may be missing.&lt;br /&gt;
*Design GUI according to the flow as discussed above and create icons as required required.&lt;br /&gt;
*Install XSCE and ownCloud servers at my own place. &lt;br /&gt;
*Create accounts in the third party cloud providers.&lt;br /&gt;
|22 April-29 April: 9 hours per week (end semester examinations.)&lt;br /&gt;
30th April-22nd May: 65 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 23 May-29 May&lt;br /&gt;
| &lt;br /&gt;
*Complete the specific backup-restore(1) and cloud server backup(3) features as I have a head start on both, having gone through the code and tested the functionality. [https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 1], [https://github.com/ManashRaja/cloud-sync-demo 2].&lt;br /&gt;
*Try to match my style of coding with the existing code by reviews and proper study of the code.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 30 May-5 June&lt;br /&gt;
| &lt;br /&gt;
*As I would have already installed the XSCE server at my place, and the implementation discussed to its detail in the &amp;quot;Community bonding period&amp;quot; hence I believe that I can buckle up and finish at least the basic functionality of this feature.&lt;br /&gt;
*Relatively free week to act as buffer if required or start the next week&#039;s work.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 6 June-12 June&lt;br /&gt;
| Since, the feature &amp;quot;servers for sharing storage space&amp;quot;(5) is a difficult task, hence I have planned more time for this feature. I will create the basic functionality as per the road map we would have discussed in the &amp;quot;Community Bonding period&amp;quot;&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 13 June-20 June&lt;br /&gt;
| &lt;br /&gt;
*Finalize the 5th feature.&lt;br /&gt;
*Testing and code documentation.&lt;br /&gt;
*90% as per functionality of the project will be complete before the Mid-Term Evaluation.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 21 June-28 June&lt;br /&gt;
| &lt;br /&gt;
*Mid-Term Evaluation&lt;br /&gt;
*Keep on brainstorming for GUIs and integration of my project which makes it very effective and user friendly.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 28 June-3 July&lt;br /&gt;
| &lt;br /&gt;
*Work on the feedback received after the evaluation.&lt;br /&gt;
*Complete cloud integration for third party service providers for it any of them were left.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 4 July-10 July&lt;br /&gt;
| &lt;br /&gt;
*Understand all types of collaborations that happen in the school among the children(students) and teachers, to know how my sharing feature fits in.&lt;br /&gt;
*Will add more finishing touches to the features (1,2,3,5) developed above.&lt;br /&gt;
*Start coding for the sharing feature.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 11 July-16 July&lt;br /&gt;
| &lt;br /&gt;
*Finish the sharing feature.&lt;br /&gt;
*Apart from the regular updates to the community about the project, I will submit my work upto now for review and suggestions by the community.&lt;br /&gt;
*Work on the suggestions.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 18 July-24 July&lt;br /&gt;
| Buffer week to complete if work is pending or add GUI to use the cloud framework developed to support “One hardware to many user” feature of Sugar.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 25 July-31 July&lt;br /&gt;
| &lt;br /&gt;
*Finalize the code&lt;br /&gt;
*Testing and improvements&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 1st Aug-7 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Proper code documentation, cleanup and flake8 verification.&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 8 Aug-15 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Feature documentation on https://wiki.sugarlabs.org/go/Features&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 16 Aug-24 Aug&lt;br /&gt;
| Submit code and evaluations.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My strength lies in my dynamic learning and self motivated hard work. I am a 2nd year undergraduate of the Indian Institute of Technology, Kharagpur where I am actively involved with the tech community and contribute to 2 research groups ([http://quadrotor-iitkgp.github.io/ 1][http://www.agv.iitkgp.ac.in/ 2]), 2 tech societies([https://www.robotix.in/team/ 1]), projects under professors and have participated in many competitions and hackathons apart from keeping my academics up. In these two years of my stay, I have learnt a great deal about time management. &amp;lt;b&amp;gt;All the professional level work we do has made me to realize realistic timelines for myself and my team.&amp;lt;/b&amp;gt; Though I failed initially, but I am getting better. My work has been mostly in software RnD and autonomous robotics and hence &amp;lt;b&amp;gt;I have gained lots of experience about the process and its time consumption involved in converting an idea to finished product.&amp;lt;/b&amp;gt; So, I have learned to plan my work and execute it efficiently.&lt;br /&gt;
Another important fact is that &amp;lt;b&amp;gt;my college summer vacations lie in the period of 29th April to 24th July, during which I will be able to devote 100% of my work time as GSoC being my top priority&amp;lt;/b&amp;gt; (8-9 hours a day and around 60 hours a week for 12 weeks) towards my contribution. Even though my college semester will start from 25th July, I will still be able to devote 40 hours a week due to a light semester. I also have a head start on the project I would be working on as &amp;lt;b&amp;gt;I have been involved with the Sugar code base since February 1st, added two features [https://github.com/sugarlabs/sugar/pull/665 1], [https://github.com/sugarlabs/sugar/pull/679 2], fixed three bugs [https://github.com/sugarlabs/sugar/pull/668 1], [https://github.com/sugarlabs/sugar/pull/677 2], [https://github.com/sugarlabs/sugar/pull/682 3] and have made the prototype of two features ([https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 1][https://github.com/ManashRaja/cloud-sync-demo 2]) I will develop in this project&amp;lt;/b&amp;gt; apart from discussion about the project on IRC. Hence I am confident that I can ensure fully dedicated work and a pledge to deliver more than I promise.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;You and the community&#039;&#039;&#039; ==&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will mostly be used in the deployment side of Sugar. I strongly believe that my project will add to the sweetness of Sugar to make it come closer to the people who deploy and the even sweeter kids who use it. Backup and restore is a very important feature for various other members of the community who might be testing, developing and integrating Sugar on multiple platforms.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What will you do if you get stuck on your project and your mentor isn&#039;t around?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If I am stuck anywhere, then I will put my best efforts to solve the problem myself by trying Google search as always and referring other resources. But if in case help is required and my mentor is not available then I would refer to the community over developer mailing list, IRC, other GSoC participant if relevant or some specific member(s) whom I might know during the course of the project (eg: Quozl`and SAMdroid who have helped me before). If the problem is not Sugar specific, then I may even take help from my tech circle (Kharagpur Open Source Society) consisting of very smart people or professors if they are available during the vacation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*I would propose a repetitive scheduled meeting every two days at a particular time or as per the convenience of mentors/community members  where we would discuss the progress made and the further course of action. I can understand its effectiveness as we use this technique at our college while doing projects under professors so that the focus and progression is maintained. &lt;br /&gt;
*I will frequently update my progress and milestones achieved on my [http://manashpratim.in/ blog].&lt;br /&gt;
*Share it along with doubts or queries on a particular thread for this project on the developer mailing list to welcome inputs from all the community members.&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
* We want to make sure that you can set up a [http://developer.sugarlabs.org development environment] before the summer starts. Please do &#039;&#039;one&#039;&#039; of the following:&lt;br /&gt;
** 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 &amp;quot;logout&amp;quot;. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Buddy-menu-manash.png|1000px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. &#039;&#039;&#039;&lt;br /&gt;
:: It&#039;s normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.&lt;br /&gt;
&lt;br /&gt;
Yes I have started the following pull request. &lt;br /&gt;
* [https://github.com/sugarlabs/sugar/pull/665 Feature: Proxy setting]&lt;br /&gt;
* [https://github.com/sugarlabs/sugar/pull/679 Feature: Connect to multiple School Server easily]&lt;br /&gt;
* [https://github.com/sugarlabs/sugar/pull/668 BugFix: Fix custom restart message display in control panel]&lt;br /&gt;
* [https://github.com/sugarlabs/sugar/pull/677 BugFix: Timezone change not accepted on cancel, fixes #3093]&lt;br /&gt;
* [https://github.com/sugarlabs/sugar/pull/682 BugFix: Metacity on fail reaped after timeout, fixes #4958]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If you plan to work on Sugar-Web projects we want to be sure that you&#039;re familiar with web technologies, so:&lt;br /&gt;
** Clone the [https://github.com/llaske/Sugarizer Sugarizer repository]&lt;br /&gt;
** Using instructions [https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity&lt;br /&gt;
** Send us a screenshot of your new activity executed in Sugarizer&lt;br /&gt;
&#039;&#039;&#039; Describe a great learning experience you had as a child.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I can relate to the goals of Sugar, now when I have grown up, since I have witnessed how an access to computer aided learning and quick access to resources (internet) can accelerate the process of learning as in my case. The ability to create has been the major driving force of my learning. Three events in particular were the most significant that I would like to share with:&lt;br /&gt;
*An investment into the future for a PC made by my parents at my 3rd grade gave me my best friend and teacher at my childhood. I believe, it is more about the enhancement of thinking process than in the ability to score higher marks in exams. Even though some people might be skeptical about the results of OLPC and Sugar provided the investment, but I believe in its long term effect as I have seen it.&lt;br /&gt;
*Then I was introduced to programming and the Internet by my school at 6th grade. The introduction made all the neurons light up in excitement for the ability to create my own real world applications. &lt;br /&gt;
*I was shown the path and I started sprinting on it myself. From the period of 7th grade to 10th grade, I learnt C++, C#, PHP, HTML, CSS, electronics and embedded programming to create many software and hardware applications and participated in many competitions upto the national level.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Yes, I would like to tell why I chose to contribute to Sugar. While looking at various organizations at the 2015 GSoC page, I shortlisted a few organizations based on my strongest skill set. I looked upon for the problem statement of each of the organizations that they were trying to achieve and there I came to know about Sugar. I felt attached to the community due to the following points:&lt;br /&gt;
*I could relate the computer aided Sugar pedagogy with my own experience.&lt;br /&gt;
*I am a volunteer at “National Service Scheme” in my college and along with my unit, we provide community service at a nearby village. Hence I can visualize if not perfectly the effect of OLPC and Sugar would have in the children deep down there. We used to take our laptops to show them animated content, fascinate them with electronics and RC planes. They used to gather around us and we witnessed maximum attendance on the Saturdays we went there.&lt;br /&gt;
*I found the community members at IRC and developer mailing list very welcome and I feel excited about my first experience at an International selfless open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please include the category tag at the bottom of your page the Category tag for 2016 GSoC applications.&lt;br /&gt;
&lt;br /&gt;
[[Category:2016 GSoC applications]]&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=98117</id>
		<title>Summer of Code/2016/Sugar Journal backup and restore</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=98117"/>
		<updated>2016-04-20T07:23:21Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: /* Miscellaneous */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About You ==&lt;br /&gt;
&#039;&#039;&#039;What is your name?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
My name is &amp;lt;b&amp;gt;Manash Pratim Das&amp;lt;/b&amp;gt;. I am a 2nd Year, Bachelor of Technology (B.Tech), undergraduate student at the [http://www.iitkgp.ac.in/ Indian Institute of Technology, Kharagpur, India]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your email address? &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My email address is &amp;lt;b&amp;gt;mpdmanash@gmail.com&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your Sugar Labs wiki username?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your IRC nickname on irc.freenode.net?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you&#039;d prefer.)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My native language is Hindi, but I am fluent in English as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Where are you located, and what hours (UTC) do you tend to work? (We also try to match mentors by general time zone if possible.)&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
I live at in Kharagpur, West Bengal, India. &amp;lt;br /&amp;gt;&lt;br /&gt;
My timezone is &amp;lt;b&amp;gt;UTC + 5:30 (Indian Standard Time)&amp;lt;/b&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
I generally tend to work in the evening (from 5 pm) and late night (to 4 am). But my time table is very flexible and can be changed as per the convenience of my mentor/community members. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Yes, I have contributed to two completely open source research projects at my college:&lt;br /&gt;
* [https://github.com/quadrotor-IITKgp “Aerial Robotics Kharagpur”]: I am a software team member of this organization. Few specific (other than open code contribution) [https://github.com/quadrotor-IITKgp/grid_localization 1][https://github.com/ManashRaja/quad_simulator 2]&lt;br /&gt;
* [https://github.com/AGV-IIT-KGP “Autonomous Ground Vehicle”]: Specific work [https://github.com/AGV-IIT-KGP/computer_vision/pull/28 1],[https://github.com/AGV-IIT-KGP/eklavya-2015/pull/75 2]&lt;br /&gt;
* My [https://github.com/ManashRaja/ GitHub profile] in general.&lt;br /&gt;
I also solved a bug for an Arduino library, but it was solved before I could send the PR :) .&lt;br /&gt;
&lt;br /&gt;
== About your project ==&lt;br /&gt;
&#039;&#039;&#039;What is the name of your project?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sugar Journal backup and restore&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will add advanced Sugar-server integration to increase the utility of available servers (XSCE or cloud). The following are the features in detail:&lt;br /&gt;
#&#039;&#039;&#039;Add selective backup-restore:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: easy).&amp;lt;/i&amp;gt; User can select part of the journal to be backed up or restored directly from within the backup page. Metadata for each Journal entry will store the list of dependencies and library objects, which will be downloaded again as needed (and, as available). &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; &lt;br /&gt;
#*Backups will be specific and save unnecessary wastage of storage space. &lt;br /&gt;
#*Teachers will be able to distribute specific Journal objects without hampering the existing Journal of a student.&lt;br /&gt;
#&#039;&#039;&#039;Add system to backup and restore from school servers (XSCE):&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: medium)&amp;lt;/i&amp;gt;. Now backup can only be stored and restored from devices, but this feature will add school servers to the options. &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
#*If the school-servers are present, then they can be made an easy way to store and distribute backups among many.&lt;br /&gt;
#*The existing (ds-backup) option on OLPC OS is not an effective method because it cannot be easily restored. (from what I understand)&lt;br /&gt;
#&#039;&#039;&#039;Add cloud service:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: easy).&amp;lt;/i&amp;gt; In a few clicks, it will let schools to connect each student’s pc to a local cloud server or a third party cloud server as per the availability to sync the journal data at a central location.&amp;lt;br /&amp;gt;&amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; It will be easy for schools to let hardware be shared among the student batches as students can login to their account from any hardware and can still access his/her own journal. This feature will strongly support the &amp;quot;One to many concept&amp;quot; that can be implemented on Sugar. (concept discussed on GSoC 2016 idea page [https://wiki.sugarlabs.org/go/Summer_of_Code/2016 link])&lt;br /&gt;
#&#039;&#039;&#039;Easy sharing of Journal items based on above server frameworks:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: medium)&amp;lt;/i&amp;gt; When server frameworks like XSCE and cloud are available, their utility can be increased by adding features where children can share any item with each other in just few easy clicks. &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt;&lt;br /&gt;
#*The backups can be used by multiple types of hardware/platform running Sugar (OLPC pcs, Android, Sugarizer) seamlessly using school-server’s multi-platform support to the advantage.&lt;br /&gt;
#*Teachers can distribute journal entries on mass scale.&lt;br /&gt;
#&#039;&#039;&#039;Use the servers for sharing storage space:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: hard)&amp;lt;/i&amp;gt;. &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;The data created by a Journal may take the free storage space on a low storage device pretty soon.&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; Hence this background feature will let the Journal utilize both the local storage and the server storage. Journal objects or libraries will be shifted if it can be shifted to the server. When any object will be needed, it will be downloaded and cached temporarily on the local storage. A method will be devised that will be looking for the objects that can be shifted to the server like, objects which are rarely used and those containing library items. The user will be able to set rules to manage the behaviour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Technologies:&amp;lt;/u&amp;gt; I will use python and its libraries for the main backend along with GTK+ (GTK3) for the GUI and graphics generator like Inkscape for the icons. For the different server integration, I am planning to use use server specific cli, apis, libraries or scripts like “owncloudcmd” for ownCloud,  “RClone” that supports many cloud services like Google Drive, Amazon S3, Openstack Swift / Rackspace cloud files / Memset Memstore, Dropbox, Google Cloud Storage, Amazon Cloud Drive, Microsoft One Drive, Hubic, Backblaze B2, Yandex Disk, The local filesystem. I will also use polkit for permissions and symbolic links. If I finally use rclone for cloud sync, then I might learn and use go programming language (its written on) or use pexpect to run its cli.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is the timeline for development of your project? The Summer of Code work period is from mid-May to mid-August; 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&#039;s good to have a plan at the beginning so you have an idea of where you&#039;re headed.) Note that you should probably plan to have something &amp;quot;working and 90% done&amp;quot; by the midterm evaluation (end of June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align: center;&amp;quot; | Week&lt;br /&gt;
! Scheduled Work &lt;br /&gt;
! Time I can devote&lt;br /&gt;
|-&lt;br /&gt;
| 22 April-22 May&lt;br /&gt;
(Community Bonding period)&lt;br /&gt;
| &lt;br /&gt;
*Introduce and become part of the community.  &lt;br /&gt;
*Look for various different ways to approach the project.&lt;br /&gt;
*Discuss with mentor(s), OLPC members, XSCE members and if possible the people who work down there to tailor the project to the perfect needs and flow.&lt;br /&gt;
*Draw a detailed roadmap on how I will implement each feature.&lt;br /&gt;
*Learn any required skill I may be missing.&lt;br /&gt;
*Design GUI according to the flow as discussed above and create icons as required required.&lt;br /&gt;
*Install XSCE and ownCloud servers at my own place. &lt;br /&gt;
*Create accounts in the third party cloud providers.&lt;br /&gt;
|22 April-29 April: 9 hours per week (end semester examinations.)&lt;br /&gt;
30th April-22nd May: 65 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 23 May-29 May&lt;br /&gt;
| &lt;br /&gt;
*Complete the specific backup-restore(1) and cloud server backup(3) features as I have a head start on both, having gone through the code and tested the functionality. [https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 1], [https://github.com/ManashRaja/cloud-sync-demo 2].&lt;br /&gt;
*Try to match my style of coding with the existing code by reviews and proper study of the code.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 30 May-5 June&lt;br /&gt;
| &lt;br /&gt;
*As I would have already installed the XSCE server at my place, and the implementation discussed to its detail in the &amp;quot;Community bonding period&amp;quot; hence I believe that I can buckle up and finish at least the basic functionality of this feature.&lt;br /&gt;
*Relatively free week to act as buffer if required or start the next week&#039;s work.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 6 June-12 June&lt;br /&gt;
| Since, the feature &amp;quot;servers for sharing storage space&amp;quot;(5) is a difficult task, hence I have planned more time for this feature. I will create the basic functionality as per the road map we would have discussed in the &amp;quot;Community Bonding period&amp;quot;&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 13 June-20 June&lt;br /&gt;
| &lt;br /&gt;
*Finalize the 5th feature.&lt;br /&gt;
*Testing and code documentation.&lt;br /&gt;
*90% as per functionality of the project will be complete before the Mid-Term Evaluation.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 21 June-28 June&lt;br /&gt;
| &lt;br /&gt;
*Mid-Term Evaluation&lt;br /&gt;
*Keep on brainstorming for GUIs and integration of my project which makes it very effective and user friendly.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 28 June-3 July&lt;br /&gt;
| &lt;br /&gt;
*Work on the feedback received after the evaluation.&lt;br /&gt;
*Complete cloud integration for third party service providers for it any of them were left.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 4 July-10 July&lt;br /&gt;
| &lt;br /&gt;
*Understand all types of collaborations that happen in the school among the children(students) and teachers, to know how my sharing feature fits in.&lt;br /&gt;
*Will add more finishing touches to the features (1,2,3,5) developed above.&lt;br /&gt;
*Start coding for the sharing feature.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 11 July-16 July&lt;br /&gt;
| &lt;br /&gt;
*Finish the sharing feature.&lt;br /&gt;
*Apart from the regular updates to the community about the project, I will submit my work upto now for review and suggestions by the community.&lt;br /&gt;
*Work on the suggestions.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 18 July-24 July&lt;br /&gt;
| Buffer week to complete if work is pending or add GUI to use the cloud framework developed to support “One hardware to many user” feature of Sugar.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 25 July-31 July&lt;br /&gt;
| &lt;br /&gt;
*Finalize the code&lt;br /&gt;
*Testing and improvements&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 1st Aug-7 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Proper code documentation, cleanup and flake8 verification.&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 8 Aug-15 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Feature documentation on https://wiki.sugarlabs.org/go/Features&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 16 Aug-24 Aug&lt;br /&gt;
| Submit code and evaluations.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My strength lies in my dynamic learning and self motivated hard work. I am a 2nd year undergraduate of the Indian Institute of Technology, Kharagpur where I am actively involved with the tech community and contribute to 2 research groups ([http://quadrotor-iitkgp.github.io/ 1][http://www.agv.iitkgp.ac.in/ 2]), 2 tech societies([https://www.robotix.in/team/ 1]), projects under professors and have participated in many competitions and hackathons apart from keeping my academics up. In these two years of my stay, I have learnt a great deal about time management. &amp;lt;b&amp;gt;All the professional level work we do has made me to realize realistic timelines for myself and my team.&amp;lt;/b&amp;gt; Though I failed initially, but I am getting better. My work has been mostly in software RnD and autonomous robotics and hence &amp;lt;b&amp;gt;I have gained lots of experience about the process and its time consumption involved in converting an idea to finished product.&amp;lt;/b&amp;gt; So, I have learned to plan my work and execute it efficiently.&lt;br /&gt;
Another important fact is that &amp;lt;b&amp;gt;my college summer vacations lie in the period of 29th April to 24th July, during which I will be able to devote 100% of my work time as GSoC being my top priority&amp;lt;/b&amp;gt; (8-9 hours a day and around 60 hours a week for 12 weeks) towards my contribution. Even though my college semester will start from 25th July, I will still be able to devote 40 hours a week due to a light semester. I also have a head start on the project I would be working on as &amp;lt;b&amp;gt;I have been involved with the Sugar code base since February 1st, added two features [https://github.com/sugarlabs/sugar/pull/665 1], [https://github.com/sugarlabs/sugar/pull/679 2], fixed two bugs [https://github.com/sugarlabs/sugar/pull/668 1], [https://github.com/sugarlabs/sugar/pull/677 2] and have made the prototype of two features ([https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 1][https://github.com/ManashRaja/cloud-sync-demo 2]) I will develop in this project&amp;lt;/b&amp;gt; apart from discussion about the project on IRC. Hence I am confident that I can ensure fully dedicated work and a pledge to deliver more than I promise.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;You and the community&#039;&#039;&#039; ==&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will mostly be used in the deployment side of Sugar. I strongly believe that my project will add to the sweetness of Sugar to make it come closer to the people who deploy and the even sweeter kids who use it. Backup and restore is a very important feature for various other members of the community who might be testing, developing and integrating Sugar on multiple platforms.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What will you do if you get stuck on your project and your mentor isn&#039;t around?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If I am stuck anywhere, then I will put my best efforts to solve the problem myself by trying Google search as always and referring other resources. But if in case help is required and my mentor is not available then I would refer to the community over developer mailing list, IRC, other GSoC participant if relevant or some specific member(s) whom I might know during the course of the project (eg: Quozl`and SAMdroid who have helped me before). If the problem is not Sugar specific, then I may even take help from my tech circle (Kharagpur Open Source Society) consisting of very smart people or professors if they are available during the vacation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*I would propose a repetitive scheduled meeting every two days at a particular time or as per the convenience of mentors/community members  where we would discuss the progress made and the further course of action. I can understand its effectiveness as we use this technique at our college while doing projects under professors so that the focus and progression is maintained. &lt;br /&gt;
*I will frequently update my progress and milestones achieved on my [http://manashpratim.in/ blog].&lt;br /&gt;
*Share it along with doubts or queries on a particular thread for this project on the developer mailing list to welcome inputs from all the community members.&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
* We want to make sure that you can set up a [http://developer.sugarlabs.org development environment] before the summer starts. Please do &#039;&#039;one&#039;&#039; of the following:&lt;br /&gt;
** 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 &amp;quot;logout&amp;quot;. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Buddy-menu-manash.png|1000px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. &#039;&#039;&#039;&lt;br /&gt;
:: It&#039;s normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.&lt;br /&gt;
&lt;br /&gt;
Yes I have started the following pull request. &lt;br /&gt;
* [https://github.com/sugarlabs/sugar/pull/665 Feature: Proxy setting]&lt;br /&gt;
* [https://github.com/sugarlabs/sugar/pull/679 Feature: Connect to multiple School Server easily]&lt;br /&gt;
* [https://github.com/sugarlabs/sugar/pull/668 BugFix: Fix custom restart message display in control panel]&lt;br /&gt;
* [https://github.com/sugarlabs/sugar/pull/677 BugFix: Timezone change not accepted on cancel, fixes #3093]&lt;br /&gt;
* [https://github.com/sugarlabs/sugar/pull/682 BugFix: Metacity on fail reaped after timeout, fixes #4958]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If you plan to work on Sugar-Web projects we want to be sure that you&#039;re familiar with web technologies, so:&lt;br /&gt;
** Clone the [https://github.com/llaske/Sugarizer Sugarizer repository]&lt;br /&gt;
** Using instructions [https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity&lt;br /&gt;
** Send us a screenshot of your new activity executed in Sugarizer&lt;br /&gt;
&#039;&#039;&#039; Describe a great learning experience you had as a child.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I can relate to the goals of Sugar, now when I have grown up, since I have witnessed how an access to computer aided learning and quick access to resources (internet) can accelerate the process of learning as in my case. The ability to create has been the major driving force of my learning. Three events in particular were the most significant that I would like to share with:&lt;br /&gt;
*An investment into the future for a PC made by my parents at my 3rd grade gave me my best friend and teacher at my childhood. I believe, it is more about the enhancement of thinking process than in the ability to score higher marks in exams. Even though some people might be skeptical about the results of OLPC and Sugar provided the investment, but I believe in its long term effect as I have seen it.&lt;br /&gt;
*Then I was introduced to programming and the Internet by my school at 6th grade. The introduction made all the neurons light up in excitement for the ability to create my own real world applications. &lt;br /&gt;
*I was shown the path and I started sprinting on it myself. From the period of 7th grade to 10th grade, I learnt C++, C#, PHP, HTML, CSS, electronics and embedded programming to create many software and hardware applications and participated in many competitions upto the national level.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Yes, I would like to tell why I chose to contribute to Sugar. While looking at various organizations at the 2015 GSoC page, I shortlisted a few organizations based on my strongest skill set. I looked upon for the problem statement of each of the organizations that they were trying to achieve and there I came to know about Sugar. I felt attached to the community due to the following points:&lt;br /&gt;
*I could relate the computer aided Sugar pedagogy with my own experience.&lt;br /&gt;
*I am a volunteer at “National Service Scheme” in my college and along with my unit, we provide community service at a nearby village. Hence I can visualize if not perfectly the effect of OLPC and Sugar would have in the children deep down there. We used to take our laptops to show them animated content, fascinate them with electronics and RC planes. They used to gather around us and we witnessed maximum attendance on the Saturdays we went there.&lt;br /&gt;
*I found the community members at IRC and developer mailing list very welcome and I feel excited about my first experience at an International selfless open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please include the category tag at the bottom of your page the Category tag for 2016 GSoC applications.&lt;br /&gt;
&lt;br /&gt;
[[Category:2016 GSoC applications]]&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=98089</id>
		<title>Summer of Code/2016/Sugar Journal backup and restore</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=98089"/>
		<updated>2016-04-17T23:34:42Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About You ==&lt;br /&gt;
&#039;&#039;&#039;What is your name?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
My name is &amp;lt;b&amp;gt;Manash Pratim Das&amp;lt;/b&amp;gt;. I am a 2nd Year, Bachelor of Technology (B.Tech), undergraduate student at the [http://www.iitkgp.ac.in/ Indian Institute of Technology, Kharagpur, India]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your email address? &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My email address is &amp;lt;b&amp;gt;mpdmanash@gmail.com&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your Sugar Labs wiki username?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your IRC nickname on irc.freenode.net?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you&#039;d prefer.)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My native language is Hindi, but I am fluent in English as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Where are you located, and what hours (UTC) do you tend to work? (We also try to match mentors by general time zone if possible.)&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
I live at in Kharagpur, West Bengal, India. &amp;lt;br /&amp;gt;&lt;br /&gt;
My timezone is &amp;lt;b&amp;gt;UTC + 5:30 (Indian Standard Time)&amp;lt;/b&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
I generally tend to work in the evening (from 5 pm) and late night (to 4 am). But my time table is very flexible and can be changed as per the convenience of my mentor/community members. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Yes, I have contributed to two completely open source research projects at my college:&lt;br /&gt;
* [https://github.com/quadrotor-IITKgp “Aerial Robotics Kharagpur”]: I am a software team member of this organization. Few specific (other than open code contribution) [https://github.com/quadrotor-IITKgp/grid_localization 1][https://github.com/ManashRaja/quad_simulator 2]&lt;br /&gt;
* [https://github.com/AGV-IIT-KGP “Autonomous Ground Vehicle”]: Specific work [https://github.com/AGV-IIT-KGP/computer_vision/pull/28 1],[https://github.com/AGV-IIT-KGP/eklavya-2015/pull/75 2]&lt;br /&gt;
* My [https://github.com/ManashRaja/ GitHub profile] in general.&lt;br /&gt;
I also solved a bug for an Arduino library, but it was solved before I could send the PR :) .&lt;br /&gt;
&lt;br /&gt;
== About your project ==&lt;br /&gt;
&#039;&#039;&#039;What is the name of your project?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sugar Journal backup and restore&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will add advanced Sugar-server integration to increase the utility of available servers (XSCE or cloud). The following are the features in detail:&lt;br /&gt;
#&#039;&#039;&#039;Add selective backup-restore:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: easy).&amp;lt;/i&amp;gt; User can select part of the journal to be backed up or restored directly from within the backup page. Metadata for each Journal entry will store the list of dependencies and library objects, which will be downloaded again as needed (and, as available). &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; &lt;br /&gt;
#*Backups will be specific and save unnecessary wastage of storage space. &lt;br /&gt;
#*Teachers will be able to distribute specific Journal objects without hampering the existing Journal of a student.&lt;br /&gt;
#&#039;&#039;&#039;Add system to backup and restore from school servers (XSCE):&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: medium)&amp;lt;/i&amp;gt;. Now backup can only be stored and restored from devices, but this feature will add school servers to the options. &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
#*If the school-servers are present, then they can be made an easy way to store and distribute backups among many.&lt;br /&gt;
#*The existing (ds-backup) option on OLPC OS is not an effective method because it cannot be easily restored. (from what I understand)&lt;br /&gt;
#&#039;&#039;&#039;Add cloud service:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: easy).&amp;lt;/i&amp;gt; In a few clicks, it will let schools to connect each student’s pc to a local cloud server or a third party cloud server as per the availability to sync the journal data at a central location.&amp;lt;br /&amp;gt;&amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; It will be easy for schools to let hardware be shared among the student batches as students can login to their account from any hardware and can still access his/her own journal. This feature will strongly support the &amp;quot;One to many concept&amp;quot; that can be implemented on Sugar. (concept discussed on GSoC 2016 idea page [https://wiki.sugarlabs.org/go/Summer_of_Code/2016 link])&lt;br /&gt;
#&#039;&#039;&#039;Easy sharing of Journal items based on above server frameworks:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: medium)&amp;lt;/i&amp;gt; When server frameworks like XSCE and cloud are available, their utility can be increased by adding features where children can share any item with each other in just few easy clicks. &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt;&lt;br /&gt;
#*The backups can be used by multiple types of hardware/platform running Sugar (OLPC pcs, Android, Sugarizer) seamlessly using school-server’s multi-platform support to the advantage.&lt;br /&gt;
#*Teachers can distribute journal entries on mass scale.&lt;br /&gt;
#&#039;&#039;&#039;Use the servers for sharing storage space:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: hard)&amp;lt;/i&amp;gt;. &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;The data created by a Journal may take the free storage space on a low storage device pretty soon.&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; Hence this background feature will let the Journal utilize both the local storage and the server storage. Journal objects or libraries will be shifted if it can be shifted to the server. When any object will be needed, it will be downloaded and cached temporarily on the local storage. A method will be devised that will be looking for the objects that can be shifted to the server like, objects which are rarely used and those containing library items. The user will be able to set rules to manage the behaviour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Technologies:&amp;lt;/u&amp;gt; I will use python and its libraries for the main backend along with GTK+ (GTK3) for the GUI and graphics generator like Inkscape for the icons. For the different server integration, I am planning to use use server specific cli, apis, libraries or scripts like “owncloudcmd” for ownCloud,  “RClone” that supports many cloud services like Google Drive, Amazon S3, Openstack Swift / Rackspace cloud files / Memset Memstore, Dropbox, Google Cloud Storage, Amazon Cloud Drive, Microsoft One Drive, Hubic, Backblaze B2, Yandex Disk, The local filesystem. I will also use polkit for permissions and symbolic links. If I finally use rclone for cloud sync, then I might learn and use go programming language (its written on) or use pexpect to run its cli.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is the timeline for development of your project? The Summer of Code work period is from mid-May to mid-August; 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&#039;s good to have a plan at the beginning so you have an idea of where you&#039;re headed.) Note that you should probably plan to have something &amp;quot;working and 90% done&amp;quot; by the midterm evaluation (end of June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align: center;&amp;quot; | Week&lt;br /&gt;
! Scheduled Work &lt;br /&gt;
! Time I can devote&lt;br /&gt;
|-&lt;br /&gt;
| 22 April-22 May&lt;br /&gt;
(Community Bonding period)&lt;br /&gt;
| &lt;br /&gt;
*Introduce and become part of the community.  &lt;br /&gt;
*Look for various different ways to approach the project.&lt;br /&gt;
*Discuss with mentor(s), OLPC members, XSCE members and if possible the people who work down there to tailor the project to the perfect needs and flow.&lt;br /&gt;
*Draw a detailed roadmap on how I will implement each feature.&lt;br /&gt;
*Learn any required skill I may be missing.&lt;br /&gt;
*Design GUI according to the flow as discussed above and create icons as required required.&lt;br /&gt;
*Install XSCE and ownCloud servers at my own place. &lt;br /&gt;
*Create accounts in the third party cloud providers.&lt;br /&gt;
|22 April-29 April: 9 hours per week (end semester examinations.)&lt;br /&gt;
30th April-22nd May: 65 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 23 May-29 May&lt;br /&gt;
| &lt;br /&gt;
*Complete the specific backup-restore(1) and cloud server backup(3) features as I have a head start on both, having gone through the code and tested the functionality. [https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 1], [https://github.com/ManashRaja/cloud-sync-demo 2].&lt;br /&gt;
*Try to match my style of coding with the existing code by reviews and proper study of the code.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 30 May-5 June&lt;br /&gt;
| &lt;br /&gt;
*As I would have already installed the XSCE server at my place, and the implementation discussed to its detail in the &amp;quot;Community bonding period&amp;quot; hence I believe that I can buckle up and finish at least the basic functionality of this feature.&lt;br /&gt;
*Relatively free week to act as buffer if required or start the next week&#039;s work.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 6 June-12 June&lt;br /&gt;
| Since, the feature &amp;quot;servers for sharing storage space&amp;quot;(5) is a difficult task, hence I have planned more time for this feature. I will create the basic functionality as per the road map we would have discussed in the &amp;quot;Community Bonding period&amp;quot;&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 13 June-20 June&lt;br /&gt;
| &lt;br /&gt;
*Finalize the 5th feature.&lt;br /&gt;
*Testing and code documentation.&lt;br /&gt;
*90% as per functionality of the project will be complete before the Mid-Term Evaluation.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 21 June-28 June&lt;br /&gt;
| &lt;br /&gt;
*Mid-Term Evaluation&lt;br /&gt;
*Keep on brainstorming for GUIs and integration of my project which makes it very effective and user friendly.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 28 June-3 July&lt;br /&gt;
| &lt;br /&gt;
*Work on the feedback received after the evaluation.&lt;br /&gt;
*Complete cloud integration for third party service providers for it any of them were left.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 4 July-10 July&lt;br /&gt;
| &lt;br /&gt;
*Understand all types of collaborations that happen in the school among the children(students) and teachers, to know how my sharing feature fits in.&lt;br /&gt;
*Will add more finishing touches to the features (1,2,3,5) developed above.&lt;br /&gt;
*Start coding for the sharing feature.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 11 July-16 July&lt;br /&gt;
| &lt;br /&gt;
*Finish the sharing feature.&lt;br /&gt;
*Apart from the regular updates to the community about the project, I will submit my work upto now for review and suggestions by the community.&lt;br /&gt;
*Work on the suggestions.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 18 July-24 July&lt;br /&gt;
| Buffer week to complete if work is pending or add GUI to use the cloud framework developed to support “One hardware to many user” feature of Sugar.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 25 July-31 July&lt;br /&gt;
| &lt;br /&gt;
*Finalize the code&lt;br /&gt;
*Testing and improvements&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 1st Aug-7 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Proper code documentation, cleanup and flake8 verification.&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 8 Aug-15 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Feature documentation on https://wiki.sugarlabs.org/go/Features&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 16 Aug-24 Aug&lt;br /&gt;
| Submit code and evaluations.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My strength lies in my dynamic learning and self motivated hard work. I am a 2nd year undergraduate of the Indian Institute of Technology, Kharagpur where I am actively involved with the tech community and contribute to 2 research groups ([http://quadrotor-iitkgp.github.io/ 1][http://www.agv.iitkgp.ac.in/ 2]), 2 tech societies([https://www.robotix.in/team/ 1]), projects under professors and have participated in many competitions and hackathons apart from keeping my academics up. In these two years of my stay, I have learnt a great deal about time management. &amp;lt;b&amp;gt;All the professional level work we do has made me to realize realistic timelines for myself and my team.&amp;lt;/b&amp;gt; Though I failed initially, but I am getting better. My work has been mostly in software RnD and autonomous robotics and hence &amp;lt;b&amp;gt;I have gained lots of experience about the process and its time consumption involved in converting an idea to finished product.&amp;lt;/b&amp;gt; So, I have learned to plan my work and execute it efficiently.&lt;br /&gt;
Another important fact is that &amp;lt;b&amp;gt;my college summer vacations lie in the period of 29th April to 24th July, during which I will be able to devote 100% of my work time as GSoC being my top priority&amp;lt;/b&amp;gt; (8-9 hours a day and around 60 hours a week for 12 weeks) towards my contribution. Even though my college semester will start from 25th July, I will still be able to devote 40 hours a week due to a light semester. I also have a head start on the project I would be working on as &amp;lt;b&amp;gt;I have been involved with the Sugar code base since February 1st, added two features [https://github.com/sugarlabs/sugar/pull/665 1], [https://github.com/sugarlabs/sugar/pull/679 2], fixed two bugs [https://github.com/sugarlabs/sugar/pull/668 1], [https://github.com/sugarlabs/sugar/pull/677 2] and have made the prototype of two features ([https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 1][https://github.com/ManashRaja/cloud-sync-demo 2]) I will develop in this project&amp;lt;/b&amp;gt; apart from discussion about the project on IRC. Hence I am confident that I can ensure fully dedicated work and a pledge to deliver more than I promise.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;You and the community&#039;&#039;&#039; ==&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will mostly be used in the deployment side of Sugar. I strongly believe that my project will add to the sweetness of Sugar to make it come closer to the people who deploy and the even sweeter kids who use it. Backup and restore is a very important feature for various other members of the community who might be testing, developing and integrating Sugar on multiple platforms.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What will you do if you get stuck on your project and your mentor isn&#039;t around?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If I am stuck anywhere, then I will put my best efforts to solve the problem myself by trying Google search as always and referring other resources. But if in case help is required and my mentor is not available then I would refer to the community over developer mailing list, IRC, other GSoC participant if relevant or some specific member(s) whom I might know during the course of the project (eg: Quozl`and SAMdroid who have helped me before). If the problem is not Sugar specific, then I may even take help from my tech circle (Kharagpur Open Source Society) consisting of very smart people or professors if they are available during the vacation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*I would propose a repetitive scheduled meeting every two days at a particular time or as per the convenience of mentors/community members  where we would discuss the progress made and the further course of action. I can understand its effectiveness as we use this technique at our college while doing projects under professors so that the focus and progression is maintained. &lt;br /&gt;
*I will frequently update my progress and milestones achieved on my [http://manashpratim.in/ blog].&lt;br /&gt;
*Share it along with doubts or queries on a particular thread for this project on the developer mailing list to welcome inputs from all the community members.&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
* We want to make sure that you can set up a [http://developer.sugarlabs.org development environment] before the summer starts. Please do &#039;&#039;one&#039;&#039; of the following:&lt;br /&gt;
** 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 &amp;quot;logout&amp;quot;. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Buddy-menu-manash.png|1000px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. &#039;&#039;&#039;&lt;br /&gt;
:: It&#039;s normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.&lt;br /&gt;
&lt;br /&gt;
Yes I have started the following pull request. &lt;br /&gt;
* [https://github.com/sugarlabs/sugar/pull/665 Feature: Proxy setting]&lt;br /&gt;
* [https://github.com/sugarlabs/sugar/pull/679 Feature: Connect to multiple School Server easily]&lt;br /&gt;
* [https://github.com/sugarlabs/sugar/pull/668 BugFix: Fix custom restart message display in control panel]&lt;br /&gt;
* [https://github.com/sugarlabs/sugar/pull/677 BugFix: Timezone change not accepted on cancel, fixes #3093]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If you plan to work on Sugar-Web projects we want to be sure that you&#039;re familiar with web technologies, so:&lt;br /&gt;
** Clone the [https://github.com/llaske/Sugarizer Sugarizer repository]&lt;br /&gt;
** Using instructions [https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity&lt;br /&gt;
** Send us a screenshot of your new activity executed in Sugarizer&lt;br /&gt;
&#039;&#039;&#039; Describe a great learning experience you had as a child.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I can relate to the goals of Sugar, now when I have grown up, since I have witnessed how an access to computer aided learning and quick access to resources (internet) can accelerate the process of learning as in my case. The ability to create has been the major driving force of my learning. Three events in particular were the most significant that I would like to share with:&lt;br /&gt;
*An investment into the future for a PC made by my parents at my 3rd grade gave me my best friend and teacher at my childhood. I believe, it is more about the enhancement of thinking process than in the ability to score higher marks in exams. Even though some people might be skeptical about the results of OLPC and Sugar provided the investment, but I believe in its long term effect as I have seen it.&lt;br /&gt;
*Then I was introduced to programming and the Internet by my school at 6th grade. The introduction made all the neurons light up in excitement for the ability to create my own real world applications. &lt;br /&gt;
*I was shown the path and I started sprinting on it myself. From the period of 7th grade to 10th grade, I learnt C++, C#, PHP, HTML, CSS, electronics and embedded programming to create many software and hardware applications and participated in many competitions upto the national level.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Yes, I would like to tell why I chose to contribute to Sugar. While looking at various organizations at the 2015 GSoC page, I shortlisted a few organizations based on my strongest skill set. I looked upon for the problem statement of each of the organizations that they were trying to achieve and there I came to know about Sugar. I felt attached to the community due to the following points:&lt;br /&gt;
*I could relate the computer aided Sugar pedagogy with my own experience.&lt;br /&gt;
*I am a volunteer at “National Service Scheme” in my college and along with my unit, we provide community service at a nearby village. Hence I can visualize if not perfectly the effect of OLPC and Sugar would have in the children deep down there. We used to take our laptops to show them animated content, fascinate them with electronics and RC planes. They used to gather around us and we witnessed maximum attendance on the Saturdays we went there.&lt;br /&gt;
*I found the community members at IRC and developer mailing list very welcome and I feel excited about my first experience at an International selfless open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please include the category tag at the bottom of your page the Category tag for 2016 GSoC applications.&lt;br /&gt;
&lt;br /&gt;
[[Category:2016 GSoC applications]]&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=98088</id>
		<title>Summer of Code/2016/Sugar Journal backup and restore</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=98088"/>
		<updated>2016-04-17T23:34:03Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: /* Miscellaneous */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About You ==&lt;br /&gt;
&#039;&#039;&#039;What is your name?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
My name is &amp;lt;b&amp;gt;Manash Pratim Das&amp;lt;/b&amp;gt;. I am a 2nd Year, Bachelor of Technology (B.Tech), undergraduate student at the [http://www.iitkgp.ac.in/ Indian Institute of Technology, Kharagpur, India]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your email address? &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My email address is &amp;lt;b&amp;gt;mpdmanash@gmail.com&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your Sugar Labs wiki username?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your IRC nickname on irc.freenode.net?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you&#039;d prefer.)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My native language is Hindi, but I am fluent in English as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Where are you located, and what hours (UTC) do you tend to work? (We also try to match mentors by general time zone if possible.)&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
I live at in Kharagpur, West Bengal, India. &amp;lt;br /&amp;gt;&lt;br /&gt;
My timezone is &amp;lt;b&amp;gt;UTC + 5:30 (Indian Standard Time)&amp;lt;/b&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
I generally tend to work in the evening (from 5 pm) and late night (to 4 am). But my time table is very flexible and can be changed as per the convenience of my mentor/community members. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Yes, I have contributed to two completely open source research projects at my college:&lt;br /&gt;
* [https://github.com/quadrotor-IITKgp “Aerial Robotics Kharagpur”]: I am a software team member of this organization. Few specific (other than open code contribution) [https://github.com/quadrotor-IITKgp/grid_localization 1][https://github.com/ManashRaja/quad_simulator 2]&lt;br /&gt;
* [https://github.com/AGV-IIT-KGP “Autonomous Ground Vehicle”]: Specific work [https://github.com/AGV-IIT-KGP/computer_vision/pull/28 1],[https://github.com/AGV-IIT-KGP/eklavya-2015/pull/75 2]&lt;br /&gt;
* My [https://github.com/ManashRaja/ GitHub profile] in general.&lt;br /&gt;
I also solved a bug for an Arduino library, but it was solved before I could send the PR :) .&lt;br /&gt;
&lt;br /&gt;
== About your project ==&lt;br /&gt;
&#039;&#039;&#039;What is the name of your project?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sugar Journal backup and restore&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will add advanced Sugar-server integration to increase the utility of available servers (XSCE or cloud). The following are the features in detail:&lt;br /&gt;
#&#039;&#039;&#039;Add selective backup-restore:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: easy).&amp;lt;/i&amp;gt; User can select part of the journal to be backed up or restored directly from within the backup page. Metadata for each Journal entry will store the list of dependencies and library objects, which will be downloaded again as needed (and, as available). &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; &lt;br /&gt;
#*Backups will be specific and save unnecessary wastage of storage space. &lt;br /&gt;
#*Teachers will be able to distribute specific Journal objects without hampering the existing Journal of a student.&lt;br /&gt;
#&#039;&#039;&#039;Add system to backup and restore from school servers (XSCE):&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: medium)&amp;lt;/i&amp;gt;. Now backup can only be stored and restored from devices, but this feature will add school servers to the options. &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
#*If the school-servers are present, then they can be made an easy way to store and distribute backups among many.&lt;br /&gt;
#*The existing (ds-backup) option on OLPC OS is not an effective method because it cannot be easily restored. (from what I understand)&lt;br /&gt;
#&#039;&#039;&#039;Add cloud service:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: easy).&amp;lt;/i&amp;gt; In a few clicks, it will let schools to connect each student’s pc to a local cloud server or a third party cloud server as per the availability to sync the journal data at a central location.&amp;lt;br /&amp;gt;&amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; It will be easy for schools to let hardware be shared among the student batches as students can login to their account from any hardware and can still access his/her own journal. This feature will strongly support the &amp;quot;One to many concept&amp;quot; that can be implemented on Sugar. (concept discussed on GSoC 2016 idea page [https://wiki.sugarlabs.org/go/Summer_of_Code/2016 link])&lt;br /&gt;
#&#039;&#039;&#039;Easy sharing of Journal items based on above server frameworks:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: medium)&amp;lt;/i&amp;gt; When server frameworks like XSCE and cloud are available, their utility can be increased by adding features where children can share any item with each other in just few easy clicks. &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt;&lt;br /&gt;
#*The backups can be used by multiple types of hardware/platform running Sugar (OLPC pcs, Android, Sugarizer) seamlessly using school-server’s multi-platform support to the advantage.&lt;br /&gt;
#*Teachers can distribute journal entries on mass scale.&lt;br /&gt;
#&#039;&#039;&#039;Use the servers for sharing storage space:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: hard)&amp;lt;/i&amp;gt;. &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;The data created by a Journal may take the free storage space on a low storage device pretty soon.&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; Hence this background feature will let the Journal utilize both the local storage and the server storage. Journal objects or libraries will be shifted if it can be shifted to the server. When any object will be needed, it will be downloaded and cached temporarily on the local storage. A method will be devised that will be looking for the objects that can be shifted to the server like, objects which are rarely used and those containing library items. The user will be able to set rules to manage the behaviour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Technologies:&amp;lt;/u&amp;gt; I will use python and its libraries for the main backend along with GTK+ (GTK3) for the GUI and graphics generator like Inkscape for the icons. For the different server integration, I am planning to use use server specific cli, apis, libraries or scripts like “owncloudcmd” for ownCloud,  “RClone” that supports many cloud services like Google Drive, Amazon S3, Openstack Swift / Rackspace cloud files / Memset Memstore, Dropbox, Google Cloud Storage, Amazon Cloud Drive, Microsoft One Drive, Hubic, Backblaze B2, Yandex Disk, The local filesystem. I will also use polkit for permissions and symbolic links. If I finally use rclone for cloud sync, then I might learn and use go programming language (its written on) or use pexpect to run its cli.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is the timeline for development of your project? The Summer of Code work period is from mid-May to mid-August; 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&#039;s good to have a plan at the beginning so you have an idea of where you&#039;re headed.) Note that you should probably plan to have something &amp;quot;working and 90% done&amp;quot; by the midterm evaluation (end of June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align: center;&amp;quot; | Week&lt;br /&gt;
! Scheduled Work &lt;br /&gt;
! Time I can devote&lt;br /&gt;
|-&lt;br /&gt;
| 22 April-22 May&lt;br /&gt;
(Community Bonding period)&lt;br /&gt;
| &lt;br /&gt;
*Introduce and become part of the community.  &lt;br /&gt;
*Look for various different ways to approach the project.&lt;br /&gt;
*Discuss with mentor(s), OLPC members, XSCE members and if possible the people who work down there to tailor the project to the perfect needs and flow.&lt;br /&gt;
*Draw a detailed roadmap on how I will implement each feature.&lt;br /&gt;
*Learn any required skill I may be missing.&lt;br /&gt;
*Design GUI according to the flow as discussed above and create icons as required required.&lt;br /&gt;
*Install XSCE and ownCloud servers at my own place. &lt;br /&gt;
*Create accounts in the third party cloud providers.&lt;br /&gt;
|22 April-29 April: 9 hours per week (end semester examinations.)&lt;br /&gt;
30th April-22nd May: 65 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 23 May-29 May&lt;br /&gt;
| &lt;br /&gt;
*Complete the specific backup-restore(1) and cloud server backup(3) features as I have a head start on both, having gone through the code and tested the functionality. [https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 1], [https://github.com/ManashRaja/cloud-sync-demo 2].&lt;br /&gt;
*Try to match my style of coding with the existing code by reviews and proper study of the code.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 30 May-5 June&lt;br /&gt;
| &lt;br /&gt;
*As I would have already installed the XSCE server at my place, and the implementation discussed to its detail in the &amp;quot;Community bonding period&amp;quot; hence I believe that I can buckle up and finish at least the basic functionality of this feature.&lt;br /&gt;
*Relatively free week to act as buffer if required or start the next week&#039;s work.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 6 June-12 June&lt;br /&gt;
| Since, the feature &amp;quot;servers for sharing storage space&amp;quot;(5) is a difficult task, hence I have planned more time for this feature. I will create the basic functionality as per the road map we would have discussed in the &amp;quot;Community Bonding period&amp;quot;&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 13 June-20 June&lt;br /&gt;
| &lt;br /&gt;
*Finalize the 5th feature.&lt;br /&gt;
*Testing and code documentation.&lt;br /&gt;
*90% as per functionality of the project will be complete before the Mid-Term Evaluation.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 21 June-28 June&lt;br /&gt;
| &lt;br /&gt;
*Mid-Term Evaluation&lt;br /&gt;
*Keep on brainstorming for GUIs and integration of my project which makes it very effective and user friendly.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 28 June-3 July&lt;br /&gt;
| &lt;br /&gt;
*Work on the feedback received after the evaluation.&lt;br /&gt;
*Complete cloud integration for third party service providers for it any of them were left.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 4 July-10 July&lt;br /&gt;
| &lt;br /&gt;
*Understand all types of collaborations that happen in the school among the children(students) and teachers, to know how my sharing feature fits in.&lt;br /&gt;
*Will add more finishing touches to the features (1,2,3,5) developed above.&lt;br /&gt;
*Start coding for the sharing feature.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 11 July-16 July&lt;br /&gt;
| &lt;br /&gt;
*Finish the sharing feature.&lt;br /&gt;
*Apart from the regular updates to the community about the project, I will submit my work upto now for review and suggestions by the community.&lt;br /&gt;
*Work on the suggestions.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 18 July-24 July&lt;br /&gt;
| Buffer week to complete if work is pending or add GUI to use the cloud framework developed to support “One hardware to many user” feature of Sugar.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 25 July-31 July&lt;br /&gt;
| &lt;br /&gt;
*Finalize the code&lt;br /&gt;
*Testing and improvements&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 1st Aug-7 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Proper code documentation, cleanup and flake8 verification.&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 8 Aug-15 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Feature documentation on https://wiki.sugarlabs.org/go/Features&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 16 Aug-24 Aug&lt;br /&gt;
| Submit code and evaluations.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My strength lies in my dynamic learning and self motivated hard work. I am a 2nd year undergraduate of the Indian Institute of Technology, Kharagpur where I am actively involved with the tech community and contribute to 2 research groups ([http://quadrotor-iitkgp.github.io/ 1][http://www.agv.iitkgp.ac.in/ 2]), 2 tech societies([https://www.robotix.in/team/ 1]), projects under professors and have participated in many competitions and hackathons apart from keeping my academics up. In these two years of my stay, I have learnt a great deal about time management. &amp;lt;b&amp;gt;All the professional level work we do has made me to realize realistic timelines for myself and my team.&amp;lt;/b&amp;gt; Though I failed initially, but I am getting better. My work has been mostly in software RnD and autonomous robotics and hence &amp;lt;b&amp;gt;I have gained lots of experience about the process and its time consumption involved in converting an idea to finished product.&amp;lt;/b&amp;gt; So, I have learned to plan my work and execute it efficiently.&lt;br /&gt;
Another important fact is that &amp;lt;b&amp;gt;my college summer vacations lie in the period of 29th April to 24th July, during which I will be able to devote 100% of my work time as GSoC being my top priority&amp;lt;/b&amp;gt; (8-9 hours a day and around 60 hours a week for 12 weeks) towards my contribution. Even though my college semester will start from 25th July, I will still be able to devote 40 hours a week due to a light semester. I also have a head start on the project I would be working on as &amp;lt;b&amp;gt;I have been involved with the Sugar code base since February 1st, added two features [https://github.com/sugarlabs/sugar/pull/665 1], [https://github.com/sugarlabs/sugar/pull/679 2], fixed two bugs [https://github.com/sugarlabs/sugar/pull/668 1], [https://github.com/sugarlabs/sugar/pull/677 2] and have made the prototype of two features ([https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 1][https://github.com/ManashRaja/cloud-sync-demo 2]) I will develop in this project&amp;lt;/b&amp;gt; apart from discussion about the project on IRC. Hence I am confident that I can ensure fully dedicated work and a pledge to deliver more than I promise.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;You and the community&#039;&#039;&#039; ==&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will mostly be used in the deployment side of Sugar. I strongly believe that my project will add to the sweetness of Sugar to make it come closer to the people who deploy and the even sweeter kids who use it. Backup and restore is a very important feature for various other members of the community who might be testing, developing and integrating Sugar on multiple platforms.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What will you do if you get stuck on your project and your mentor isn&#039;t around?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If I am stuck anywhere, then I will put my best efforts to solve the problem myself by trying Google search as always and referring other resources. But if in case help is required and my mentor is not available then I would refer to the community over developer mailing list, IRC, other GSoC participant if relevant or some specific member(s) whom I might know during the course of the project (eg: Quozl`and SAMdroid who have helped me before). If the problem is not Sugar specific, then I may even take help from my tech circle (Kharagpur Open Source Society) consisting of very smart people or professors if they are available during the vacation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*I would propose a repetitive scheduled meeting every two days at a particular time or as per the convenience of mentors/community members  where we would discuss the progress made and the further course of action. I can understand its effectiveness as we use this technique at our college while doing projects under professors so that the focus and progression is maintained. &lt;br /&gt;
*I will frequently update my progress and milestones achieved on my [http://manashpratim.in/ blog].&lt;br /&gt;
*Share it along with doubts or queries on a particular thread for this project on the developer mailing list to welcome inputs from all the community members.&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
* We want to make sure that you can set up a [http://developer.sugarlabs.org development environment] before the summer starts. Please do &#039;&#039;one&#039;&#039; of the following:&lt;br /&gt;
** 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 &amp;quot;logout&amp;quot;. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Buddy-menu-manash.png|1000px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. &#039;&#039;&#039;&lt;br /&gt;
:: It&#039;s normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.&lt;br /&gt;
&lt;br /&gt;
Yes I have started the following pull request. &lt;br /&gt;
* [https://github.com/sugarlabs/sugar/pull/665 Feature: Proxy setting]&lt;br /&gt;
* [https://github.com/sugarlabs/sugar/pull/679 Feature: Connect to multiple School Server easily]&lt;br /&gt;
* [https://github.com/sugarlabs/sugar/pull/668 BugFix: Fix custom restart message display in control panel]&lt;br /&gt;
* [https://github.com/sugarlabs/sugar/pull/677 BugFix: Timezone change not accepted on cancel, fixes #3093]&lt;br /&gt;
&lt;br /&gt;
* If you plan to work on Sugar-Web projects we want to be sure that you&#039;re familiar with web technologies, so:&lt;br /&gt;
** Clone the [https://github.com/llaske/Sugarizer Sugarizer repository]&lt;br /&gt;
** Using instructions [https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity&lt;br /&gt;
** Send us a screenshot of your new activity executed in Sugarizer&lt;br /&gt;
&#039;&#039;&#039; Describe a great learning experience you had as a child.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I can relate to the goals of Sugar, now when I have grown up, since I have witnessed how an access to computer aided learning and quick access to resources (internet) can accelerate the process of learning as in my case. The ability to create has been the major driving force of my learning. Three events in particular were the most significant that I would like to share with:&lt;br /&gt;
*An investment into the future for a PC made by my parents at my 3rd grade gave me my best friend and teacher at my childhood. I believe, it is more about the enhancement of thinking process than in the ability to score higher marks in exams. Even though some people might be skeptical about the results of OLPC and Sugar provided the investment, but I believe in its long term effect as I have seen it.&lt;br /&gt;
*Then I was introduced to programming and the Internet by my school at 6th grade. The introduction made all the neurons light up in excitement for the ability to create my own real world applications. &lt;br /&gt;
*I was shown the path and I started sprinting on it myself. From the period of 7th grade to 10th grade, I learnt C++, C#, PHP, HTML, CSS, electronics and embedded programming to create many software and hardware applications and participated in many competitions upto the national level.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Yes, I would like to tell why I chose to contribute to Sugar. While looking at various organizations at the 2015 GSoC page, I shortlisted a few organizations based on my strongest skill set. I looked upon for the problem statement of each of the organizations that they were trying to achieve and there I came to know about Sugar. I felt attached to the community due to the following points:&lt;br /&gt;
*I could relate the computer aided Sugar pedagogy with my own experience.&lt;br /&gt;
*I am a volunteer at “National Service Scheme” in my college and along with my unit, we provide community service at a nearby village. Hence I can visualize if not perfectly the effect of OLPC and Sugar would have in the children deep down there. We used to take our laptops to show them animated content, fascinate them with electronics and RC planes. They used to gather around us and we witnessed maximum attendance on the Saturdays we went there.&lt;br /&gt;
*I found the community members at IRC and developer mailing list very welcome and I feel excited about my first experience at an International selfless open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please include the category tag at the bottom of your page the Category tag for 2016 GSoC applications.&lt;br /&gt;
&lt;br /&gt;
[[Category:2016 GSoC applications]]&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=98087</id>
		<title>Summer of Code/2016/Sugar Journal backup and restore</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=98087"/>
		<updated>2016-04-17T23:29:20Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: /* About your project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About You ==&lt;br /&gt;
&#039;&#039;&#039;What is your name?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
My name is &amp;lt;b&amp;gt;Manash Pratim Das&amp;lt;/b&amp;gt;. I am a 2nd Year, Bachelor of Technology (B.Tech), undergraduate student at the [http://www.iitkgp.ac.in/ Indian Institute of Technology, Kharagpur, India]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your email address? &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My email address is &amp;lt;b&amp;gt;mpdmanash@gmail.com&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your Sugar Labs wiki username?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your IRC nickname on irc.freenode.net?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you&#039;d prefer.)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My native language is Hindi, but I am fluent in English as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Where are you located, and what hours (UTC) do you tend to work? (We also try to match mentors by general time zone if possible.)&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
I live at in Kharagpur, West Bengal, India. &amp;lt;br /&amp;gt;&lt;br /&gt;
My timezone is &amp;lt;b&amp;gt;UTC + 5:30 (Indian Standard Time)&amp;lt;/b&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
I generally tend to work in the evening (from 5 pm) and late night (to 4 am). But my time table is very flexible and can be changed as per the convenience of my mentor/community members. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Yes, I have contributed to two completely open source research projects at my college:&lt;br /&gt;
* [https://github.com/quadrotor-IITKgp “Aerial Robotics Kharagpur”]: I am a software team member of this organization. Few specific (other than open code contribution) [https://github.com/quadrotor-IITKgp/grid_localization 1][https://github.com/ManashRaja/quad_simulator 2]&lt;br /&gt;
* [https://github.com/AGV-IIT-KGP “Autonomous Ground Vehicle”]: Specific work [https://github.com/AGV-IIT-KGP/computer_vision/pull/28 1],[https://github.com/AGV-IIT-KGP/eklavya-2015/pull/75 2]&lt;br /&gt;
* My [https://github.com/ManashRaja/ GitHub profile] in general.&lt;br /&gt;
I also solved a bug for an Arduino library, but it was solved before I could send the PR :) .&lt;br /&gt;
&lt;br /&gt;
== About your project ==&lt;br /&gt;
&#039;&#039;&#039;What is the name of your project?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sugar Journal backup and restore&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will add advanced Sugar-server integration to increase the utility of available servers (XSCE or cloud). The following are the features in detail:&lt;br /&gt;
#&#039;&#039;&#039;Add selective backup-restore:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: easy).&amp;lt;/i&amp;gt; User can select part of the journal to be backed up or restored directly from within the backup page. Metadata for each Journal entry will store the list of dependencies and library objects, which will be downloaded again as needed (and, as available). &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; &lt;br /&gt;
#*Backups will be specific and save unnecessary wastage of storage space. &lt;br /&gt;
#*Teachers will be able to distribute specific Journal objects without hampering the existing Journal of a student.&lt;br /&gt;
#&#039;&#039;&#039;Add system to backup and restore from school servers (XSCE):&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: medium)&amp;lt;/i&amp;gt;. Now backup can only be stored and restored from devices, but this feature will add school servers to the options. &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
#*If the school-servers are present, then they can be made an easy way to store and distribute backups among many.&lt;br /&gt;
#*The existing (ds-backup) option on OLPC OS is not an effective method because it cannot be easily restored. (from what I understand)&lt;br /&gt;
#&#039;&#039;&#039;Add cloud service:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: easy).&amp;lt;/i&amp;gt; In a few clicks, it will let schools to connect each student’s pc to a local cloud server or a third party cloud server as per the availability to sync the journal data at a central location.&amp;lt;br /&amp;gt;&amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; It will be easy for schools to let hardware be shared among the student batches as students can login to their account from any hardware and can still access his/her own journal. This feature will strongly support the &amp;quot;One to many concept&amp;quot; that can be implemented on Sugar. (concept discussed on GSoC 2016 idea page [https://wiki.sugarlabs.org/go/Summer_of_Code/2016 link])&lt;br /&gt;
#&#039;&#039;&#039;Easy sharing of Journal items based on above server frameworks:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: medium)&amp;lt;/i&amp;gt; When server frameworks like XSCE and cloud are available, their utility can be increased by adding features where children can share any item with each other in just few easy clicks. &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt;&lt;br /&gt;
#*The backups can be used by multiple types of hardware/platform running Sugar (OLPC pcs, Android, Sugarizer) seamlessly using school-server’s multi-platform support to the advantage.&lt;br /&gt;
#*Teachers can distribute journal entries on mass scale.&lt;br /&gt;
#&#039;&#039;&#039;Use the servers for sharing storage space:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: hard)&amp;lt;/i&amp;gt;. &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;The data created by a Journal may take the free storage space on a low storage device pretty soon.&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; Hence this background feature will let the Journal utilize both the local storage and the server storage. Journal objects or libraries will be shifted if it can be shifted to the server. When any object will be needed, it will be downloaded and cached temporarily on the local storage. A method will be devised that will be looking for the objects that can be shifted to the server like, objects which are rarely used and those containing library items. The user will be able to set rules to manage the behaviour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Technologies:&amp;lt;/u&amp;gt; I will use python and its libraries for the main backend along with GTK+ (GTK3) for the GUI and graphics generator like Inkscape for the icons. For the different server integration, I am planning to use use server specific cli, apis, libraries or scripts like “owncloudcmd” for ownCloud,  “RClone” that supports many cloud services like Google Drive, Amazon S3, Openstack Swift / Rackspace cloud files / Memset Memstore, Dropbox, Google Cloud Storage, Amazon Cloud Drive, Microsoft One Drive, Hubic, Backblaze B2, Yandex Disk, The local filesystem. I will also use polkit for permissions and symbolic links. If I finally use rclone for cloud sync, then I might learn and use go programming language (its written on) or use pexpect to run its cli.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is the timeline for development of your project? The Summer of Code work period is from mid-May to mid-August; 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&#039;s good to have a plan at the beginning so you have an idea of where you&#039;re headed.) Note that you should probably plan to have something &amp;quot;working and 90% done&amp;quot; by the midterm evaluation (end of June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align: center;&amp;quot; | Week&lt;br /&gt;
! Scheduled Work &lt;br /&gt;
! Time I can devote&lt;br /&gt;
|-&lt;br /&gt;
| 22 April-22 May&lt;br /&gt;
(Community Bonding period)&lt;br /&gt;
| &lt;br /&gt;
*Introduce and become part of the community.  &lt;br /&gt;
*Look for various different ways to approach the project.&lt;br /&gt;
*Discuss with mentor(s), OLPC members, XSCE members and if possible the people who work down there to tailor the project to the perfect needs and flow.&lt;br /&gt;
*Draw a detailed roadmap on how I will implement each feature.&lt;br /&gt;
*Learn any required skill I may be missing.&lt;br /&gt;
*Design GUI according to the flow as discussed above and create icons as required required.&lt;br /&gt;
*Install XSCE and ownCloud servers at my own place. &lt;br /&gt;
*Create accounts in the third party cloud providers.&lt;br /&gt;
|22 April-29 April: 9 hours per week (end semester examinations.)&lt;br /&gt;
30th April-22nd May: 65 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 23 May-29 May&lt;br /&gt;
| &lt;br /&gt;
*Complete the specific backup-restore(1) and cloud server backup(3) features as I have a head start on both, having gone through the code and tested the functionality. [https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 1], [https://github.com/ManashRaja/cloud-sync-demo 2].&lt;br /&gt;
*Try to match my style of coding with the existing code by reviews and proper study of the code.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 30 May-5 June&lt;br /&gt;
| &lt;br /&gt;
*As I would have already installed the XSCE server at my place, and the implementation discussed to its detail in the &amp;quot;Community bonding period&amp;quot; hence I believe that I can buckle up and finish at least the basic functionality of this feature.&lt;br /&gt;
*Relatively free week to act as buffer if required or start the next week&#039;s work.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 6 June-12 June&lt;br /&gt;
| Since, the feature &amp;quot;servers for sharing storage space&amp;quot;(5) is a difficult task, hence I have planned more time for this feature. I will create the basic functionality as per the road map we would have discussed in the &amp;quot;Community Bonding period&amp;quot;&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 13 June-20 June&lt;br /&gt;
| &lt;br /&gt;
*Finalize the 5th feature.&lt;br /&gt;
*Testing and code documentation.&lt;br /&gt;
*90% as per functionality of the project will be complete before the Mid-Term Evaluation.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 21 June-28 June&lt;br /&gt;
| &lt;br /&gt;
*Mid-Term Evaluation&lt;br /&gt;
*Keep on brainstorming for GUIs and integration of my project which makes it very effective and user friendly.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 28 June-3 July&lt;br /&gt;
| &lt;br /&gt;
*Work on the feedback received after the evaluation.&lt;br /&gt;
*Complete cloud integration for third party service providers for it any of them were left.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 4 July-10 July&lt;br /&gt;
| &lt;br /&gt;
*Understand all types of collaborations that happen in the school among the children(students) and teachers, to know how my sharing feature fits in.&lt;br /&gt;
*Will add more finishing touches to the features (1,2,3,5) developed above.&lt;br /&gt;
*Start coding for the sharing feature.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 11 July-16 July&lt;br /&gt;
| &lt;br /&gt;
*Finish the sharing feature.&lt;br /&gt;
*Apart from the regular updates to the community about the project, I will submit my work upto now for review and suggestions by the community.&lt;br /&gt;
*Work on the suggestions.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 18 July-24 July&lt;br /&gt;
| Buffer week to complete if work is pending or add GUI to use the cloud framework developed to support “One hardware to many user” feature of Sugar.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 25 July-31 July&lt;br /&gt;
| &lt;br /&gt;
*Finalize the code&lt;br /&gt;
*Testing and improvements&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 1st Aug-7 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Proper code documentation, cleanup and flake8 verification.&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 8 Aug-15 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Feature documentation on https://wiki.sugarlabs.org/go/Features&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 16 Aug-24 Aug&lt;br /&gt;
| Submit code and evaluations.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My strength lies in my dynamic learning and self motivated hard work. I am a 2nd year undergraduate of the Indian Institute of Technology, Kharagpur where I am actively involved with the tech community and contribute to 2 research groups ([http://quadrotor-iitkgp.github.io/ 1][http://www.agv.iitkgp.ac.in/ 2]), 2 tech societies([https://www.robotix.in/team/ 1]), projects under professors and have participated in many competitions and hackathons apart from keeping my academics up. In these two years of my stay, I have learnt a great deal about time management. &amp;lt;b&amp;gt;All the professional level work we do has made me to realize realistic timelines for myself and my team.&amp;lt;/b&amp;gt; Though I failed initially, but I am getting better. My work has been mostly in software RnD and autonomous robotics and hence &amp;lt;b&amp;gt;I have gained lots of experience about the process and its time consumption involved in converting an idea to finished product.&amp;lt;/b&amp;gt; So, I have learned to plan my work and execute it efficiently.&lt;br /&gt;
Another important fact is that &amp;lt;b&amp;gt;my college summer vacations lie in the period of 29th April to 24th July, during which I will be able to devote 100% of my work time as GSoC being my top priority&amp;lt;/b&amp;gt; (8-9 hours a day and around 60 hours a week for 12 weeks) towards my contribution. Even though my college semester will start from 25th July, I will still be able to devote 40 hours a week due to a light semester. I also have a head start on the project I would be working on as &amp;lt;b&amp;gt;I have been involved with the Sugar code base since February 1st, added two features [https://github.com/sugarlabs/sugar/pull/665 1], [https://github.com/sugarlabs/sugar/pull/679 2], fixed two bugs [https://github.com/sugarlabs/sugar/pull/668 1], [https://github.com/sugarlabs/sugar/pull/677 2] and have made the prototype of two features ([https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 1][https://github.com/ManashRaja/cloud-sync-demo 2]) I will develop in this project&amp;lt;/b&amp;gt; apart from discussion about the project on IRC. Hence I am confident that I can ensure fully dedicated work and a pledge to deliver more than I promise.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;You and the community&#039;&#039;&#039; ==&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will mostly be used in the deployment side of Sugar. I strongly believe that my project will add to the sweetness of Sugar to make it come closer to the people who deploy and the even sweeter kids who use it. Backup and restore is a very important feature for various other members of the community who might be testing, developing and integrating Sugar on multiple platforms.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What will you do if you get stuck on your project and your mentor isn&#039;t around?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If I am stuck anywhere, then I will put my best efforts to solve the problem myself by trying Google search as always and referring other resources. But if in case help is required and my mentor is not available then I would refer to the community over developer mailing list, IRC, other GSoC participant if relevant or some specific member(s) whom I might know during the course of the project (eg: Quozl`and SAMdroid who have helped me before). If the problem is not Sugar specific, then I may even take help from my tech circle (Kharagpur Open Source Society) consisting of very smart people or professors if they are available during the vacation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*I would propose a repetitive scheduled meeting every two days at a particular time or as per the convenience of mentors/community members  where we would discuss the progress made and the further course of action. I can understand its effectiveness as we use this technique at our college while doing projects under professors so that the focus and progression is maintained. &lt;br /&gt;
*I will frequently update my progress and milestones achieved on my [http://manashpratim.in/ blog].&lt;br /&gt;
*Share it along with doubts or queries on a particular thread for this project on the developer mailing list to welcome inputs from all the community members.&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
* We want to make sure that you can set up a [http://developer.sugarlabs.org development environment] before the summer starts. Please do &#039;&#039;one&#039;&#039; of the following:&lt;br /&gt;
** 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 &amp;quot;logout&amp;quot;. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Buddy-menu-manash.png|1000px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. &#039;&#039;&#039;&lt;br /&gt;
:: It&#039;s normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.&lt;br /&gt;
&lt;br /&gt;
Yes I have sent two pull request. [https://github.com/sugarlabs/sugar/pull/665 Proxy setting feature] and two bug fixes [https://github.com/sugarlabs/sugar/pull/668 1],  [https://github.com/sugarlabs/sugar/pull/677 2]&lt;br /&gt;
&lt;br /&gt;
* If you plan to work on Sugar-Web projects we want to be sure that you&#039;re familiar with web technologies, so:&lt;br /&gt;
** Clone the [https://github.com/llaske/Sugarizer Sugarizer repository]&lt;br /&gt;
** Using instructions [https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity&lt;br /&gt;
** Send us a screenshot of your new activity executed in Sugarizer&lt;br /&gt;
&#039;&#039;&#039; Describe a great learning experience you had as a child.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I can relate to the goals of Sugar, now when I have grown up, since I have witnessed how an access to computer aided learning and quick access to resources (internet) can accelerate the process of learning as in my case. The ability to create has been the major driving force of my learning. Three events in particular were the most significant that I would like to share with:&lt;br /&gt;
*An investment into the future for a PC made by my parents at my 3rd grade gave me my best friend and teacher at my childhood. I believe, it is more about the enhancement of thinking process than in the ability to score higher marks in exams. Even though some people might be skeptical about the results of OLPC and Sugar provided the investment, but I believe in its long term effect as I have seen it.&lt;br /&gt;
*Then I was introduced to programming and the Internet by my school at 6th grade. The introduction made all the neurons light up in excitement for the ability to create my own real world applications. &lt;br /&gt;
*I was shown the path and I started sprinting on it myself. From the period of 7th grade to 10th grade, I learnt C++, C#, PHP, HTML, CSS, electronics and embedded programming to create many software and hardware applications and participated in many competitions upto the national level.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Yes, I would like to tell why I chose to contribute to Sugar. While looking at various organizations at the 2015 GSoC page, I shortlisted a few organizations based on my strongest skill set. I looked upon for the problem statement of each of the organizations that they were trying to achieve and there I came to know about Sugar. I felt attached to the community due to the following points:&lt;br /&gt;
*I could relate the computer aided Sugar pedagogy with my own experience.&lt;br /&gt;
*I am a volunteer at “National Service Scheme” in my college and along with my unit, we provide community service at a nearby village. Hence I can visualize if not perfectly the effect of OLPC and Sugar would have in the children deep down there. We used to take our laptops to show them animated content, fascinate them with electronics and RC planes. They used to gather around us and we witnessed maximum attendance on the Saturdays we went there.&lt;br /&gt;
*I found the community members at IRC and developer mailing list very welcome and I feel excited about my first experience at an International selfless open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please include the category tag at the bottom of your page the Category tag for 2016 GSoC applications.&lt;br /&gt;
&lt;br /&gt;
[[Category:2016 GSoC applications]]&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Features/Proxy_Settings&amp;diff=98086</id>
		<title>Features/Proxy Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Features/Proxy_Settings&amp;diff=98086"/>
		<updated>2016-04-17T23:17:04Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Feature Page Incomplete]]&lt;br /&gt;
[[Category:Feature|Proxy Settings]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
Allow the user to configure proxy settings using the Sugar Control Panel.&lt;br /&gt;
&lt;br /&gt;
== Owner ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:sascha_silbe|Sascha Silbe]], [[User:ajay_garg|Ajay Garg]] (ajay@activitycentral.com), [[User:ManashRaja|Manash Pratim Das]]&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
&lt;br /&gt;
* Targeted release: 0.110&lt;br /&gt;
* Last updated: 2016-04-18&lt;br /&gt;
* Percentage of completion: 100%&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
Both individual users and deployments need to be able to set a proxy for&lt;br /&gt;
Sugar and activities to use. While we&#039;d like the system to work that all&lt;br /&gt;
out automatically (e.g. using [https://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol WPAD]), this often isn&#039;t possible. Common&lt;br /&gt;
reasons include legacy (&amp;quot;inherited&amp;quot;) setups and network uplinks simply being&lt;br /&gt;
out of control of the user respectively deployment.&lt;br /&gt;
&lt;br /&gt;
The existing Network Control Panel is enhanced by adding a new section for the&lt;br /&gt;
proxy settings. For consistency between Sugar and Gnome, the basic layout of&lt;br /&gt;
the Gnome 3 proxy settings has been mirrored: A combo box allows the user to&lt;br /&gt;
select how the proxy setting should be determined (None=no proxy settings, &lt;br /&gt;
Use system proxy=let proxy be set by other means, Automatic=WPAD or PAC, &lt;br /&gt;
Manual=enter host names and ports for each protocol).&lt;br /&gt;
Based on which method was selected, additional configuration options are&lt;br /&gt;
presented to the user.&lt;br /&gt;
&lt;br /&gt;
The settings are stored in schemas (via &#039;Gsettings&#039;) and environment variables.&lt;br /&gt;
&lt;br /&gt;
== Benefit to Sugar ==&lt;br /&gt;
&lt;br /&gt;
See [[#Detailed Description|Detailed Description]].&lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
&lt;br /&gt;
Modifying the existing Network Control Panel.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Manual&amp;quot; mode==&lt;br /&gt;
&lt;br /&gt;
* Fill in the settings &amp;quot;manually&amp;quot;, and restart when prompted so.&lt;br /&gt;
:[[File:Manual1-proxy.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now open &amp;quot;www.google.com&amp;quot; shoud open.&lt;br /&gt;
:[[File:Google-proxy.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Automatic mode - PAC==&lt;br /&gt;
&lt;br /&gt;
* Fill in the URL of the proxy-file, and restart when prompted so.&lt;br /&gt;
:[[File:Auto-proxy.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now open &amp;quot;www.google.com&amp;quot; shoud open.&lt;br /&gt;
:[[File:Google-proxy.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automatic mode - WPAD==&lt;br /&gt;
&lt;br /&gt;
* Motive&lt;br /&gt;
** To provide proxy-configuration, without needing the client-user&lt;br /&gt;
*** to manualyy enter the proxy-settings (&#039;&#039;&#039;Manual&#039;&#039;&#039; mode)&lt;br /&gt;
*** to manually enter the location of proxy-configuration file herself (&#039;&#039;&#039;Automatic (PAC)&#039;&#039;&#039; mode).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Benefits&lt;br /&gt;
** By not needing the client-user to manually specify the settings, every client-user is saved  a headache :) Instead, all the configuration is done via a network-administrator, on the server-side.&lt;br /&gt;
** By delegating the responsibility of specifying every proxy-rule (even the proxy-configuration file) to the network-administrator, security is increased dramatically.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Notes&lt;br /&gt;
** Setting this particular mode (&#039;&#039;&#039;Automatic-WPAD&#039;&#039;&#039; Proxy) is quite complicated; and many possibilities exist. &#039;&#039;&#039;However, the bottom-rule is, client should himself not need to specifiy the location of proxy-configuration file as per say&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Testing (one of the possible ways :) )&lt;br /&gt;
** &#039;&#039;&#039;(For those not interested in the technicalities, please proceed to the next bullet :D)&#039;&#039;&#039; To verify that current dextrose-4 supports Auto-WPAD mode, we test using the method, as per the following 4 requirements, as listed at http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol#Requirements ::&lt;br /&gt;
***In order to use the DNS only method, a DNS entry is needed for a host named WPAD.&lt;br /&gt;
***The host at the WPAD address must be able to serve a Web page.&lt;br /&gt;
***In both cases, the Web server must be configured to serve the WPAD file with a MIME type of &amp;quot;application/x-ns-proxy-autoconfig&amp;quot;.&lt;br /&gt;
***If the DNS method is used, a file named wpad.dat must be located in the WPAD Web site&#039;s root directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Select &amp;quot;Automatic&amp;quot; mode in &amp;quot;My Settings&amp;quot; -&amp;gt; &amp;quot;Proxy&amp;quot; (without specifying anything else), and restart when prompted so.&lt;br /&gt;
:[[File:Wpad-proxy.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The above step is all that is needed for &amp;quot;Automatic (WPAD)&amp;quot; mode to  take effect; the WPAD-configuration-file will be located by the DHCP/DNS Server. However, for easy QA testing,  we specify an easy way to replicate this DNS behavior ::&lt;br /&gt;
&lt;br /&gt;
** Add the line &amp;quot;build.activitycentral.com wpad&amp;quot; to the file &amp;quot;/etc/hosts&amp;quot; on the XO, and reboot. &#039;&#039;&#039;It is repeated innumerable times, that this  step is required just for easy testing; in actual deployments, the DNS-name resolution will be provided by network-administrators/School-Server-running-DHCPD&#039;&#039;&#039;&lt;br /&gt;
** Also, thanks a ton to &#039;&#039;&#039;Santiago Rodriguez (scollazo@activitycentral.com)&#039;&#039;&#039; for setting up the proxy-configuration-files at build.activitycentral.com.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open &amp;quot;Browse&amp;quot;, and type in &amp;quot;www.google.com&amp;quot;. You should be prompted for credentials (suppose as required by the WPAD-configuration-file)&lt;br /&gt;
&lt;br /&gt;
:[[File:proxy2.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Entering wrong credentials in the previous step, re-prompts :). This time, enter correct credentials.&lt;br /&gt;
:[[File:proxy3.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The page opens successfully.&lt;br /&gt;
:[[File:Google-proxy.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
==Settings verification==&lt;br /&gt;
&lt;br /&gt;
The proxy settings entered by user are verified before saving to prevent accidental change in proxy settings.&lt;br /&gt;
** For &amp;quot;manual&amp;quot; type the proxy host addresses are pinged to check for their existence.&lt;br /&gt;
** For &amp;quot;auto&amp;quot; type the existence of the *.pac file is checked.&lt;br /&gt;
If the above verification fails then the user is prompted with an alert message and option to either &amp;quot;Break the Internet connection&amp;quot; or &amp;quot;Reset&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Manual proxy verification failed:&lt;br /&gt;
:[[File:Manual-proxy-error.png|640px]]&lt;br /&gt;
&lt;br /&gt;
* Auto proxy verification failed:&lt;br /&gt;
:[[File:Auto-proxy-error.png|640px]]&lt;br /&gt;
&lt;br /&gt;
== User Experience ==&lt;br /&gt;
&lt;br /&gt;
See [[#UI Design|UI Design]]&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
There are no new dependencies.&lt;br /&gt;
&lt;br /&gt;
== Contingency Plan ==&lt;br /&gt;
&lt;br /&gt;
Users can continue to use the Gnome Control Center to configure proxy settings.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
There is no documentation beyond this page.&lt;br /&gt;
&lt;br /&gt;
== Release Notes ==&lt;br /&gt;
&lt;br /&gt;
There have been no changes to public API. The Release Notes merely need to mention that users can now configure proxy settings from within Sugar. As detailed above, the UI is very similar to the Gnome UI.&lt;br /&gt;
&lt;br /&gt;
== Comments and Discussion ==&lt;br /&gt;
* See [[{{TALKPAGENAME}}|discussion tab for this feature]] &amp;lt;!-- This adds a link to the &amp;quot;discussion&amp;quot; tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page. --&amp;gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=File:Auto-proxy-error.png&amp;diff=98085</id>
		<title>File:Auto-proxy-error.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=File:Auto-proxy-error.png&amp;diff=98085"/>
		<updated>2016-04-17T23:16:38Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=File:Manual-proxy-error.png&amp;diff=98084</id>
		<title>File:Manual-proxy-error.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=File:Manual-proxy-error.png&amp;diff=98084"/>
		<updated>2016-04-17T23:15:44Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=File:Wpad-proxy.png&amp;diff=98083</id>
		<title>File:Wpad-proxy.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=File:Wpad-proxy.png&amp;diff=98083"/>
		<updated>2016-04-17T23:08:28Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=File:Google-proxy.png&amp;diff=98082</id>
		<title>File:Google-proxy.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=File:Google-proxy.png&amp;diff=98082"/>
		<updated>2016-04-17T23:06:43Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=File:Auto-proxy.png&amp;diff=98081</id>
		<title>File:Auto-proxy.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=File:Auto-proxy.png&amp;diff=98081"/>
		<updated>2016-04-17T23:05:43Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=File:Manual1-proxy.png&amp;diff=98080</id>
		<title>File:Manual1-proxy.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=File:Manual1-proxy.png&amp;diff=98080"/>
		<updated>2016-04-17T23:03:57Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=File:Manual-proxy.png&amp;diff=98079</id>
		<title>File:Manual-proxy.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=File:Manual-proxy.png&amp;diff=98079"/>
		<updated>2016-04-17T22:57:34Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Features/Multiple_schoolserver_registration&amp;diff=98077</id>
		<title>Features/Multiple schoolserver registration</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Features/Multiple_schoolserver_registration&amp;diff=98077"/>
		<updated>2016-04-17T22:23:16Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: /* How To Test */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Feature Page Incomplete]]&lt;br /&gt;
[[Category:Feature|.]]&lt;br /&gt;
&amp;lt;!-- You can add categories to tie features back to real deployments/schools requesting them, for example &lt;br /&gt;
[[Category:Features requested by School Xyz|&amp;lt;Feature Name&amp;gt;]] (the |Feature Name option sorts the entry on the category page under the first letter of &amp;lt;Feature Name&amp;gt;). --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
Sugar will be able to register to multiple school servers easily, without the need of clearing the registrations or configuring server ssh identity manually.&lt;br /&gt;
&lt;br /&gt;
== Owner ==&lt;br /&gt;
* Name: [[User:ManashRaja| Manash Pratim Das]]&lt;br /&gt;
&lt;br /&gt;
* Email: mpdmanash@gmail.com&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
* Targeted release: 0.110&lt;br /&gt;
* Last updated: 18 April 2016&lt;br /&gt;
* Status: Being discussed in sugar-devel and [https://github.com/sugarlabs/sugar/pull/679 pull requested].&lt;br /&gt;
* Percentage of completion: 90%&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
When a user wants to register to a new school server, they must first manually clear the previous registration details (if present). Then they have to create new registration even if they are returning back to an school server where their laptop has been registered before. For non-XO laptops, every new registration changes the random serial number of the laptop and serial number is used in backup url and backup paths for that laptop in the school server. Hence registering multiple times with the same school server leads to unnecessary change in backup path on non-XO laptops. &lt;br /&gt;
&lt;br /&gt;
Also from the various field reports where a user (generally a teacher) has to register to multiple XS servers on move, it becomes difficult to keep clearing the registration details manually. (reported [https://bugs.sugarlabs.org/ticket/362 bug] and [http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052076.html discussion]). In most of the deployments, the server address is same. As discussed [http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052114.html here]&lt;br /&gt;
The present system for registering a Sugar laptop with an school server is depicted below. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Sugar-server-present1.png|1000px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This feature is aimed to enhance the Sugar-Server interaction that would include:&lt;br /&gt;
**Automated management of registration data so that a user can connect to an school server with only one click regardless of the server being new or previously registered, hence enabling quick hop between multiple servers.&lt;br /&gt;
**The ssh identity for the servers where registration was successfully done will be added to ~/.ssh/known_hosts so that users (teachers) would not have to face identity errors while trying to establish ssh communication. &lt;br /&gt;
**Creating a new control panel section named &amp;quot;Server&amp;quot; to house the server related settings and provide a reorganized place for future settings to come.&lt;br /&gt;
**Retain the registration data required for ds-backup if present in the system so that it can maintain its functionality.&lt;br /&gt;
The following is the proposed flow being developed for the feature: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Sugar-server-modified1.png|1000px]]&lt;br /&gt;
*The main advantages of the above flow are:&lt;br /&gt;
**Manual clear of previous registration and ssh configuration is not required.&lt;br /&gt;
**Each laptop will have same backup url and backup path (in XSCE:/library/users) for a particular XSCE as it was created on first registration with the server. As registration will be done only once. The &amp;quot;Register&amp;quot; button would rather say &amp;quot;Connect to Server&amp;quot;. When user connects to an XSCE where it has registered previously (identified by the presence of pubkey), it would simply set its serial number, uuid and backup-url with the pre-registration data. This would enable better and advanced management of backups. (This is only supported in XSCE due to the presence of xs-authserver)&lt;br /&gt;
**No extra input is required from the user. The user just has to connect to the school server network, specify the jabber-server address and click on &amp;quot;Connect to server&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Benefit to Sugar ==&lt;br /&gt;
This feature has emerged from a [https://bugs.sugarlabs.org/ticket/362 bug].&lt;br /&gt;
The feature is supposed to bring Sugar closer to school server and improve the user experience. &lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
&#039;&#039;What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* The changes only affect use of Sugar with compatible school servers, such as XS or XSCE.&lt;br /&gt;
* Also no change is required on the school server side.&lt;br /&gt;
* Use of Sugar without a school server shall not be affected.&lt;br /&gt;
&lt;br /&gt;
==UI Design==&lt;br /&gt;
The user does not have to provide any extra input. The user is to provide the jabber server url and click on the button to register to it as before. So no change of UI is required to achieve the functionality. But as discussed in the developer mailing list ([http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052071.html link]), it has been emphasized that a new control panel section named &amp;quot;Servers&amp;quot; should be created. This section will as of now only have two user inputs &amp;quot;Jabber Server&amp;quot; and &amp;quot;Collaboration Server&amp;quot; which will be moved in from its present location of the &amp;quot;Network&amp;quot; control panel section.  &lt;br /&gt;
&lt;br /&gt;
== How To Test ==&lt;br /&gt;
* Connect to XSCE network. Enter its server_address in the &amp;quot;Server&amp;quot; entry present in &amp;quot;Network&amp;quot; section of control panel and click &amp;quot;Connect to server&amp;quot; from the desktop.&lt;br /&gt;
* If registration was successful, use Terminal activity for the command: ssh xsce-admin@server_address . Expected behavior: It will prompt for server password.&lt;br /&gt;
* Connect to a different XSCE network and register to it as above. &lt;br /&gt;
* Try doing ssh again for this XSCE. Expected behavior: It will still prompt for password, without showing identity mis-match error in case the server_address of both XSCE are same.&lt;br /&gt;
&lt;br /&gt;
== User Experience ==&lt;br /&gt;
The user experience is believed to increase quite significantly as it can be judged from the problems that are being faced now in this [https://bugs.sugarlabs.org/ticket/362 bug] and [http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052076.html discussion]&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--== Contingency Plan ==&lt;br /&gt;
&#039;&#039;If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as &amp;quot;None necessary, revert to previous release behaviour.&amp;quot;  Or it might not.  If your feature is not completed in time, we want to assure others that other parts of Sugar will not be in jeopardy.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&#039;&#039;Is there upstream documentation on this feature, or notes you have written yourself?  Has this topic been discussed in the mailing list or during a meeting? Link to that material here so other interested developers can get involved.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Release Notes ==&lt;br /&gt;
&#039;&#039;The Sugar Release Notes inform end-users about what is new in the release. An Example is [[0.84/Notes]]. The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the release team and shipped with the release.&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comments and Discussion ==&lt;br /&gt;
&lt;br /&gt;
Your comments are very welcome.  Please discuss through the mailing list.&lt;br /&gt;
&lt;br /&gt;
* First discussion on the mailing list:&lt;br /&gt;
  http://lists.sugarlabs.org/archive/sugar-devel/2016-April/051805.html&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Features/Multiple_schoolserver_registration&amp;diff=98076</id>
		<title>Features/Multiple schoolserver registration</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Features/Multiple_schoolserver_registration&amp;diff=98076"/>
		<updated>2016-04-17T22:18:04Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Feature Page Incomplete]]&lt;br /&gt;
[[Category:Feature|.]]&lt;br /&gt;
&amp;lt;!-- You can add categories to tie features back to real deployments/schools requesting them, for example &lt;br /&gt;
[[Category:Features requested by School Xyz|&amp;lt;Feature Name&amp;gt;]] (the |Feature Name option sorts the entry on the category page under the first letter of &amp;lt;Feature Name&amp;gt;). --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
Sugar will be able to register to multiple school servers easily, without the need of clearing the registrations or configuring server ssh identity manually.&lt;br /&gt;
&lt;br /&gt;
== Owner ==&lt;br /&gt;
* Name: [[User:ManashRaja| Manash Pratim Das]]&lt;br /&gt;
&lt;br /&gt;
* Email: mpdmanash@gmail.com&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
* Targeted release: 0.110&lt;br /&gt;
* Last updated: 18 April 2016&lt;br /&gt;
* Status: Being discussed in sugar-devel and [https://github.com/sugarlabs/sugar/pull/679 pull requested].&lt;br /&gt;
* Percentage of completion: 90%&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
When a user wants to register to a new school server, they must first manually clear the previous registration details (if present). Then they have to create new registration even if they are returning back to an school server where their laptop has been registered before. For non-XO laptops, every new registration changes the random serial number of the laptop and serial number is used in backup url and backup paths for that laptop in the school server. Hence registering multiple times with the same school server leads to unnecessary change in backup path on non-XO laptops. &lt;br /&gt;
&lt;br /&gt;
Also from the various field reports where a user (generally a teacher) has to register to multiple XS servers on move, it becomes difficult to keep clearing the registration details manually. (reported [https://bugs.sugarlabs.org/ticket/362 bug] and [http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052076.html discussion]). In most of the deployments, the server address is same. As discussed [http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052114.html here]&lt;br /&gt;
The present system for registering a Sugar laptop with an school server is depicted below. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Sugar-server-present1.png|1000px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This feature is aimed to enhance the Sugar-Server interaction that would include:&lt;br /&gt;
**Automated management of registration data so that a user can connect to an school server with only one click regardless of the server being new or previously registered, hence enabling quick hop between multiple servers.&lt;br /&gt;
**The ssh identity for the servers where registration was successfully done will be added to ~/.ssh/known_hosts so that users (teachers) would not have to face identity errors while trying to establish ssh communication. &lt;br /&gt;
**Creating a new control panel section named &amp;quot;Server&amp;quot; to house the server related settings and provide a reorganized place for future settings to come.&lt;br /&gt;
**Retain the registration data required for ds-backup if present in the system so that it can maintain its functionality.&lt;br /&gt;
The following is the proposed flow being developed for the feature: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Sugar-server-modified1.png|1000px]]&lt;br /&gt;
*The main advantages of the above flow are:&lt;br /&gt;
**Manual clear of previous registration and ssh configuration is not required.&lt;br /&gt;
**Each laptop will have same backup url and backup path (in XSCE:/library/users) for a particular XSCE as it was created on first registration with the server. As registration will be done only once. The &amp;quot;Register&amp;quot; button would rather say &amp;quot;Connect to Server&amp;quot;. When user connects to an XSCE where it has registered previously (identified by the presence of pubkey), it would simply set its serial number, uuid and backup-url with the pre-registration data. This would enable better and advanced management of backups. (This is only supported in XSCE due to the presence of xs-authserver)&lt;br /&gt;
**No extra input is required from the user. The user just has to connect to the school server network, specify the jabber-server address and click on &amp;quot;Connect to server&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Benefit to Sugar ==&lt;br /&gt;
This feature has emerged from a [https://bugs.sugarlabs.org/ticket/362 bug].&lt;br /&gt;
The feature is supposed to bring Sugar closer to school server and improve the user experience. &lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
&#039;&#039;What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* The changes only affect use of Sugar with compatible school servers, such as XS or XSCE.&lt;br /&gt;
* Also no change is required on the school server side.&lt;br /&gt;
* Use of Sugar without a school server shall not be affected.&lt;br /&gt;
&lt;br /&gt;
==UI Design==&lt;br /&gt;
The user does not have to provide any extra input. The user is to provide the jabber server url and click on the button to register to it as before. So no change of UI is required to achieve the functionality. But as discussed in the developer mailing list ([http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052071.html link]), it has been emphasized that a new control panel section named &amp;quot;Servers&amp;quot; should be created. This section will as of now only have two user inputs &amp;quot;Jabber Server&amp;quot; and &amp;quot;Collaboration Server&amp;quot; which will be moved in from its present location of the &amp;quot;Network&amp;quot; control panel section.  &lt;br /&gt;
&lt;br /&gt;
== How To Test ==&lt;br /&gt;
* Connect to XSCE network. Enter its server_address in the &amp;quot;Server&amp;quot; entry present in &amp;quot;Network&amp;quot; section of control panel and click &amp;quot;Connect to server&amp;quot; from the desktop.&lt;br /&gt;
* If registration was successful, use Terminal activity for the command: ssh xsce-admin@server_address . Expected behavior: It will prompt for server password.&lt;br /&gt;
* Connect to a different XSCE network and register to it as above. &lt;br /&gt;
* Try doing ssh again for this XSCE. Ecpected behavior: It will still prompt for password, without showing identity mis-match error in case the ip-address of both XSCE are same.&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
== User Experience ==&lt;br /&gt;
The user experience is believed to increase quite significantly as it can be judged from the problems that are being faced now in this [https://bugs.sugarlabs.org/ticket/362 bug] and [http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052076.html discussion]&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--== Contingency Plan ==&lt;br /&gt;
&#039;&#039;If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as &amp;quot;None necessary, revert to previous release behaviour.&amp;quot;  Or it might not.  If your feature is not completed in time, we want to assure others that other parts of Sugar will not be in jeopardy.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&#039;&#039;Is there upstream documentation on this feature, or notes you have written yourself?  Has this topic been discussed in the mailing list or during a meeting? Link to that material here so other interested developers can get involved.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Release Notes ==&lt;br /&gt;
&#039;&#039;The Sugar Release Notes inform end-users about what is new in the release. An Example is [[0.84/Notes]]. The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the release team and shipped with the release.&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comments and Discussion ==&lt;br /&gt;
&lt;br /&gt;
Your comments are very welcome.  Please discuss through the mailing list.&lt;br /&gt;
&lt;br /&gt;
* First discussion on the mailing list:&lt;br /&gt;
  http://lists.sugarlabs.org/archive/sugar-devel/2016-April/051805.html&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Features/Multiple_schoolserver_registration&amp;diff=98075</id>
		<title>Features/Multiple schoolserver registration</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Features/Multiple_schoolserver_registration&amp;diff=98075"/>
		<updated>2016-04-17T21:49:40Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Feature Page Incomplete]]&lt;br /&gt;
[[Category:Feature|.]]&lt;br /&gt;
&amp;lt;!-- You can add categories to tie features back to real deployments/schools requesting them, for example &lt;br /&gt;
[[Category:Features requested by School Xyz|&amp;lt;Feature Name&amp;gt;]] (the |Feature Name option sorts the entry on the category page under the first letter of &amp;lt;Feature Name&amp;gt;). --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
Sugar will be able to register to multiple school servers easily, without the need of clearing the registrations or configuring server ssh identity manually.&lt;br /&gt;
&lt;br /&gt;
== Owner ==&lt;br /&gt;
* Name: [[User:ManashRaja| Manash Pratim Das]]&lt;br /&gt;
&lt;br /&gt;
* Email: mpdmanash@gmail.com&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
* Targeted release: 0.110&lt;br /&gt;
* Last updated: 18 April 2016&lt;br /&gt;
* Status: Being discussed in sugar-devel and [https://github.com/sugarlabs/sugar/pull/679 pull requested].&lt;br /&gt;
* Percentage of completion: 90%&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
When a user wants to register to a new school server, they must first manually clear the previous registration details (if present). Then they have to create new registration even if they are returning back to an school server where their laptop has been registered before. For non-XO laptops, every new registration changes the random serial number of the laptop and serial number is used in backup url and backup paths for that laptop in the school server. Hence registering multiple times with the same school server leads to unnecessary change in backup path on non-XO laptops. &lt;br /&gt;
&lt;br /&gt;
Also from the various field reports where a user (generally a teacher) has to register to multiple XS servers on move, it becomes difficult to keep clearing the registration details manually. (reported [https://bugs.sugarlabs.org/ticket/362 bug] and [http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052076.html discussion]). In most of the deployments, the server address is same. As discussed [http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052114.html here]&lt;br /&gt;
The present system for registering a Sugar laptop with an school server is depicted below. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Sugar-server-present1.png|1000px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This feature is aimed to enhance the Sugar-Server interaction that would include:&lt;br /&gt;
**Automated management of registration data so that a user can connect to an school server with only one click regardless of the server being new or previously registered, hence enabling quick hop between multiple servers.&lt;br /&gt;
**The ssh identity for the servers where registration was successfully done will be added to ~/.ssh/known_hosts so that users (teachers) would not have to face identity errors while trying to establish ssh communication. &lt;br /&gt;
**Creating a new control panel section named &amp;quot;Server&amp;quot; to house the server related settings and provide a reorganized place for future settings to come.&lt;br /&gt;
**Retain the registration data required for ds-backup if present in the system so that it can maintain its functionality.&lt;br /&gt;
The following is the proposed flow being developed for the feature: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Sugar-server-modified1.png|1000px]]&lt;br /&gt;
*The main advantages of the above flow are:&lt;br /&gt;
**Manual clear of previous registration and ssh configuration is not required.&lt;br /&gt;
**Each laptop will have same backup url and backup path (in XSCE:/library/users) for a particular XSCE as it was created on first registration with the server. As registration will be done only once. The &amp;quot;Register&amp;quot; button would rather say &amp;quot;Connect to Server&amp;quot;. When user connects to an XSCE where it has registered previously (identified by the presence of pubkey), it would simply set its serial number, uuid and backup-url with the pre-registration data. This would enable better and advanced management of backups. (This is only supported in XSCE due to the presence of xs-authserver)&lt;br /&gt;
**No extra input is required from the user. The user just has to connect to the school server network, specify the jabber-server address and click on &amp;quot;Connect to server&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Benefit to Sugar ==&lt;br /&gt;
This feature has emerged from a [https://bugs.sugarlabs.org/ticket/362 bug].&lt;br /&gt;
The feature is supposed to bring Sugar closer to school server and improve the user experience. &lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
&#039;&#039;What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* The changes only affect use of Sugar with compatible school servers, such as XS or XSCE.&lt;br /&gt;
* Also no change is required on the school server side.&lt;br /&gt;
* Use of Sugar without a school server shall not be affected.&lt;br /&gt;
&lt;br /&gt;
==UI Design==&lt;br /&gt;
The user does not have to provide any extra input. The user is to provide the jabber server url and click on the button to register to it as before. So no change of UI is required to achieve the functionality. But as discussed in the developer mailing list ([http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052071.html link]), it has been emphasized that a new control panel section named &amp;quot;Servers&amp;quot; should be created. This section will as of now only have two user inputs &amp;quot;Jabber Server&amp;quot; and &amp;quot;Collaboration Server&amp;quot; which will be moved in from its present location of the &amp;quot;Network&amp;quot; control panel section.  &lt;br /&gt;
&lt;br /&gt;
== How To Test ==&lt;br /&gt;
{{:{{PAGENAME}}/Testing}}&lt;br /&gt;
== User Experience ==&lt;br /&gt;
The user experience is believed to increase quite significantly as it can be judged from the problems that are being faced now in this [https://bugs.sugarlabs.org/ticket/362 bug] and [http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052076.html discussion]&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--== Contingency Plan ==&lt;br /&gt;
&#039;&#039;If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as &amp;quot;None necessary, revert to previous release behaviour.&amp;quot;  Or it might not.  If your feature is not completed in time, we want to assure others that other parts of Sugar will not be in jeopardy.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&#039;&#039;Is there upstream documentation on this feature, or notes you have written yourself?  Has this topic been discussed in the mailing list or during a meeting? Link to that material here so other interested developers can get involved.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Release Notes ==&lt;br /&gt;
&#039;&#039;The Sugar Release Notes inform end-users about what is new in the release. An Example is [[0.84/Notes]]. The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the release team and shipped with the release.&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comments and Discussion ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Link to the discussion of this feature on lists.sugarlabs.org&#039;&#039;&lt;br /&gt;
* See [[{{TALKPAGENAME}}|the discussion tab for this feature.]] &amp;lt;!-- This adds a link to the &amp;quot;discussion&amp;quot; tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page. --&amp;gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Features/Multiple_schoolserver_registration&amp;diff=98074</id>
		<title>Features/Multiple schoolserver registration</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Features/Multiple_schoolserver_registration&amp;diff=98074"/>
		<updated>2016-04-17T21:27:05Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Feature Page Incomplete]]&lt;br /&gt;
[[Category:Feature|.]]&lt;br /&gt;
&amp;lt;!-- You can add categories to tie features back to real deployments/schools requesting them, for example &lt;br /&gt;
[[Category:Features requested by School Xyz|&amp;lt;Feature Name&amp;gt;]] (the |Feature Name option sorts the entry on the category page under the first letter of &amp;lt;Feature Name&amp;gt;). --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
Sugar will be able to register to multiple school servers easily, without the need of clearing the registrations or configuring server ssh identity manually.&lt;br /&gt;
&lt;br /&gt;
== Owner ==&lt;br /&gt;
* Name: [[User:ManashRaja| Manash Pratim Das]]&lt;br /&gt;
&lt;br /&gt;
* Email: mpdmanash@gmail.com&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
* Targeted release: (SUGAR_VERSION)&lt;br /&gt;
* Last updated: 18 April 2016&lt;br /&gt;
* Status: Being discussed in sugar-devel and [https://github.com/sugarlabs/sugar/pull/679 pull requested].&lt;br /&gt;
* Percentage of completion: 90%&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
When a user wants to register to a new school server, they must first manually clear the previous registration details (if present). Then they have to create new registration even if they are returning back to an school server where their laptop has been registered before. For non-XO laptops, every new registration changes the random serial number of the laptop and serial number is used in backup url and backup paths for that laptop in the school server. Hence registering multiple times with the same school server leads to unnecessary change in backup path on non-XO laptops. &lt;br /&gt;
&lt;br /&gt;
Also from the various field reports where a user (generally a teacher) has to register to multiple XS servers on move, it becomes difficult to keep clearing the registration details manually. (reported [https://bugs.sugarlabs.org/ticket/362 bug] and [http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052076.html discussion]). In most of the deployments, the server address is same. As discussed [http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052114.html here]&lt;br /&gt;
The present system for registering a Sugar laptop with an school server is depicted below. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Sugar-server-present1.png|1000px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This feature is aimed to enhance the Sugar-Server interaction that would include:&lt;br /&gt;
**Automated management of registration data so that a user can connect to an school server with only one click regardless of the server being new or previously registered, hence enabling quick hop between multiple servers.&lt;br /&gt;
**The ssh identity for the servers where registration was successfully done will be added to ~/.ssh/known_hosts so that users (teachers) would not have to face identity errors while trying to establish ssh communication. &lt;br /&gt;
**Creating a new control panel section named &amp;quot;Server&amp;quot; to house the server related settings and provide a reorganized place for future settings to come.&lt;br /&gt;
**Retain the registration data required for ds-backup if present in the system so that it can maintain its functionality.&lt;br /&gt;
The following is the proposed flow being developed for the feature: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Sugar-server-modified1.png|1000px]]&lt;br /&gt;
*The main advantages of the above flow are:&lt;br /&gt;
**Manual clear of previous registration and ssh configuration is not required.&lt;br /&gt;
**Each laptop will have same backup url and backup path (in XSCE:/library/users) for a particular XSCE as it was created on first registration with the server. As registration will be done only once. The &amp;quot;Register&amp;quot; button would rather say &amp;quot;Connect to Server&amp;quot;. When user connects to an XSCE where it has registered previously (identified by the presence of pubkey), it would simply set its serial number, uuid and backup-url with the pre-registration data. This would enable better and advanced management of backups. (This is only supported in XSCE due to the presence of xs-authserver)&lt;br /&gt;
**No extra input is required from the user. The user just has to connect to the school server network, specify the jabber-server address and click on &amp;quot;Connect to server&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Benefit to Sugar ==&lt;br /&gt;
This feature has emerged from a [https://bugs.sugarlabs.org/ticket/362 bug].&lt;br /&gt;
The feature is supposed to bring Sugar closer to school server and improve the user experience. &lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
&#039;&#039;What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* The changes only affect use of Sugar with compatible school servers, such as XS or XSCE.&lt;br /&gt;
* Also no change is required on the school server side.&lt;br /&gt;
* Use of Sugar without a school server shall not be affected.&lt;br /&gt;
&lt;br /&gt;
==UI Design==&lt;br /&gt;
The user does not have to provide any extra input. The user is to provide the jabber server url and click on the button to register to it as before. So no change of UI is required to achieve the functionality. But as discussed in the developer mailing list ([http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052071.html link]), it has been emphasized that a new control panel section named &amp;quot;Servers&amp;quot; should be created. This section will as of now only have two user inputs &amp;quot;Jabber Server&amp;quot; and &amp;quot;Collaboration Server&amp;quot; which will be moved in from its present location of the &amp;quot;Network&amp;quot; control panel section.  &lt;br /&gt;
&lt;br /&gt;
== How To Test ==&lt;br /&gt;
{{:{{PAGENAME}}/Testing}}&lt;br /&gt;
== User Experience ==&lt;br /&gt;
The user experience is believed to increase quite significantly as it can be judged from the problems that are being faced now in this [https://bugs.sugarlabs.org/ticket/362 bug] and [http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052076.html discussion]&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--== Contingency Plan ==&lt;br /&gt;
&#039;&#039;If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as &amp;quot;None necessary, revert to previous release behaviour.&amp;quot;  Or it might not.  If your feature is not completed in time, we want to assure others that other parts of Sugar will not be in jeopardy.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&#039;&#039;Is there upstream documentation on this feature, or notes you have written yourself?  Has this topic been discussed in the mailing list or during a meeting? Link to that material here so other interested developers can get involved.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Release Notes ==&lt;br /&gt;
&#039;&#039;The Sugar Release Notes inform end-users about what is new in the release. An Example is [[0.84/Notes]]. The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the release team and shipped with the release.&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comments and Discussion ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Link to the discussion of this feature on lists.sugarlabs.org&#039;&#039;&lt;br /&gt;
* See [[{{TALKPAGENAME}}|the discussion tab for this feature.]] &amp;lt;!-- This adds a link to the &amp;quot;discussion&amp;quot; tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page. --&amp;gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=File:Sugar-server-modified1.png&amp;diff=98073</id>
		<title>File:Sugar-server-modified1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=File:Sugar-server-modified1.png&amp;diff=98073"/>
		<updated>2016-04-17T21:26:54Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=File:Sugar-server-present1.png&amp;diff=98072</id>
		<title>File:Sugar-server-present1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=File:Sugar-server-present1.png&amp;diff=98072"/>
		<updated>2016-04-17T21:26:18Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: Modified&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Modified&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=File:Sugar-server-modified.png&amp;diff=98071</id>
		<title>File:Sugar-server-modified.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=File:Sugar-server-modified.png&amp;diff=98071"/>
		<updated>2016-04-17T21:24:28Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: ManashRaja uploaded a new version of File:Sugar-server-modified.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=File:Sugar-server-present.png&amp;diff=98070</id>
		<title>File:Sugar-server-present.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=File:Sugar-server-present.png&amp;diff=98070"/>
		<updated>2016-04-17T21:24:12Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: ManashRaja uploaded a new version of File:Sugar-server-present.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=File:Sugar-server-modified.png&amp;diff=98069</id>
		<title>File:Sugar-server-modified.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=File:Sugar-server-modified.png&amp;diff=98069"/>
		<updated>2016-04-17T21:21:49Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: ManashRaja uploaded a new version of File:Sugar-server-modified.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Features/Multiple_schoolserver_registration&amp;diff=98068</id>
		<title>Features/Multiple schoolserver registration</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Features/Multiple_schoolserver_registration&amp;diff=98068"/>
		<updated>2016-04-17T21:13:22Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Feature Page Incomplete]]&lt;br /&gt;
[[Category:Feature|.]]&lt;br /&gt;
&amp;lt;!-- You can add categories to tie features back to real deployments/schools requesting them, for example &lt;br /&gt;
[[Category:Features requested by School Xyz|&amp;lt;Feature Name&amp;gt;]] (the |Feature Name option sorts the entry on the category page under the first letter of &amp;lt;Feature Name&amp;gt;). --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
Sugar will be able to register to multiple school servers easily, without the need of clearing the registrations or configuring server ssh identity manually.&lt;br /&gt;
&lt;br /&gt;
== Owner ==&lt;br /&gt;
* Name: [[User:ManashRaja| Manash Pratim Das]]&lt;br /&gt;
&lt;br /&gt;
* Email: mpdmanash@gmail.com&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
* Targeted release: (SUGAR_VERSION)&lt;br /&gt;
* Last updated: 18 April 2016&lt;br /&gt;
* Status: Being discussed in sugar-devel and [https://github.com/sugarlabs/sugar/pull/679 pull requested].&lt;br /&gt;
* Percentage of completion: 90%&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
When a user wants to register to a new school server, they must first manually clear the previous registration details (if present). Then they have to create new registration even if they are returning back to an school server where their laptop has been registered before. For non-XO laptops, every new registration changes the random serial number of the laptop and serial number is used in backup url and backup paths for that laptop in the school server. Hence registering multiple times with the same school server leads to unnecessary change in backup path on non-XO laptops. &lt;br /&gt;
&lt;br /&gt;
Also from the various field reports where a user (generally a teacher) has to register to multiple XS servers on move, it becomes difficult to keep clearing the registration details manually. (reported [https://bugs.sugarlabs.org/ticket/362 bug] and [http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052076.html discussion]). In most of the deployments, the server address is same. As discussed [http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052114.html here]&lt;br /&gt;
The present system for registering a Sugar laptop with an school server is depicted below. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Sugar-server-present.png|1000px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This feature is aimed to enhance the Sugar-Server interaction that would include:&lt;br /&gt;
**Automated management of registration data so that a user can connect to an school server with only one click regardless of the server being new or previously registered, hence enabling quick hop between multiple servers.&lt;br /&gt;
**The ssh identity for the servers where registration was successfully done will be added to ~/.ssh/known_hosts so that users (teachers) would not have to face identity errors while trying to establish ssh communication. &lt;br /&gt;
**Creating a new control panel section named &amp;quot;Server&amp;quot; to house the server related settings and provide a reorganized place for future settings to come.&lt;br /&gt;
**Retain the registration data required for ds-backup if present in the system so that it can maintain its functionality.&lt;br /&gt;
The following is the proposed flow being developed for the feature: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Sugar-server-modified.png|1000px]]&lt;br /&gt;
*The main advantages of the above flow are:&lt;br /&gt;
**Manual clear of previous registration and ssh configuration is not required.&lt;br /&gt;
**Each laptop will have same backup url and backup path (in XSCE:/library/users) for a particular XSCE as it was created on first registration with the server. As registration will be done only once. The &amp;quot;Register&amp;quot; button would rather say &amp;quot;Connect to Server&amp;quot;. When user connects to an XSCE where it has registered previously (identified by the presence of pubkey), it would simply set its serial number, uuid and backup-url with the pre-registration data. This would enable better and advanced management of backups. (This is only supported in XSCE due to the presence of xs-authserver)&lt;br /&gt;
**No extra input is required from the user. The user just has to connect to the school server network, specify the jabber-server address and click on &amp;quot;Connect to server&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Benefit to Sugar ==&lt;br /&gt;
This feature has emerged from a [https://bugs.sugarlabs.org/ticket/362 bug].&lt;br /&gt;
The feature is supposed to bring Sugar closer to school server and improve the user experience. &lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
&#039;&#039;What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* The changes only affect use of Sugar with compatible school servers, such as XS or XSCE.&lt;br /&gt;
* Also no change is required on the school server side.&lt;br /&gt;
* Use of Sugar without a school server shall not be affected.&lt;br /&gt;
&lt;br /&gt;
==UI Design==&lt;br /&gt;
The user does not have to provide any extra input. The user is to provide the jabber server url and click on the button to register to it as before. So no change of UI is required to achieve the functionality. But as discussed in the developer mailing list ([http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052071.html link]), it has been emphasized that a new control panel section named &amp;quot;Servers&amp;quot; should be created. This section will as of now only have two user inputs &amp;quot;Jabber Server&amp;quot; and &amp;quot;Collaboration Server&amp;quot; which will be moved in from its present location of the &amp;quot;Network&amp;quot; control panel section.  &lt;br /&gt;
&lt;br /&gt;
== How To Test ==&lt;br /&gt;
{{:{{PAGENAME}}/Testing}}&lt;br /&gt;
== User Experience ==&lt;br /&gt;
The user experience is believed to increase quite significantly as it can be judged from the problems that are being faced now in this [https://bugs.sugarlabs.org/ticket/362 bug] and [http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052076.html discussion]&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--== Contingency Plan ==&lt;br /&gt;
&#039;&#039;If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as &amp;quot;None necessary, revert to previous release behaviour.&amp;quot;  Or it might not.  If your feature is not completed in time, we want to assure others that other parts of Sugar will not be in jeopardy.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&#039;&#039;Is there upstream documentation on this feature, or notes you have written yourself?  Has this topic been discussed in the mailing list or during a meeting? Link to that material here so other interested developers can get involved.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Release Notes ==&lt;br /&gt;
&#039;&#039;The Sugar Release Notes inform end-users about what is new in the release. An Example is [[0.84/Notes]]. The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the release team and shipped with the release.&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comments and Discussion ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Link to the discussion of this feature on lists.sugarlabs.org&#039;&#039;&lt;br /&gt;
* See [[{{TALKPAGENAME}}|the discussion tab for this feature.]] &amp;lt;!-- This adds a link to the &amp;quot;discussion&amp;quot; tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page. --&amp;gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Features/Multiple_schoolserver_registration&amp;diff=98067</id>
		<title>Features/Multiple schoolserver registration</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Features/Multiple_schoolserver_registration&amp;diff=98067"/>
		<updated>2016-04-17T21:09:46Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Feature Page Incomplete]]&lt;br /&gt;
[[Category:Feature|.]]&lt;br /&gt;
&amp;lt;!-- You can add categories to tie features back to real deployments/schools requesting them, for example &lt;br /&gt;
[[Category:Features requested by School Xyz|&amp;lt;Feature Name&amp;gt;]] (the |Feature Name option sorts the entry on the category page under the first letter of &amp;lt;Feature Name&amp;gt;). --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
Sugar will be able to register to multiple school servers easily, without the need of clearing the registrations or configuring server ssh identity manually.&lt;br /&gt;
&lt;br /&gt;
== Owner ==&lt;br /&gt;
* Name: [[User:ManashRaja| Manash Pratim Das]]&lt;br /&gt;
&lt;br /&gt;
* Email: mpdmanash@gmail.com&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
* Targeted release: (SUGAR_VERSION)&lt;br /&gt;
* Last updated: 18 April 2016&lt;br /&gt;
* Status: Being discussed in sugar-devel and [https://github.com/sugarlabs/sugar/pull/679 pull requested].&lt;br /&gt;
* Percentage of completion: 90%&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
When a user wants to register to a new school server, they must first manually clear the previous registration details (if present). Then they have to create new registration even if they are returning back to an school server where their laptop has been registered before. For non-XO laptops, every new registration changes the random serial number of the laptop and serial number is used in backup url and backup paths for that laptop in the school server. Hence registering multiple times with the same school server leads to unnecessary change in backup path on non-XO laptops. &lt;br /&gt;
&lt;br /&gt;
Also from the various field reports where a user (generally a teacher) has to register to multiple XS servers on move, it becomes difficult to keep clearing the registration details manually. (reported [https://bugs.sugarlabs.org/ticket/362 bug] and [http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052076.html discussion]). In most of the deployments, the server address is same. [As discussed here http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052114.html]&lt;br /&gt;
The present system for registering a Sugar laptop with an school server is depicted below. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Sugar-server-present.png|1000px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This feature is aimed to enhance the Sugar-Server interaction that would include:&lt;br /&gt;
**Automated management of registration data so that a user can connect to an school server with only one click regardless of the server being new or previously registered, hence enabling quick hop between multiple servers.&lt;br /&gt;
**The ssh identity for the servers where registration was successfully done will be added to ~/.ssh/known_hosts so that users (teachers) would not have to face identity errors while trying to establish ssh communication. &lt;br /&gt;
**Creating a new control panel section named &amp;quot;Server&amp;quot; to house the server related settings and provide a reorganized place for future settings to come.&lt;br /&gt;
**Retain the registration data required for ds-backup if present in the system so that it can maintain its functionality.&lt;br /&gt;
The following is the proposed flow being developed for the feature: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Sugar-server-modified.png|1000px]]&lt;br /&gt;
*The main advantages of the above flow are:&lt;br /&gt;
**Manual clear of previous registration and ssh configuration is not required.&lt;br /&gt;
**Each laptop will have same backup url and backup path (in XSCE:/library/users) for a particular XSCE as it was created on first registration with the server. As registration will be done only once. The &amp;quot;Register&amp;quot; button would rather say &amp;quot;Connect to Server&amp;quot;. When user connects to an XSCE where it has registered previously (identified by the presence of pubkey), it would simply set its serial number, uuid and backup-url with the pre-registration data. This would enable better and advanced management of backups. (This is only supported in XSCE due to the presence of xs-authserver)&lt;br /&gt;
**No extra input is required from the user. The user just has to connect to the school server network, specify the jabber-server address and click on &amp;quot;Connect to server&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Benefit to Sugar ==&lt;br /&gt;
This feature has emerged from a [https://bugs.sugarlabs.org/ticket/362 bug].&lt;br /&gt;
The feature is supposed to bring Sugar closer to school server and improve the user experience. &lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
&#039;&#039;What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* The changes only affect use of Sugar with compatible school servers, such as XS or XSCE.&lt;br /&gt;
* Also no change is required on the school server side.&lt;br /&gt;
* Use of Sugar without a school server shall not be affected.&lt;br /&gt;
&lt;br /&gt;
==UI Design==&lt;br /&gt;
The user does not have to provide any extra input. The user is to provide the jabber server url and click on the button to register to it as before. So no change of UI is required to achieve the functionality. But as discussed in the developer mailing list ([http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052071.html link]), it has been emphasized that a new control panel section named &amp;quot;Servers&amp;quot; should be created. This section will as of now only have two user inputs &amp;quot;Jabber Server&amp;quot; and &amp;quot;Collaboration Server&amp;quot; which will be moved in from its present location of the &amp;quot;Network&amp;quot; control panel section.  &lt;br /&gt;
&lt;br /&gt;
== How To Test ==&lt;br /&gt;
{{:{{PAGENAME}}/Testing}}&lt;br /&gt;
== User Experience ==&lt;br /&gt;
The user experience is believed to increase quite significantly as it can be judged from the problems that are being faced now in this [https://bugs.sugarlabs.org/ticket/362 bug] and [http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052076.html discussion]&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--== Contingency Plan ==&lt;br /&gt;
&#039;&#039;If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as &amp;quot;None necessary, revert to previous release behaviour.&amp;quot;  Or it might not.  If your feature is not completed in time, we want to assure others that other parts of Sugar will not be in jeopardy.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&#039;&#039;Is there upstream documentation on this feature, or notes you have written yourself?  Has this topic been discussed in the mailing list or during a meeting? Link to that material here so other interested developers can get involved.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Release Notes ==&lt;br /&gt;
&#039;&#039;The Sugar Release Notes inform end-users about what is new in the release. An Example is [[0.84/Notes]]. The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the release team and shipped with the release.&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comments and Discussion ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Link to the discussion of this feature on lists.sugarlabs.org&#039;&#039;&lt;br /&gt;
* See [[{{TALKPAGENAME}}|the discussion tab for this feature.]] &amp;lt;!-- This adds a link to the &amp;quot;discussion&amp;quot; tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page. --&amp;gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Features/Multi_XS-server_registration&amp;diff=98066</id>
		<title>Features/Multi XS-server registration</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Features/Multi_XS-server_registration&amp;diff=98066"/>
		<updated>2016-04-17T20:36:52Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: ManashRaja moved page Features/Multi XS-server registration to Features/Multiple schoolserver registration: Replaced XS with schoolver on title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Features/Multiple schoolserver registration]]&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Features/Multiple_schoolserver_registration&amp;diff=98065</id>
		<title>Features/Multiple schoolserver registration</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Features/Multiple_schoolserver_registration&amp;diff=98065"/>
		<updated>2016-04-17T20:36:51Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: ManashRaja moved page Features/Multi XS-server registration to Features/Multiple schoolserver registration: Replaced XS with schoolver on title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Feature Page Incomplete]]&lt;br /&gt;
[[Category:Feature|.]]&lt;br /&gt;
&amp;lt;!-- You can add categories to tie features back to real deployments/schools requesting them, for example &lt;br /&gt;
[[Category:Features requested by School Xyz|&amp;lt;Feature Name&amp;gt;]] (the |Feature Name option sorts the entry on the category page under the first letter of &amp;lt;Feature Name&amp;gt;). --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
Easily hop between multiple XS servers. Sugar will be able to register to multiple XS servers easily, without the need of clearing the registrations manually.&lt;br /&gt;
&lt;br /&gt;
== Owner ==&lt;br /&gt;
* Name: [[User:ManashRaja| Manash Pratim Das]]&lt;br /&gt;
&lt;br /&gt;
* Email: mpdmanash@gmail.com&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
* Targeted release: (SUGAR_VERSION)&lt;br /&gt;
* Last updated: 16 April 2016&lt;br /&gt;
* Status: Being discussed and draft developed [https://github.com/ManashRaja/sugar/commit/660985d2183416cd3ed758095e92adf82f87a10c link]&lt;br /&gt;
&amp;lt;!--* Percentage of completion: 10%--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
When a user wants to register to a new XS server, they must first manually clear the previous registration details (if present).  Then they have to create new registration even if they are returning back to an XS server where their laptop has been registered before. For non-XO laptops, every new registration changes the random serial number of the laptop and serial number is used in backup url and backup paths for that laptop in the XS server. Hence registering multiple times with the same XS server leads to unnecessary change in backup path on non-XO laptops. &lt;br /&gt;
&lt;br /&gt;
Also from the various field reports where a user (generally a teacher) has to register to multiple XS servers on move, it becomes difficult to keep clearing the registration details manually. ([https://bugs.sugarlabs.org/ticket/362 one such report here].&lt;br /&gt;
The present system for registering a Sugar laptop with an XS server is depicted below. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Sugar-server-present.png|1000px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This feature is aimed to enhance the Sugar-Server interaction that would include:&lt;br /&gt;
**Automated management of registration data so that a user can connect to an XS server with only one click regardless of the server being new or previously registered, hence enabling quick hop between multiple XS servers.&lt;br /&gt;
**Creating a new control panel section named &amp;quot;Server&amp;quot; to house the server related settings and provide a reorganized place for future settings to come.&lt;br /&gt;
**Retain the registration data required for ds-backup if present in the system so that it can maintain its functionality.&lt;br /&gt;
The following is the proposed flow being developed for the feature: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Sugar-server-modified.png|1000px]]&lt;br /&gt;
*The main advantages of the above flow are:&lt;br /&gt;
**Manual clear of registration is not required.&lt;br /&gt;
**Each laptop will have same backup url and backup path (in XS:/library/users) for a particular XS as it was created on first registration with the server. As registration will be done only once. The &amp;quot;Register&amp;quot; button would rather say &amp;quot;Connect to Server&amp;quot;. When user connects to an XS where it has registered previously (identified by the presence of pubkey), it would simply set its serial number, uuid and backup-url with the pre-registration data. This would enable better and advanced management of backups.&lt;br /&gt;
**No extra input is required from the user. The user just has to connect to the XS server ssid and specify the jabber-server address as before.&lt;br /&gt;
&lt;br /&gt;
== Benefit to Sugar ==&lt;br /&gt;
This feature has emerged from a [https://bugs.sugarlabs.org/ticket/362 bug].&lt;br /&gt;
The feature is supposed to bring Sugar closer to XS server and improve the user experience. &lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
&#039;&#039;What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* the changes only affect use of Sugar with compatible school servers, such as XS or XSCE,&lt;br /&gt;
* use of Sugar without a school server shall not be affected.&lt;br /&gt;
&lt;br /&gt;
==UI Design==&lt;br /&gt;
The user does not have to provide any extra input. The user is to provide the jabber server url and click on the button to register to it as before. So no change of UI is required to achieve the functionality. But as discussed in the developer mailing list ([http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052071.html link]), it has been emphasized that a new control panel section named &amp;quot;Servers&amp;quot; should be created. This section will as of now only have two user inputs &amp;quot;Jabber Server&amp;quot; and &amp;quot;Collaboration Server&amp;quot; which will be moved in from its present location of the &amp;quot;Network&amp;quot; control panel section.  &lt;br /&gt;
&lt;br /&gt;
== How To Test ==&lt;br /&gt;
{{:{{PAGENAME}}/Testing}}&lt;br /&gt;
== User Experience ==&lt;br /&gt;
The user experience is believed to increase quite significantly as it can be judged from the problems that are being faced now in this [https://bugs.sugarlabs.org/ticket/362 bug]&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--== Contingency Plan ==&lt;br /&gt;
&#039;&#039;If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as &amp;quot;None necessary, revert to previous release behaviour.&amp;quot;  Or it might not.  If your feature is not completed in time, we want to assure others that other parts of Sugar will not be in jeopardy.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&#039;&#039;Is there upstream documentation on this feature, or notes you have written yourself?  Has this topic been discussed in the mailing list or during a meeting? Link to that material here so other interested developers can get involved.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Release Notes ==&lt;br /&gt;
&#039;&#039;The Sugar Release Notes inform end-users about what is new in the release. An Example is [[0.84/Notes]]. The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the release team and shipped with the release.&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comments and Discussion ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Link to the discussion of this feature on lists.sugarlabs.org&#039;&#039;&lt;br /&gt;
* See [[{{TALKPAGENAME}}|the discussion tab for this feature.]] &amp;lt;!-- This adds a link to the &amp;quot;discussion&amp;quot; tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page. --&amp;gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Features/Proxy_Settings&amp;diff=98050</id>
		<title>Features/Proxy Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Features/Proxy_Settings&amp;diff=98050"/>
		<updated>2016-04-15T21:50:34Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Feature Page Incomplete]]&lt;br /&gt;
[[Category:Feature|Proxy Settings]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
Allow the user to configure proxy settings using the Sugar Control Panel.&lt;br /&gt;
&lt;br /&gt;
== Owner ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:sascha_silbe|Sascha Silbe]], [[User:ajay_garg|Ajay Garg]] (ajay@activitycentral.com), [[User:ManashRaja|Manash Pratim Das]]&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
&lt;br /&gt;
* Targeted release: Unspecified&lt;br /&gt;
* Last updated: 2016-04-12&lt;br /&gt;
* Percentage of completion: 100%&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
Both individual users and deployments need to be able to set a proxy for&lt;br /&gt;
Sugar and activities to use. While we&#039;d like the system to work that all&lt;br /&gt;
out automatically (e.g. using [https://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol WPAD]), this often isn&#039;t possible. Common&lt;br /&gt;
reasons include legacy (&amp;quot;inherited&amp;quot;) setups and network uplinks simply being&lt;br /&gt;
out of control of the user respectively deployment.&lt;br /&gt;
&lt;br /&gt;
The existing Network Control Panel is enhanced by adding a new section for the&lt;br /&gt;
proxy settings. For consistency between Sugar and Gnome, the basic layout of&lt;br /&gt;
the Gnome 3 proxy settings has been mirrored: A combo box allows the user to&lt;br /&gt;
select how the proxy setting should be determined (None=no proxy settings, &lt;br /&gt;
Use system proxy=let proxy be set by other means, Automatic=WPAD or PAC, &lt;br /&gt;
Manual=enter host names and ports for each protocol).&lt;br /&gt;
Based on which method was selected, additional configuration options are&lt;br /&gt;
presented to the user.&lt;br /&gt;
&lt;br /&gt;
The settings are stored in schemas (via &#039;Gsettings&#039;) and environment variables.&lt;br /&gt;
&lt;br /&gt;
== Benefit to Sugar ==&lt;br /&gt;
&lt;br /&gt;
See [[#Detailed Description|Detailed Description]].&lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
&lt;br /&gt;
Modifying the existing Network Control Panel.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Manual&amp;quot; mode==&lt;br /&gt;
&lt;br /&gt;
* Fill in the settings &amp;quot;manually&amp;quot;, and restart when prompted so.&lt;br /&gt;
:[[File:proxy21.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now, open Browse. &amp;quot;www.facebook.com&amp;quot; should be blacklisted.&lt;br /&gt;
:[[File:proxy5.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;www.google.com&amp;quot; shoud be allowed.&lt;br /&gt;
:[[File:proxy4.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Automatic mode - PAC==&lt;br /&gt;
&lt;br /&gt;
* Fill in the URL of the proxy-file, and restart when prompted so.&lt;br /&gt;
:[[File:proxy24.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now, open Browse. &amp;quot;www.facebook.com&amp;quot; should be blacklisted.&lt;br /&gt;
:[[File:proxy5.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;www.google.com&amp;quot; shoud be allowed.&lt;br /&gt;
:[[File:proxy4.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automatic mode - WPAD==&lt;br /&gt;
&lt;br /&gt;
* Motive&lt;br /&gt;
** To provide proxy-configuration, without needing the client-user&lt;br /&gt;
*** to manualyy enter the proxy-settings (&#039;&#039;&#039;Manual&#039;&#039;&#039; mode)&lt;br /&gt;
*** to manually enter the location of proxy-configuration file herself (&#039;&#039;&#039;Automatic (PAC)&#039;&#039;&#039; mode).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Benefits&lt;br /&gt;
** By not needing the client-user to manually specify the settings, every client-user is saved  a headache :) Instead, all the configuration is done via a network-administrator, on the server-side.&lt;br /&gt;
** By delegating the responsibility of specifying every proxy-rule (even the proxy-configuration file) to the network-administrator, security is increased dramatically.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Notes&lt;br /&gt;
** Setting this particular mode (&#039;&#039;&#039;Automatic-WPAD&#039;&#039;&#039; Proxy) is quite complicated; and many possibilities exist. &#039;&#039;&#039;However, the bottom-rule is, client should himself not need to specifiy the location of proxy-configuration file as per say&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Testing (one of the possible ways :) )&lt;br /&gt;
** &#039;&#039;&#039;(For those not interested in the technicalities, please proceed to the next bullet :D)&#039;&#039;&#039; To verify that current dextrose-4 supports Auto-WPAD mode, we test using the method, as per the following 4 requirements, as listed at http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol#Requirements ::&lt;br /&gt;
***In order to use the DNS only method, a DNS entry is needed for a host named WPAD.&lt;br /&gt;
***The host at the WPAD address must be able to serve a Web page.&lt;br /&gt;
***In both cases, the Web server must be configured to serve the WPAD file with a MIME type of &amp;quot;application/x-ns-proxy-autoconfig&amp;quot;.&lt;br /&gt;
***If the DNS method is used, a file named wpad.dat must be located in the WPAD Web site&#039;s root directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Select &amp;quot;Automatic&amp;quot; mode in &amp;quot;My Settings&amp;quot; -&amp;gt; &amp;quot;Proxy&amp;quot; (without specifying anything else), and restart when prompted so.&lt;br /&gt;
:[[File:proxy1.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The above step is all that is needed for &amp;quot;Automatic (WPAD)&amp;quot; mode to  take effect; the WPAD-configuration-file will be located by the DHCP/DNS Server. However, for easy QA testing,  we specify an easy way to replicate this DNS behavior ::&lt;br /&gt;
&lt;br /&gt;
** Add the line &amp;quot;build.activitycentral.com wpad&amp;quot; to the file &amp;quot;/etc/hosts&amp;quot; on the XO, and reboot. &#039;&#039;&#039;It is repeated innumerable times, that this  step is required just for easy testing; in actual deployments, the DNS-name resolution will be provided by network-administrators/School-Server-running-DHCPD&#039;&#039;&#039;&lt;br /&gt;
** Also, thanks a ton to &#039;&#039;&#039;Santiago Rodriguez (scollazo@activitycentral.com)&#039;&#039;&#039; for setting up the proxy-configuration-files at build.activitycentral.com.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open &amp;quot;Browse&amp;quot;, and type in &amp;quot;www.google.com&amp;quot;. You should be prompted for credentials (as is required by the WPAD-configuration-file at build.activitycentral.com&lt;br /&gt;
&lt;br /&gt;
:[[File:proxy2.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Entering wrong credentials in the previous step, re-prompts :). This time, enter correct credentials.&lt;br /&gt;
:[[File:proxy3.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The page opens successfully.&lt;br /&gt;
:[[File:proxy4.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Next, type &amp;quot;www.facebook.com&amp;quot;; the &amp;quot;Access Denied&amp;quot; page is shown instantaneously, as per the rule in the WPAD-configuration-file at build.activitycentral.com&lt;br /&gt;
:[[File:proxy5.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* NOTE: The proxy setup will persist even if a user switches to Gnome Desktop, because the way it is setup, is the natural way gnome does too ( GCONF ) (Thanks Ariel).&lt;br /&gt;
&lt;br /&gt;
== User Experience ==&lt;br /&gt;
&lt;br /&gt;
See [[#UI Design|UI Design]]&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
There are no new dependencies.&lt;br /&gt;
&lt;br /&gt;
== Contingency Plan ==&lt;br /&gt;
&lt;br /&gt;
Users can continue to use the Gnome Control Center to configure proxy settings.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
There is no documentation beyond this page.&lt;br /&gt;
&lt;br /&gt;
== Release Notes ==&lt;br /&gt;
&lt;br /&gt;
There have been no changes to public API. The Release Notes merely need to mention that users can now configure proxy settings from within Sugar. As detailed above, the UI is very similar to the Gnome UI.&lt;br /&gt;
&lt;br /&gt;
== Comments and Discussion ==&lt;br /&gt;
* See [[{{TALKPAGENAME}}|discussion tab for this feature]] &amp;lt;!-- This adds a link to the &amp;quot;discussion&amp;quot; tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page. --&amp;gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Features/Multiple_schoolserver_registration&amp;diff=98049</id>
		<title>Features/Multiple schoolserver registration</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Features/Multiple_schoolserver_registration&amp;diff=98049"/>
		<updated>2016-04-15T21:46:50Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Feature Page Incomplete]]&lt;br /&gt;
[[Category:Feature|.]]&lt;br /&gt;
&amp;lt;!-- You can add categories to tie features back to real deployments/schools requesting them, for example &lt;br /&gt;
[[Category:Features requested by School Xyz|&amp;lt;Feature Name&amp;gt;]] (the |Feature Name option sorts the entry on the category page under the first letter of &amp;lt;Feature Name&amp;gt;). --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
Easily hop between multiple XS servers. Sugar will be able to register to multiple XS servers easily, without the need of clearing the registrations manually.&lt;br /&gt;
&lt;br /&gt;
== Owner ==&lt;br /&gt;
* Name: [[User:ManashRaja| Manash Pratim Das]]&lt;br /&gt;
&lt;br /&gt;
* Email: mpdmanash@gmail.com&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
* Targeted release: (SUGAR_VERSION)&lt;br /&gt;
* Last updated: 16 April 2016&lt;br /&gt;
* Status: Being discussed and draft developed [https://github.com/ManashRaja/sugar/commit/660985d2183416cd3ed758095e92adf82f87a10c link]&lt;br /&gt;
&amp;lt;!--* Percentage of completion: 10%--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
In case a user wants to register to a new XS server, he/she has to first manually clear the previous registration details(if present). He/she has to create new registration even if he/she returns back to an XS server where his laptop has been registered before. For non-XO laptops, every new registration changes the random serial number of the laptop and serial number is used in backup url and backup paths for that laptop in the XS server. Hence registering multiple times with the same XS server leads to unnecessary change in backup path on non-XO laptops. &lt;br /&gt;
&lt;br /&gt;
Also from the various field reports where a user (generally a teacher) has to register to multiple XS servers on move, it becomes difficult to keep clearing the registration details manually. ([https://bugs.sugarlabs.org/ticket/362 one such report here].&lt;br /&gt;
The present system for registering a Sugar laptop with an XS server is depicted below. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Sugar-server-present.png|1000px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This feature is aimed to enhance the Sugar-Server interaction that would include:&lt;br /&gt;
**Automated management of registration data so that a user can connect to an XS server with only one click regardless of the server being new or previously registered, hence enabling quick hop between multiple XS servers.&lt;br /&gt;
**Creating a new control panel section named &amp;quot;Server&amp;quot; to house the server related settings and provide a reorganized place for future settings to come.&lt;br /&gt;
**Retain the registration data required for ds-backup if present in the system so that it can maintain its functionality.&lt;br /&gt;
The following is the proposed flow being developed for the feature: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Sugar-server-modified.png|1000px]]&lt;br /&gt;
*The main advantages of the above flow are:&lt;br /&gt;
**Manual clear of registration is not required.&lt;br /&gt;
**Each laptop will have same backup url and backup path (in XS:/library/users) for a particular XS as it was created on first registration with the server. As registration will be done only once. The &amp;quot;Register&amp;quot; button would rather say &amp;quot;Connect to Server&amp;quot;. When user connects to an XS where it has registered previously (identified by the presence of pubkey), it would simply set its serial number, uuid and backup-url with the pre-registration data. This would enable better and advanced management of backups.&lt;br /&gt;
**No extra input is required from the user. The user just has to connect to the XS server ssid and specify the jabber-server address as before.&lt;br /&gt;
&lt;br /&gt;
== Benefit to Sugar ==&lt;br /&gt;
This feature has emerged from a [https://bugs.sugarlabs.org/ticket/362 bug].&lt;br /&gt;
The feature is supposed to bring Sugar closer to XS server and improve the user experience. &lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
&#039;&#039;What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==UI Design==&lt;br /&gt;
The user does not have to provide any extra input. He/she has to provide the jabber server url and click on the button to register to it as before. So no change of UI is required to achieve the functionality. But as discussed in the developer mailing list ([http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052071.html link]), it has been emphasized that a new control panel section named &amp;quot;Server&amp;quot; should be created. This section will as of now only have two user inputs &amp;quot;Jabber Server&amp;quot; and &amp;quot;Collaboration Server&amp;quot; which will be moved in from its present location of the &amp;quot;Network&amp;quot; control panel section.  &lt;br /&gt;
&lt;br /&gt;
== How To Test ==&lt;br /&gt;
{{:{{PAGENAME}}/Testing}}&lt;br /&gt;
== User Experience ==&lt;br /&gt;
The user experience is believed to increase quite significantly as it can be judged from the problems that are being faced now in this [https://bugs.sugarlabs.org/ticket/362 bug]&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--== Contingency Plan ==&lt;br /&gt;
&#039;&#039;If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as &amp;quot;None necessary, revert to previous release behaviour.&amp;quot;  Or it might not.  If your feature is not completed in time, we want to assure others that other parts of Sugar will not be in jeopardy.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&#039;&#039;Is there upstream documentation on this feature, or notes you have written yourself?  Has this topic been discussed in the mailing list or during a meeting? Link to that material here so other interested developers can get involved.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Release Notes ==&lt;br /&gt;
&#039;&#039;The Sugar Release Notes inform end-users about what is new in the release. An Example is [[0.84/Notes]]. The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the release team and shipped with the release.&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comments and Discussion ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Link to the discussion of this feature on lists.sugarlabs.org&#039;&#039;&lt;br /&gt;
* See [[{{TALKPAGENAME}}|the discussion tab for this feature.]] &amp;lt;!-- This adds a link to the &amp;quot;discussion&amp;quot; tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page. --&amp;gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Features/Multiple_schoolserver_registration&amp;diff=98044</id>
		<title>Features/Multiple schoolserver registration</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Features/Multiple_schoolserver_registration&amp;diff=98044"/>
		<updated>2016-04-15T02:46:20Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Feature Page Incomplete]]&lt;br /&gt;
[[Category:Feature|.]]&lt;br /&gt;
&amp;lt;!-- You can add categories to tie features back to real deployments/schools requesting them, for example &lt;br /&gt;
[[Category:Features requested by School Xyz|&amp;lt;Feature Name&amp;gt;]] (the |Feature Name option sorts the entry on the category page under the first letter of &amp;lt;Feature Name&amp;gt;). --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
Easily hop between multiple XS servers. Sugar will be able to register to multiple XS servers easily, without the need of clearing the registrations manually.&lt;br /&gt;
&lt;br /&gt;
== Owner ==&lt;br /&gt;
* Name: [[User:ManashRaja| Manash Pratim Das]]&lt;br /&gt;
&lt;br /&gt;
* Email: mpdmanash@gmail.com&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
* Targeted release: (SUGAR_VERSION)&lt;br /&gt;
* Last updated: 15 April 2016&lt;br /&gt;
* Status: Being discussed and development started&lt;br /&gt;
&amp;lt;!--* Percentage of completion: 10%--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
In case a user wants to register to a new XS server, he/she has to first manually clear the previous registration details(if present). He/she has to create new registration even if he/she returns back to an XS server where his laptop has been registered before. Every new registration changes the serial number of the laptop and serial number is used in backup url and backup paths for that laptop in the XS server. Hence registering multiple times with the same XS server leads to unnecessary change in backup path. &lt;br /&gt;
&lt;br /&gt;
Also from the various field reports where a user (generally a teacher) has to register to multiple XS servers on move, it becomes difficult to keep clearing the registration details manually. ([https://bugs.sugarlabs.org/ticket/362 one such report here].&lt;br /&gt;
The present system for registering a Sugar laptop with an XS server is depicted below. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Sugar-server-present.png|1000px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This feature is aimed to enhance the Sugar-Server interaction that would include:&lt;br /&gt;
**Automated management of registration data so that a user can connect to an XS server with only one click regardless of the server being new or previously registered, hence enabling quick hop between multiple XS servers.&lt;br /&gt;
**Creating a new control panel section named &amp;quot;Server&amp;quot; to house the server related settings and provide a reorganized place for future settings to come.&lt;br /&gt;
**Retain the registration data required for ds-backup if present in the system so that it can maintain its functionality.&lt;br /&gt;
The following is the proposed flow being developed for the feature: &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Sugar-server-modified.png|1000px]]&lt;br /&gt;
*The main advantages of the above flow are:&lt;br /&gt;
**Manual clear of registration is not required.&lt;br /&gt;
**Each laptop will have same backup url and backup path (in XS:/library/users) for a particular XS as it was created on first registration with the server. As registration will be done only once. The &amp;quot;Register&amp;quot; button would rather say &amp;quot;Connect to Server&amp;quot;. When user connects to an XS where it has registered previously (identified by the presence of pubkey), it would simply set its serial number, uuid and backup-url with the pre-registration data. This would enable better and advanced management of backups.&lt;br /&gt;
**No extra input is required from the user. The user just has to connect to the XS server ssid and specify the jabber-server address as before.&lt;br /&gt;
&lt;br /&gt;
== Benefit to Sugar ==&lt;br /&gt;
This feature has emerged from a [https://bugs.sugarlabs.org/ticket/362 bug].&lt;br /&gt;
The feature is supposed to bring Sugar closer to XS server and improve the user experience. &lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
&#039;&#039;What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==UI Design==&lt;br /&gt;
The user does not have to provide any extra input. He/she has to provide the jabber server url and click on the button to register to it as before. So no change of UI is required to achieve the functionality. But as discussed in the developer mailing list ([http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052071.html link]), it has been emphasized that a new control panel section named &amp;quot;Server&amp;quot; should be created. This section will as of now only have two user inputs &amp;quot;Jabber Server&amp;quot; and &amp;quot;Collaboration Server&amp;quot; which will be moved in from its present location of the &amp;quot;Network&amp;quot; control panel section.  &lt;br /&gt;
&lt;br /&gt;
== How To Test ==&lt;br /&gt;
{{:{{PAGENAME}}/Testing}}&lt;br /&gt;
== User Experience ==&lt;br /&gt;
The user experience is believed to increase quite significantly as it can be judged from the problems that are being faced now in this [https://bugs.sugarlabs.org/ticket/362 bug]&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--== Contingency Plan ==&lt;br /&gt;
&#039;&#039;If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as &amp;quot;None necessary, revert to previous release behaviour.&amp;quot;  Or it might not.  If your feature is not completed in time, we want to assure others that other parts of Sugar will not be in jeopardy.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&#039;&#039;Is there upstream documentation on this feature, or notes you have written yourself?  Has this topic been discussed in the mailing list or during a meeting? Link to that material here so other interested developers can get involved.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Release Notes ==&lt;br /&gt;
&#039;&#039;The Sugar Release Notes inform end-users about what is new in the release. An Example is [[0.84/Notes]]. The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the release team and shipped with the release.&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comments and Discussion ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Link to the discussion of this feature on lists.sugarlabs.org&#039;&#039;&lt;br /&gt;
* See [[{{TALKPAGENAME}}|the discussion tab for this feature.]] &amp;lt;!-- This adds a link to the &amp;quot;discussion&amp;quot; tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page. --&amp;gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Features/Multiple_schoolserver_registration&amp;diff=98043</id>
		<title>Features/Multiple schoolserver registration</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Features/Multiple_schoolserver_registration&amp;diff=98043"/>
		<updated>2016-04-15T02:43:46Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Feature Page Incomplete]]&lt;br /&gt;
[[Category:Feature|.]]&lt;br /&gt;
&amp;lt;!-- You can add categories to tie features back to real deployments/schools requesting them, for example &lt;br /&gt;
[[Category:Features requested by School Xyz|&amp;lt;Feature Name&amp;gt;]] (the |Feature Name option sorts the entry on the category page under the first letter of &amp;lt;Feature Name&amp;gt;). --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
Easily hop between multiple XS servers. Sugar will be able to register to multiple XS servers easily, without the need of clearing the registrations manually.&lt;br /&gt;
&lt;br /&gt;
== Owner ==&lt;br /&gt;
* Name: [[User:ManashRaja| Manash Pratim Das]]&lt;br /&gt;
&lt;br /&gt;
* Email: mpdmanash@gmail.com&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
* Targeted release: (SUGAR_VERSION)&lt;br /&gt;
* Last updated: 15 April 2016&lt;br /&gt;
* Status: Being discussed and development started&lt;br /&gt;
&amp;lt;!--* Percentage of completion: 10%--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
In case a user wants to register to a new XS server, he/she has to first manually clear the previous registration details(if present). He/she has to create new registration even if he/she returns back to an XS server where his laptop has been registered before. Every new registration changes the serial number of the laptop and serial number is used in backup url and backup paths for that laptop in the XS server. Hence registering multiple times with the same XS server leads to unnecessary change in backup path. &lt;br /&gt;
&lt;br /&gt;
Also from the various field reports where a user (generally a teacher) has to register to multiple XS servers on move, it becomes difficult to keep clearing the registration details manually. ([https://bugs.sugarlabs.org/ticket/362 one such report here])&lt;br /&gt;
The present system for registering a Sugar laptop with an XS server is depicted below.  &lt;br /&gt;
[[File:Sugar-server-present.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
*This feature is aimed to enhance the Sugar-Server interaction that would include:&lt;br /&gt;
**Automated management of registration data so that a user can connect to an XS server with only one click regardless of the server being new or previously registered, hence enabling quick hop between multiple XS servers.&lt;br /&gt;
**Creating a new control panel section named &amp;quot;Server&amp;quot; to house the server related settings and provide a reorganized place for future settings to come.&lt;br /&gt;
**Retain the registration data required for ds-backup if present in the system so that it can maintain its functionality.&lt;br /&gt;
The following is the proposed flow being developed for the feature:&lt;br /&gt;
[[File:Sugar-server-modified.png|1000px]]&lt;br /&gt;
*The main advantages of the above flow are:&lt;br /&gt;
**Manual clear of registration is not required.&lt;br /&gt;
**Each laptop will have same backup url and backup path (in XS:/library/users) for a particular XS as it was created on first registration with the server. As registration will be done only once. The &amp;quot;Register&amp;quot; button would rather say &amp;quot;Connect to Server&amp;quot;. When user connects to an XS where it has registered previously (identified by the presence of pubkey), it would simply set its serial number, uuid and backup-url with the pre-registration data. This would enable better and advanced management of backups.&lt;br /&gt;
*No extra input is required from the user. The user just has to connect to the XS server ssid and specify the jabber-server address as before.&lt;br /&gt;
&lt;br /&gt;
== Benefit to Sugar ==&lt;br /&gt;
This feature has emerged from a [https://bugs.sugarlabs.org/ticket/362 bug].&lt;br /&gt;
The feature is supposed to bring Sugar closer to XS server and improve the user experience. &lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
&#039;&#039;What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==UI Design==&lt;br /&gt;
The user does not have to provide any extra input. He/she has to provide the jabber server url and click on the button to register to it as before. So no change of UI is required to achieve the functionality. But as discussed in the developer mailing list ([http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052071.html link]), it has been emphasized that a new control panel section named &amp;quot;Server&amp;quot; should be created. This section will as of now only have two user inputs &amp;quot;Jabber Server&amp;quot; and &amp;quot;Collaboration Server&amp;quot; which will be moved in from its present location of the &amp;quot;Network&amp;quot; control panel section.  &lt;br /&gt;
&lt;br /&gt;
== How To Test ==&lt;br /&gt;
{{:{{PAGENAME}}/Testing}}&lt;br /&gt;
== User Experience ==&lt;br /&gt;
The user experience is believed to increase quite significantly as it can be judged from the problems that are being faced now in this [https://bugs.sugarlabs.org/ticket/362 bug]&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--== Contingency Plan ==&lt;br /&gt;
&#039;&#039;If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as &amp;quot;None necessary, revert to previous release behaviour.&amp;quot;  Or it might not.  If your feature is not completed in time, we want to assure others that other parts of Sugar will not be in jeopardy.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&#039;&#039;Is there upstream documentation on this feature, or notes you have written yourself?  Has this topic been discussed in the mailing list or during a meeting? Link to that material here so other interested developers can get involved.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Release Notes ==&lt;br /&gt;
&#039;&#039;The Sugar Release Notes inform end-users about what is new in the release. An Example is [[0.84/Notes]]. The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the release team and shipped with the release.&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comments and Discussion ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Link to the discussion of this feature on lists.sugarlabs.org&#039;&#039;&lt;br /&gt;
* See [[{{TALKPAGENAME}}|the discussion tab for this feature.]] &amp;lt;!-- This adds a link to the &amp;quot;discussion&amp;quot; tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page. --&amp;gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Features/Multiple_schoolserver_registration&amp;diff=98042</id>
		<title>Features/Multiple schoolserver registration</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Features/Multiple_schoolserver_registration&amp;diff=98042"/>
		<updated>2016-04-15T02:43:26Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Feature Page Incomplete]]&lt;br /&gt;
[[Category:Feature|.]]&lt;br /&gt;
&amp;lt;!-- You can add categories to tie features back to real deployments/schools requesting them, for example &lt;br /&gt;
[[Category:Features requested by School Xyz|&amp;lt;Feature Name&amp;gt;]] (the |Feature Name option sorts the entry on the category page under the first letter of &amp;lt;Feature Name&amp;gt;). --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
Easily hop between multiple XS servers. Sugar will be able to register to multiple XS servers easily, without the need of clearing the registrations manually.&lt;br /&gt;
&lt;br /&gt;
== Owner ==&lt;br /&gt;
* Name: [[User:ManashRaja| Manash Pratim Das]]&lt;br /&gt;
&lt;br /&gt;
* Email: mpdmanash@gmail.com&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
* Targeted release: (SUGAR_VERSION)&lt;br /&gt;
* Last updated: 15 April 2016&lt;br /&gt;
* Status: Being discussed and development started&lt;br /&gt;
&amp;lt;!--* Percentage of completion: 10%--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
In case a user wants to register to a new XS server, he/she has to first manually clear the previous registration details(if present). He/she has to create new registration even if he/she returns back to an XS server where his laptop has been registered before. Every new registration changes the serial number of the laptop and serial number is used in backup url and backup paths for that laptop in the XS server. Hence registering multiple times with the same XS server leads to unnecessary change in backup path. &lt;br /&gt;
&lt;br /&gt;
Also from the various field reports where a user (generally a teacher) has to register to multiple XS servers on move, it becomes difficult to keep clearing the registration details manually. ([https://bugs.sugarlabs.org/ticket/362 one such report here])&lt;br /&gt;
The present system for registering a Sugar laptop with an XS server is depicted below.&lt;br /&gt;
[[File:Sugar-server-present.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
*This feature is aimed to enhance the Sugar-Server interaction that would include:&lt;br /&gt;
**Automated management of registration data so that a user can connect to an XS server with only one click regardless of the server being new or previously registered, hence enabling quick hop between multiple XS servers.&lt;br /&gt;
**Creating a new control panel section named &amp;quot;Server&amp;quot; to house the server related settings and provide a reorganized place for future settings to come.&lt;br /&gt;
**Retain the registration data required for ds-backup if present in the system so that it can maintain its functionality.&lt;br /&gt;
The following is the proposed flow being developed for the feature:&lt;br /&gt;
[[File:Sugar-server-modified.png|1000px]]&lt;br /&gt;
*The main advantages of the above flow are:&lt;br /&gt;
**Manual clear of registration is not required.&lt;br /&gt;
**Each laptop will have same backup url and backup path (in XS:/library/users) for a particular XS as it was created on first registration with the server. As registration will be done only once. The &amp;quot;Register&amp;quot; button would rather say &amp;quot;Connect to Server&amp;quot;. When user connects to an XS where it has registered previously (identified by the presence of pubkey), it would simply set its serial number, uuid and backup-url with the pre-registration data. This would enable better and advanced management of backups.&lt;br /&gt;
*No extra input is required from the user. The user just has to connect to the XS server ssid and specify the jabber-server address as before.&lt;br /&gt;
&lt;br /&gt;
== Benefit to Sugar ==&lt;br /&gt;
This feature has emerged from a [https://bugs.sugarlabs.org/ticket/362 bug].&lt;br /&gt;
The feature is supposed to bring Sugar closer to XS server and improve the user experience. &lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
&#039;&#039;What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==UI Design==&lt;br /&gt;
The user does not have to provide any extra input. He/she has to provide the jabber server url and click on the button to register to it as before. So no change of UI is required to achieve the functionality. But as discussed in the developer mailing list ([http://lists.sugarlabs.org/archive/sugar-devel/2016-April/052071.html link]), it has been emphasized that a new control panel section named &amp;quot;Server&amp;quot; should be created. This section will as of now only have two user inputs &amp;quot;Jabber Server&amp;quot; and &amp;quot;Collaboration Server&amp;quot; which will be moved in from its present location of the &amp;quot;Network&amp;quot; control panel section.  &lt;br /&gt;
&lt;br /&gt;
== How To Test ==&lt;br /&gt;
{{:{{PAGENAME}}/Testing}}&lt;br /&gt;
== User Experience ==&lt;br /&gt;
The user experience is believed to increase quite significantly as it can be judged from the problems that are being faced now in this [https://bugs.sugarlabs.org/ticket/362 bug]&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--== Contingency Plan ==&lt;br /&gt;
&#039;&#039;If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as &amp;quot;None necessary, revert to previous release behaviour.&amp;quot;  Or it might not.  If your feature is not completed in time, we want to assure others that other parts of Sugar will not be in jeopardy.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&#039;&#039;Is there upstream documentation on this feature, or notes you have written yourself?  Has this topic been discussed in the mailing list or during a meeting? Link to that material here so other interested developers can get involved.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Release Notes ==&lt;br /&gt;
&#039;&#039;The Sugar Release Notes inform end-users about what is new in the release. An Example is [[0.84/Notes]]. The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the release team and shipped with the release.&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comments and Discussion ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Link to the discussion of this feature on lists.sugarlabs.org&#039;&#039;&lt;br /&gt;
* See [[{{TALKPAGENAME}}|the discussion tab for this feature.]] &amp;lt;!-- This adds a link to the &amp;quot;discussion&amp;quot; tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page. --&amp;gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=File:Sugar-server-modified.png&amp;diff=98041</id>
		<title>File:Sugar-server-modified.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=File:Sugar-server-modified.png&amp;diff=98041"/>
		<updated>2016-04-15T02:10:57Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=File:Sugar-server-present.png&amp;diff=98040</id>
		<title>File:Sugar-server-present.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=File:Sugar-server-present.png&amp;diff=98040"/>
		<updated>2016-04-15T01:41:12Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Features/Multiple_schoolserver_registration&amp;diff=98039</id>
		<title>Features/Multiple schoolserver registration</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Features/Multiple_schoolserver_registration&amp;diff=98039"/>
		<updated>2016-04-15T01:40:34Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: Created page with &amp;quot;&amp;lt;noinclude&amp;gt; Category:Feature Page Incomplete . &amp;lt;!-- You can add categories to tie features back to real deployments/schools requesting them, for examp...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Feature Page Incomplete]]&lt;br /&gt;
[[Category:Feature|.]]&lt;br /&gt;
&amp;lt;!-- You can add categories to tie features back to real deployments/schools requesting them, for example &lt;br /&gt;
[[Category:Features requested by School Xyz|&amp;lt;Feature Name&amp;gt;]] (the |Feature Name option sorts the entry on the category page under the first letter of &amp;lt;Feature Name&amp;gt;). --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- All fields on this form are required to be accepted.&lt;br /&gt;
 We also request that you maintain the same order of sections so that all of the feature pages are uniform.  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- The actual name of your feature page should look something like: Features/Your Feature Name.  This keeps all features in the same namespace --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
Easily hop between multiple XS servers. Sugar will be able to register to multiple XS servers easily, without the need of clearing the registrations manually.&lt;br /&gt;
&lt;br /&gt;
== Owner ==&lt;br /&gt;
* Name: [[User:ManashRaja| Manash Pratim Das]]&lt;br /&gt;
&lt;br /&gt;
* Email: mpdmanash@gmail.com&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
* Targeted release: (SUGAR_VERSION)&lt;br /&gt;
* Last updated: 15 April 2016&lt;br /&gt;
* Status: Being discussed and development started&lt;br /&gt;
&amp;lt;!--* Percentage of completion: 10%--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Benefit to Sugar ==&lt;br /&gt;
&#039;&#039;What is the benefit to the platform?  If this is a major capability update, what has changed?  If this is a new feature, what capabilities does it bring? Why will Sugar become a better platform or project because of this feature?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Make sure to note here as well if this feature has been requested by a specific deployment, or if it has emerged from a bug report.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
&#039;&#039;What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==UI Design==&lt;br /&gt;
&#039;&#039;Does the feature have a direct impact on the work flow, or does it need a UI? Link here mockups, or add detailed descriptions.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== How To Test ==&lt;br /&gt;
{{:{{PAGENAME}}/Testing}}&lt;br /&gt;
== User Experience ==&lt;br /&gt;
&#039;&#039;If this feature is noticeable by its target audience, how will their experiences change as a result?  Describe what they will see or notice.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&#039;&#039;What other packages (RPMs) depend on this package?  Are there changes outside the developers&#039; control on which completion of this feature depends?  In other words, does your feature depend on completion of another feature owned by someone else or that you would need to coordinate, which might cause you to be unable to finish on time?  Other upstream projects like Python?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Contingency Plan ==&lt;br /&gt;
&#039;&#039;If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as &amp;quot;None necessary, revert to previous release behaviour.&amp;quot;  Or it might not.  If your feature is not completed in time, we want to assure others that other parts of Sugar will not be in jeopardy.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&#039;&#039;Is there upstream documentation on this feature, or notes you have written yourself?  Has this topic been discussed in the mailing list or during a meeting? Link to that material here so other interested developers can get involved.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Release Notes ==&lt;br /&gt;
&#039;&#039;The Sugar Release Notes inform end-users about what is new in the release. An Example is [[0.84/Notes]]. The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the release team and shipped with the release.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Comments and Discussion ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Link to the discussion of this feature on lists.sugarlabs.org&#039;&#039;&lt;br /&gt;
* See [[{{TALKPAGENAME}}|the discussion tab for this feature.]] &amp;lt;!-- This adds a link to the &amp;quot;discussion&amp;quot; tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page. --&amp;gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Features/Proxy_Settings&amp;diff=98038</id>
		<title>Features/Proxy Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Features/Proxy_Settings&amp;diff=98038"/>
		<updated>2016-04-15T01:11:27Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: /* Owner */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;[[Category:Feature Ready for Release Manager]]&lt;br /&gt;
[[Category:Feature|Proxy Settings]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
Allow the user to configure proxy settings using the Sugar Control Panel.&lt;br /&gt;
&lt;br /&gt;
== Owner ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:ManashRaja|Manash Pratim Das]], [[User:sascha_silbe|Sascha Silbe]], [[User:ajay_garg|Ajay Garg]] (ajay@activitycentral.com)&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
&lt;br /&gt;
* Targeted release: Unspecified&lt;br /&gt;
* Last updated: 2016-04-12&lt;br /&gt;
* Percentage of completion: 100%&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
Both individual users and deployments need to be able to set a proxy for&lt;br /&gt;
Sugar and activities to use. While we&#039;d like the system to work that all&lt;br /&gt;
out automatically (e.g. using [https://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol WPAD]), this often isn&#039;t possible. Common&lt;br /&gt;
reasons include legacy (&amp;quot;inherited&amp;quot;) setups and network uplinks simply being&lt;br /&gt;
out of control of the user respectively deployment.&lt;br /&gt;
&lt;br /&gt;
The existing Network Control Panel is enhanced by adding a new section for the&lt;br /&gt;
proxy settings. For consistency between Sugar and Gnome, the basic layout of&lt;br /&gt;
the Gnome 3 proxy settings has been mirrored: A combo box allows the user to&lt;br /&gt;
select how the proxy setting should be determined (None=no proxy settings, &lt;br /&gt;
Use system proxy=let proxy be set by other means, Automatic=WPAD or PAC, &lt;br /&gt;
Manual=enter host names and ports for each protocol).&lt;br /&gt;
Based on which method was selected, additional configuration options are&lt;br /&gt;
presented to the user.&lt;br /&gt;
&lt;br /&gt;
The settings are stored in schemas (via &#039;Gsettings&#039;) and environment variables.&lt;br /&gt;
&lt;br /&gt;
== Benefit to Sugar ==&lt;br /&gt;
&lt;br /&gt;
See [[#Detailed Description|Detailed Description]].&lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
&lt;br /&gt;
Modifying the existing Network Control Panel.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Manual&amp;quot; mode==&lt;br /&gt;
&lt;br /&gt;
* Fill in the settings &amp;quot;manually&amp;quot;, and restart when prompted so.&lt;br /&gt;
:[[File:proxy21.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now, open Browse. &amp;quot;www.facebook.com&amp;quot; should be blacklisted.&lt;br /&gt;
:[[File:proxy5.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;www.google.com&amp;quot; shoud be allowed.&lt;br /&gt;
:[[File:proxy4.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Automatic mode - PAC==&lt;br /&gt;
&lt;br /&gt;
* Fill in the URL of the proxy-file, and restart when prompted so.&lt;br /&gt;
:[[File:proxy24.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now, open Browse. &amp;quot;www.facebook.com&amp;quot; should be blacklisted.&lt;br /&gt;
:[[File:proxy5.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;www.google.com&amp;quot; shoud be allowed.&lt;br /&gt;
:[[File:proxy4.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automatic mode - WPAD==&lt;br /&gt;
&lt;br /&gt;
* Motive&lt;br /&gt;
** To provide proxy-configuration, without needing the client-user&lt;br /&gt;
*** to manualyy enter the proxy-settings (&#039;&#039;&#039;Manual&#039;&#039;&#039; mode)&lt;br /&gt;
*** to manually enter the location of proxy-configuration file herself (&#039;&#039;&#039;Automatic (PAC)&#039;&#039;&#039; mode).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Benefits&lt;br /&gt;
** By not needing the client-user to manually specify the settings, every client-user is saved  a headache :) Instead, all the configuration is done via a network-administrator, on the server-side.&lt;br /&gt;
** By delegating the responsibility of specifying every proxy-rule (even the proxy-configuration file) to the network-administrator, security is increased dramatically.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Notes&lt;br /&gt;
** Setting this particular mode (&#039;&#039;&#039;Automatic-WPAD&#039;&#039;&#039; Proxy) is quite complicated; and many possibilities exist. &#039;&#039;&#039;However, the bottom-rule is, client should himself not need to specifiy the location of proxy-configuration file as per say&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Testing (one of the possible ways :) )&lt;br /&gt;
** &#039;&#039;&#039;(For those not interested in the technicalities, please proceed to the next bullet :D)&#039;&#039;&#039; To verify that current dextrose-4 supports Auto-WPAD mode, we test using the method, as per the following 4 requirements, as listed at http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol#Requirements ::&lt;br /&gt;
***In order to use the DNS only method, a DNS entry is needed for a host named WPAD.&lt;br /&gt;
***The host at the WPAD address must be able to serve a Web page.&lt;br /&gt;
***In both cases, the Web server must be configured to serve the WPAD file with a MIME type of &amp;quot;application/x-ns-proxy-autoconfig&amp;quot;.&lt;br /&gt;
***If the DNS method is used, a file named wpad.dat must be located in the WPAD Web site&#039;s root directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Select &amp;quot;Automatic&amp;quot; mode in &amp;quot;My Settings&amp;quot; -&amp;gt; &amp;quot;Proxy&amp;quot; (without specifying anything else), and restart when prompted so.&lt;br /&gt;
:[[File:proxy1.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The above step is all that is needed for &amp;quot;Automatic (WPAD)&amp;quot; mode to  take effect; the WPAD-configuration-file will be located by the DHCP/DNS Server. However, for easy QA testing,  we specify an easy way to replicate this DNS behavior ::&lt;br /&gt;
&lt;br /&gt;
** Add the line &amp;quot;build.activitycentral.com wpad&amp;quot; to the file &amp;quot;/etc/hosts&amp;quot; on the XO, and reboot. &#039;&#039;&#039;It is repeated innumerable times, that this  step is required just for easy testing; in actual deployments, the DNS-name resolution will be provided by network-administrators/School-Server-running-DHCPD&#039;&#039;&#039;&lt;br /&gt;
** Also, thanks a ton to &#039;&#039;&#039;Santiago Rodriguez (scollazo@activitycentral.com)&#039;&#039;&#039; for setting up the proxy-configuration-files at build.activitycentral.com.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open &amp;quot;Browse&amp;quot;, and type in &amp;quot;www.google.com&amp;quot;. You should be prompted for credentials (as is required by the WPAD-configuration-file at build.activitycentral.com&lt;br /&gt;
&lt;br /&gt;
:[[File:proxy2.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Entering wrong credentials in the previous step, re-prompts :). This time, enter correct credentials.&lt;br /&gt;
:[[File:proxy3.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The page opens successfully.&lt;br /&gt;
:[[File:proxy4.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Next, type &amp;quot;www.facebook.com&amp;quot;; the &amp;quot;Access Denied&amp;quot; page is shown instantaneously, as per the rule in the WPAD-configuration-file at build.activitycentral.com&lt;br /&gt;
:[[File:proxy5.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* NOTE: The proxy setup will persist even if a user switches to Gnome Desktop, because the way it is setup, is the natural way gnome does too ( GCONF ) (Thanks Ariel).&lt;br /&gt;
&lt;br /&gt;
== User Experience ==&lt;br /&gt;
&lt;br /&gt;
See [[#UI Design|UI Design]]&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
There are no new dependencies.&lt;br /&gt;
&lt;br /&gt;
== Contingency Plan ==&lt;br /&gt;
&lt;br /&gt;
Users can continue to use the Gnome Control Center to configure proxy settings.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
There is no documentation beyond this page.&lt;br /&gt;
&lt;br /&gt;
== Release Notes ==&lt;br /&gt;
&lt;br /&gt;
There have been no changes to public API. The Release Notes merely need to mention that users can now configure proxy settings from within Sugar. As detailed above, the UI is very similar to the Gnome UI.&lt;br /&gt;
&lt;br /&gt;
== Comments and Discussion ==&lt;br /&gt;
* See [[{{TALKPAGENAME}}|discussion tab for this feature]] &amp;lt;!-- This adds a link to the &amp;quot;discussion&amp;quot; tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page. --&amp;gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=User:ManashRaja&amp;diff=98037</id>
		<title>User:ManashRaja</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=User:ManashRaja&amp;diff=98037"/>
		<updated>2016-04-15T01:10:34Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Country:&lt;br /&gt;
:India&lt;br /&gt;
;Timezone:&lt;br /&gt;
:IST (UTC+530)&lt;br /&gt;
;IRC nickname:&lt;br /&gt;
:ManashRaja&lt;br /&gt;
;Contact Details&lt;br /&gt;
:[http://manashpratim.in/ My homepage]&lt;br /&gt;
:[https://github.com/ManashRaja Github]&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=User:ManashRaja&amp;diff=98036</id>
		<title>User:ManashRaja</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=User:ManashRaja&amp;diff=98036"/>
		<updated>2016-04-15T01:10:14Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On FreeNode and OFTC my IRC nick is silbe.&lt;br /&gt;
;Country:&lt;br /&gt;
:India&lt;br /&gt;
;Timezone:&lt;br /&gt;
:IST (UTC+530)&lt;br /&gt;
;IRC nickname:&lt;br /&gt;
:ManashRaja&lt;br /&gt;
;Contact Details&lt;br /&gt;
:[http://manashpratim.in/ My homepage]&lt;br /&gt;
:[https://github.com/ManashRaja Github]&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=User:ManashRaja&amp;diff=98035</id>
		<title>User:ManashRaja</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=User:ManashRaja&amp;diff=98035"/>
		<updated>2016-04-15T01:09:46Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: Created page with &amp;quot;Please see [http://manashpratim.in/ my homepage] for contact information. You can also send emails to my sugarlabs.org and activitycentral.com accounts (silbe@). On FreeNode a...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please see [http://manashpratim.in/ my homepage] for contact information. You can also send emails to my sugarlabs.org and activitycentral.com accounts (silbe@).&lt;br /&gt;
On FreeNode and OFTC my IRC nick is silbe.&lt;br /&gt;
;Country:&lt;br /&gt;
:India&lt;br /&gt;
;Timezone:&lt;br /&gt;
:IST (UTC+530)&lt;br /&gt;
;IRC nickname:&lt;br /&gt;
:ManashRaja&lt;br /&gt;
;Contact Details&lt;br /&gt;
:[http://manashpratim.in/ My homepage]&lt;br /&gt;
:[https://github.com/ManashRaja Github]&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=98004</id>
		<title>Summer of Code/2016/Sugar Journal backup and restore</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=98004"/>
		<updated>2016-04-12T04:32:59Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: /* Miscellaneous */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About You ==&lt;br /&gt;
&#039;&#039;&#039;What is your name?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
My name is &amp;lt;b&amp;gt;Manash Pratim Das&amp;lt;/b&amp;gt;. I am a 2nd Year, Bachelor of Technology (B.Tech), undergraduate student at the [http://www.iitkgp.ac.in/ Indian Institute of Technology, Kharagpur, India]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your email address? &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My email address is &amp;lt;b&amp;gt;mpdmanash@gmail.com&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your Sugar Labs wiki username?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your IRC nickname on irc.freenode.net?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you&#039;d prefer.)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My native language is Hindi, but I am fluent in English as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Where are you located, and what hours (UTC) do you tend to work? (We also try to match mentors by general time zone if possible.)&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
I live at in Kharagpur, West Bengal, India. &amp;lt;br /&amp;gt;&lt;br /&gt;
My timezone is &amp;lt;b&amp;gt;UTC + 5:30 (Indian Standard Time)&amp;lt;/b&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
I generally tend to work in the evening (from 5 pm) and late night (to 4 am). But my time table is very flexible and can be changed as per the convenience of my mentor/community members. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Yes, I have contributed to two completely open source research projects at my college:&lt;br /&gt;
* [https://github.com/quadrotor-IITKgp “Aerial Robotics Kharagpur”]: I am a software team member of this organization. Few specific (other than open code contribution) [https://github.com/quadrotor-IITKgp/grid_localization 1][https://github.com/ManashRaja/quad_simulator 2]&lt;br /&gt;
* [https://github.com/AGV-IIT-KGP “Autonomous Ground Vehicle”]: Specific work [https://github.com/AGV-IIT-KGP/computer_vision/pull/28 1],[https://github.com/AGV-IIT-KGP/eklavya-2015/pull/75 2]&lt;br /&gt;
* My [https://github.com/ManashRaja/ GitHub profile] in general.&lt;br /&gt;
I also solved a bug for an Arduino library, but it was solved before I could send the PR :) .&lt;br /&gt;
&lt;br /&gt;
== About your project ==&lt;br /&gt;
&#039;&#039;&#039;What is the name of your project?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sugar Journal backup and restore&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will add advanced Sugar-server integration to increase the utility of available servers (XSCE or cloud). The following are the features in detail:&lt;br /&gt;
#&#039;&#039;&#039;Add selective backup-restore:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: easy).&amp;lt;/i&amp;gt; User can select part of the journal to be backed up or restored directly from within the backup page. Metadata for each Journal entry will store the list of dependencies and library objects, which will be downloaded again as needed (and, as available). &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; &lt;br /&gt;
#*Backups will be specific and save unnecessary wastage of storage space. &lt;br /&gt;
#*Teachers will be able to distribute specific Journal objects without hampering the existing Journal of a student.&lt;br /&gt;
#&#039;&#039;&#039;Add system to backup and restore from school servers (XSCE):&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: medium)&amp;lt;/i&amp;gt;. Now backup can only be stored and restored from devices, but this feature will add school servers to the options. &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
#*If the school-servers are present, then they can be made an easy way to store and distribute backups among many.&lt;br /&gt;
#*The existing (ds-backup) option on OLPC OS is not an effective method because it cannot be easily restored. (from what I understand)&lt;br /&gt;
#&#039;&#039;&#039;Add cloud service:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: easy).&amp;lt;/i&amp;gt; In a few clicks, it will let schools to connect each student’s pc to a local cloud server or a third party cloud server as per the availability to sync the journal data at a central location.&amp;lt;br /&amp;gt;&amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; It will be easy for schools to let hardware be shared among the student batches as students can login to their account from any hardware and can still access his/her own journal. This feature will strongly support the &amp;quot;One to many concept&amp;quot; that can be implemented on Sugar. (concept discussed on GSoC 2016 idea page [https://wiki.sugarlabs.org/go/Summer_of_Code/2016 link])&lt;br /&gt;
#&#039;&#039;&#039;Easy sharing of Journal items based on above server frameworks:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: medium)&amp;lt;/i&amp;gt; When server frameworks like XSCE and cloud are available, their utility can be increased by adding features where children can share any item with each other in just few easy clicks. &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt;&lt;br /&gt;
#*The backups can be used by multiple types of hardware/platform running Sugar (OLPC pcs, Android, Sugarizer) seamlessly using school-server’s multi-platform support to the advantage.&lt;br /&gt;
#*Teachers can distribute journal entries on mass scale.&lt;br /&gt;
#&#039;&#039;&#039;Use the servers for sharing storage space:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: hard)&amp;lt;/i&amp;gt;. &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;The data created by a Journal may take the free storage space on a low storage device pretty soon.&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; Hence this background feature will let the Journal utilize both the local storage and the server storage. Journal objects or libraries will be shifted if it can be shifted to the server. When any object will be needed, it will be downloaded and cached temporarily on the local storage. A method will be devised that will be looking for the objects that can be shifted to the server like, objects which are rarely used and those containing library items. The user will be able to set rules to manage the behaviour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Technologies:&amp;lt;/u&amp;gt; I will use python and its libraries for the main backend along with GTK+ (GTK3) for the GUI and graphics generator like Inkscape for the icons. For the different server integration, I am planning to use use server specific cli, apis, libraries or scripts like “owncloudcmd” for ownCloud,  “RClone” that supports many cloud services like Google Drive, Amazon S3, Openstack Swift / Rackspace cloud files / Memset Memstore, Dropbox, Google Cloud Storage, Amazon Cloud Drive, Microsoft One Drive, Hubic, Backblaze B2, Yandex Disk, The local filesystem. I will also use polkit for permissions and symbolic links. If I finally use rclone for cloud sync, then I might learn and use go programming language (its written on) or use pexpect to run its cli.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is the timeline for development of your project? The Summer of Code work period is from mid-May to mid-August; 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&#039;s good to have a plan at the beginning so you have an idea of where you&#039;re headed.) Note that you should probably plan to have something &amp;quot;working and 90% done&amp;quot; by the midterm evaluation (end of June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align: center;&amp;quot; | Week&lt;br /&gt;
! Scheduled Work &lt;br /&gt;
! Time I can devote&lt;br /&gt;
|-&lt;br /&gt;
| 22 April-22 May&lt;br /&gt;
(Community Bonding period)&lt;br /&gt;
| &lt;br /&gt;
*Introduce and become part of the community.  &lt;br /&gt;
*Look for various different ways to approach the project.&lt;br /&gt;
*Discuss with mentor(s), OLPC members, XSCE members and if possible the people who work down there to tailor the project to the perfect needs and flow.&lt;br /&gt;
*Draw a detailed roadmap on how I will implement each feature.&lt;br /&gt;
*Learn any required skill I may be missing.&lt;br /&gt;
*Design GUI according to the flow as discussed above and create icons as required required.&lt;br /&gt;
*Install XSCE and ownCloud servers at my own place. &lt;br /&gt;
*Create accounts in the third party cloud providers.&lt;br /&gt;
|22 April-29 April: 9 hours per week (end semester examinations.)&lt;br /&gt;
30th April-22nd May: 65 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 23 May-29 May&lt;br /&gt;
| &lt;br /&gt;
*Complete the specific backup-restore(1) and cloud server backup(3) features as I have a head start on both, having gone through the code and tested the functionality. [https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 1], [https://github.com/ManashRaja/cloud-sync-demo 2].&lt;br /&gt;
*Try to match my style of coding with the existing code by reviews and proper study of the code.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 30 May-5 June&lt;br /&gt;
| &lt;br /&gt;
*As I would have already installed the XSCE server at my place, and the implementation discussed to its detail in the &amp;quot;Community bonding period&amp;quot; hence I believe that I can buckle up and finish at least the basic functionality of this feature.&lt;br /&gt;
*Relatively free week to act as buffer if required or start the next week&#039;s work.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 6 June-12 June&lt;br /&gt;
| Since, the feature &amp;quot;servers for sharing storage space&amp;quot;(5) is a difficult task, hence I have planned more time for this feature. I will create the basic functionality as per the road map we would have discussed in the &amp;quot;Community Bonding period&amp;quot;&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 13 June-20 June&lt;br /&gt;
| &lt;br /&gt;
*Finalize the 5th feature.&lt;br /&gt;
*Testing and code documentation.&lt;br /&gt;
*90% as per functionality of the project will be complete before the Mid-Term Evaluation.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 21 June-28 June&lt;br /&gt;
| &lt;br /&gt;
*Mid-Term Evaluation&lt;br /&gt;
*Keep on brainstorming for GUIs and integration of my project which makes it very effective and user friendly.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 28 June-3 July&lt;br /&gt;
| &lt;br /&gt;
*Work on the feedback received after the evaluation.&lt;br /&gt;
*Complete cloud integration for third party service providers for it any of them were left.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 4 July-10 July&lt;br /&gt;
| &lt;br /&gt;
*Understand all types of collaborations that happen in the school among the children(students) and teachers, to know how my sharing feature fits in.&lt;br /&gt;
*Will add more finishing touches to the features (1,2,3,5) developed above.&lt;br /&gt;
*Start coding for the sharing feature.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 11 July-16 July&lt;br /&gt;
| &lt;br /&gt;
*Finish the sharing feature.&lt;br /&gt;
*Apart from the regular updates to the community about the project, I will submit my work upto now for review and suggestions by the community.&lt;br /&gt;
*Work on the suggestions.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 18 July-24 July&lt;br /&gt;
| Buffer week to complete if work is pending or add GUI to use the cloud framework developed to support “One hardware to many user” feature of Sugar.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 25 July-31 July&lt;br /&gt;
| &lt;br /&gt;
*Finalize the code&lt;br /&gt;
*Testing and improvements&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 1st Aug-7 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Proper code documentation, cleanup and flake8 verification.&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 8 Aug-15 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Feature documentation on https://wiki.sugarlabs.org/go/Features&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 16 Aug-24 Aug&lt;br /&gt;
| Submit code and evaluations.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My strength lies in my dynamic learning and self motivated hard work. I am a 2nd year undergraduate of the Indian Institute of Technology, Kharagpur where I am actively involved with the tech community and contribute to 2 research groups ([http://quadrotor-iitkgp.github.io/ 1][http://www.agv.iitkgp.ac.in/ 2]), 2 tech societies([https://www.robotix.in/team/ 1]), projects under professors and have participated in many competitions and hackathons apart from keeping my academics up. In these two years of my stay, I have learnt a great deal about time management. &amp;lt;b&amp;gt;All the professional level work we do has made me to realize realistic timelines for myself and my team.&amp;lt;/b&amp;gt; Though I failed initially, but I am getting better. My work has been mostly in software RnD and autonomous robotics and hence &amp;lt;b&amp;gt;I have gained lots of experience about the process and its time consumption involved in converting an idea to finished product.&amp;lt;/b&amp;gt; So, I have learned to plan my work and execute it efficiently.&lt;br /&gt;
Another important fact is that &amp;lt;b&amp;gt;my college summer vacations lie in the period of 29th April to 24th July, during which I will be able to devote 100% of my work time as GSoC being my top priority&amp;lt;/b&amp;gt; (8-9 hours a day and around 60 hours a week for 12 weeks) towards my contribution. Even though my college semester will start from 25th July, I will still be able to devote 40 hours a week due to a light semester. I also have a head start on the project I would be working on as &amp;lt;b&amp;gt;I have been involved with the Sugar code base since February 1st, added a [https://github.com/sugarlabs/sugar/pull/665 new feature], fixed two bugs [https://github.com/sugarlabs/sugar/pull/668 1], [https://github.com/sugarlabs/sugar/pull/677 2] and have made the prototype of two features ([https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 1][https://github.com/ManashRaja/cloud-sync-demo 2]) I will develop in this project&amp;lt;/b&amp;gt; apart from discussion about the project on IRC. Hence I am confident that I can ensure fully dedicated work and a pledge to deliver more than I promise.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;You and the community&#039;&#039;&#039; ==&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will mostly be used in the deployment side of Sugar. I strongly believe that my project will add to the sweetness of Sugar to make it come closer to the people who deploy and the even sweeter kids who use it. Backup and restore is a very important feature for various other members of the community who might be testing, developing and integrating Sugar on multiple platforms.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What will you do if you get stuck on your project and your mentor isn&#039;t around?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If I am stuck anywhere, then I will put my best efforts to solve the problem myself by trying Google search as always and referring other resources. But if in case help is required and my mentor is not available then I would refer to the community over developer mailing list, IRC, other GSoC participant if relevant or some specific member(s) whom I might know during the course of the project (eg: Quozl`and SAMdroid who have helped me before). If the problem is not Sugar specific, then I may even take help from my tech circle (Kharagpur Open Source Society) consisting of very smart people or professors if they are available during the vacation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*I would propose a repetitive scheduled meeting every two days at a particular time or as per the convenience of mentors/community members  where we would discuss the progress made and the further course of action. I can understand its effectiveness as we use this technique at our college while doing projects under professors so that the focus and progression is maintained. &lt;br /&gt;
*I will frequently update my progress and milestones achieved on my [http://manashpratim.in/ blog].&lt;br /&gt;
*Share it along with doubts or queries on a particular thread for this project on the developer mailing list to welcome inputs from all the community members.&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
* We want to make sure that you can set up a [http://developer.sugarlabs.org development environment] before the summer starts. Please do &#039;&#039;one&#039;&#039; of the following:&lt;br /&gt;
** 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 &amp;quot;logout&amp;quot;. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Buddy-menu-manash.png|1000px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. &#039;&#039;&#039;&lt;br /&gt;
:: It&#039;s normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.&lt;br /&gt;
&lt;br /&gt;
Yes I have sent two pull request. [https://github.com/sugarlabs/sugar/pull/665 Proxy setting feature] and two bug fixes [https://github.com/sugarlabs/sugar/pull/668 1],  [https://github.com/sugarlabs/sugar/pull/677 2]&lt;br /&gt;
&lt;br /&gt;
* If you plan to work on Sugar-Web projects we want to be sure that you&#039;re familiar with web technologies, so:&lt;br /&gt;
** Clone the [https://github.com/llaske/Sugarizer Sugarizer repository]&lt;br /&gt;
** Using instructions [https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity&lt;br /&gt;
** Send us a screenshot of your new activity executed in Sugarizer&lt;br /&gt;
&#039;&#039;&#039; Describe a great learning experience you had as a child.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I can relate to the goals of Sugar, now when I have grown up, since I have witnessed how an access to computer aided learning and quick access to resources (internet) can accelerate the process of learning as in my case. The ability to create has been the major driving force of my learning. Three events in particular were the most significant that I would like to share with:&lt;br /&gt;
*An investment into the future for a PC made by my parents at my 3rd grade gave me my best friend and teacher at my childhood. I believe, it is more about the enhancement of thinking process than in the ability to score higher marks in exams. Even though some people might be skeptical about the results of OLPC and Sugar provided the investment, but I believe in its long term effect as I have seen it.&lt;br /&gt;
*Then I was introduced to programming and the Internet by my school at 6th grade. The introduction made all the neurons light up in excitement for the ability to create my own real world applications. &lt;br /&gt;
*I was shown the path and I started sprinting on it myself. From the period of 7th grade to 10th grade, I learnt C++, C#, PHP, HTML, CSS, electronics and embedded programming to create many software and hardware applications and participated in many competitions upto the national level.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Yes, I would like to tell why I chose to contribute to Sugar. While looking at various organizations at the 2015 GSoC page, I shortlisted a few organizations based on my strongest skill set. I looked upon for the problem statement of each of the organizations that they were trying to achieve and there I came to know about Sugar. I felt attached to the community due to the following points:&lt;br /&gt;
*I could relate the computer aided Sugar pedagogy with my own experience.&lt;br /&gt;
*I am a volunteer at “National Service Scheme” in my college and along with my unit, we provide community service at a nearby village. Hence I can visualize if not perfectly the effect of OLPC and Sugar would have in the children deep down there. We used to take our laptops to show them animated content, fascinate them with electronics and RC planes. They used to gather around us and we witnessed maximum attendance on the Saturdays we went there.&lt;br /&gt;
*I found the community members at IRC and developer mailing list very welcome and I feel excited about my first experience at an International selfless open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please include the category tag at the bottom of your page the Category tag for 2016 GSoC applications.&lt;br /&gt;
&lt;br /&gt;
[[Category:2016 GSoC applications]]&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=98003</id>
		<title>Summer of Code/2016/Sugar Journal backup and restore</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=98003"/>
		<updated>2016-04-12T04:30:55Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: /* About your project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About You ==&lt;br /&gt;
&#039;&#039;&#039;What is your name?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
My name is &amp;lt;b&amp;gt;Manash Pratim Das&amp;lt;/b&amp;gt;. I am a 2nd Year, Bachelor of Technology (B.Tech), undergraduate student at the [http://www.iitkgp.ac.in/ Indian Institute of Technology, Kharagpur, India]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your email address? &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My email address is &amp;lt;b&amp;gt;mpdmanash@gmail.com&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your Sugar Labs wiki username?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your IRC nickname on irc.freenode.net?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you&#039;d prefer.)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My native language is Hindi, but I am fluent in English as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Where are you located, and what hours (UTC) do you tend to work? (We also try to match mentors by general time zone if possible.)&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
I live at in Kharagpur, West Bengal, India. &amp;lt;br /&amp;gt;&lt;br /&gt;
My timezone is &amp;lt;b&amp;gt;UTC + 5:30 (Indian Standard Time)&amp;lt;/b&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
I generally tend to work in the evening (from 5 pm) and late night (to 4 am). But my time table is very flexible and can be changed as per the convenience of my mentor/community members. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Yes, I have contributed to two completely open source research projects at my college:&lt;br /&gt;
* [https://github.com/quadrotor-IITKgp “Aerial Robotics Kharagpur”]: I am a software team member of this organization. Few specific (other than open code contribution) [https://github.com/quadrotor-IITKgp/grid_localization 1][https://github.com/ManashRaja/quad_simulator 2]&lt;br /&gt;
* [https://github.com/AGV-IIT-KGP “Autonomous Ground Vehicle”]: Specific work [https://github.com/AGV-IIT-KGP/computer_vision/pull/28 1],[https://github.com/AGV-IIT-KGP/eklavya-2015/pull/75 2]&lt;br /&gt;
* My [https://github.com/ManashRaja/ GitHub profile] in general.&lt;br /&gt;
I also solved a bug for an Arduino library, but it was solved before I could send the PR :) .&lt;br /&gt;
&lt;br /&gt;
== About your project ==&lt;br /&gt;
&#039;&#039;&#039;What is the name of your project?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sugar Journal backup and restore&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will add advanced Sugar-server integration to increase the utility of available servers (XSCE or cloud). The following are the features in detail:&lt;br /&gt;
#&#039;&#039;&#039;Add selective backup-restore:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: easy).&amp;lt;/i&amp;gt; User can select part of the journal to be backed up or restored directly from within the backup page. Metadata for each Journal entry will store the list of dependencies and library objects, which will be downloaded again as needed (and, as available). &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; &lt;br /&gt;
#*Backups will be specific and save unnecessary wastage of storage space. &lt;br /&gt;
#*Teachers will be able to distribute specific Journal objects without hampering the existing Journal of a student.&lt;br /&gt;
#&#039;&#039;&#039;Add system to backup and restore from school servers (XSCE):&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: medium)&amp;lt;/i&amp;gt;. Now backup can only be stored and restored from devices, but this feature will add school servers to the options. &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
#*If the school-servers are present, then they can be made an easy way to store and distribute backups among many.&lt;br /&gt;
#*The existing (ds-backup) option on OLPC OS is not an effective method because it cannot be easily restored. (from what I understand)&lt;br /&gt;
#&#039;&#039;&#039;Add cloud service:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: easy).&amp;lt;/i&amp;gt; In a few clicks, it will let schools to connect each student’s pc to a local cloud server or a third party cloud server as per the availability to sync the journal data at a central location.&amp;lt;br /&amp;gt;&amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; It will be easy for schools to let hardware be shared among the student batches as students can login to their account from any hardware and can still access his/her own journal. This feature will strongly support the &amp;quot;One to many concept&amp;quot; that can be implemented on Sugar. (concept discussed on GSoC 2016 idea page [https://wiki.sugarlabs.org/go/Summer_of_Code/2016 link])&lt;br /&gt;
#&#039;&#039;&#039;Easy sharing of Journal items based on above server frameworks:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: medium)&amp;lt;/i&amp;gt; When server frameworks like XSCE and cloud are available, their utility can be increased by adding features where children can share any item with each other in just few easy clicks. &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt;&lt;br /&gt;
#*The backups can be used by multiple types of hardware/platform running Sugar (OLPC pcs, Android, Sugarizer) seamlessly using school-server’s multi-platform support to the advantage.&lt;br /&gt;
#*Teachers can distribute journal entries on mass scale.&lt;br /&gt;
#&#039;&#039;&#039;Use the servers for sharing storage space:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: hard)&amp;lt;/i&amp;gt;. &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;The data created by a Journal may take the free storage space on a low storage device pretty soon.&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; Hence this background feature will let the Journal utilize both the local storage and the server storage. Journal objects or libraries will be shifted if it can be shifted to the server. When any object will be needed, it will be downloaded and cached temporarily on the local storage. A method will be devised that will be looking for the objects that can be shifted to the server like, objects which are rarely used and those containing library items. The user will be able to set rules to manage the behaviour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Technologies:&amp;lt;/u&amp;gt; I will use python and its libraries for the main backend along with GTK+ (GTK3) for the GUI and graphics generator like Inkscape for the icons. For the different server integration, I am planning to use use server specific cli, apis, libraries or scripts like “owncloudcmd” for ownCloud,  “RClone” that supports many cloud services like Google Drive, Amazon S3, Openstack Swift / Rackspace cloud files / Memset Memstore, Dropbox, Google Cloud Storage, Amazon Cloud Drive, Microsoft One Drive, Hubic, Backblaze B2, Yandex Disk, The local filesystem. I will also use polkit for permissions and symbolic links. If I finally use rclone for cloud sync, then I might learn and use go programming language (its written on) or use pexpect to run its cli.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is the timeline for development of your project? The Summer of Code work period is from mid-May to mid-August; 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&#039;s good to have a plan at the beginning so you have an idea of where you&#039;re headed.) Note that you should probably plan to have something &amp;quot;working and 90% done&amp;quot; by the midterm evaluation (end of June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align: center;&amp;quot; | Week&lt;br /&gt;
! Scheduled Work &lt;br /&gt;
! Time I can devote&lt;br /&gt;
|-&lt;br /&gt;
| 22 April-22 May&lt;br /&gt;
(Community Bonding period)&lt;br /&gt;
| &lt;br /&gt;
*Introduce and become part of the community.  &lt;br /&gt;
*Look for various different ways to approach the project.&lt;br /&gt;
*Discuss with mentor(s), OLPC members, XSCE members and if possible the people who work down there to tailor the project to the perfect needs and flow.&lt;br /&gt;
*Draw a detailed roadmap on how I will implement each feature.&lt;br /&gt;
*Learn any required skill I may be missing.&lt;br /&gt;
*Design GUI according to the flow as discussed above and create icons as required required.&lt;br /&gt;
*Install XSCE and ownCloud servers at my own place. &lt;br /&gt;
*Create accounts in the third party cloud providers.&lt;br /&gt;
|22 April-29 April: 9 hours per week (end semester examinations.)&lt;br /&gt;
30th April-22nd May: 65 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 23 May-29 May&lt;br /&gt;
| &lt;br /&gt;
*Complete the specific backup-restore(1) and cloud server backup(3) features as I have a head start on both, having gone through the code and tested the functionality. [https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 1], [https://github.com/ManashRaja/cloud-sync-demo 2].&lt;br /&gt;
*Try to match my style of coding with the existing code by reviews and proper study of the code.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 30 May-5 June&lt;br /&gt;
| &lt;br /&gt;
*As I would have already installed the XSCE server at my place, and the implementation discussed to its detail in the &amp;quot;Community bonding period&amp;quot; hence I believe that I can buckle up and finish at least the basic functionality of this feature.&lt;br /&gt;
*Relatively free week to act as buffer if required or start the next week&#039;s work.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 6 June-12 June&lt;br /&gt;
| Since, the feature &amp;quot;servers for sharing storage space&amp;quot;(5) is a difficult task, hence I have planned more time for this feature. I will create the basic functionality as per the road map we would have discussed in the &amp;quot;Community Bonding period&amp;quot;&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 13 June-20 June&lt;br /&gt;
| &lt;br /&gt;
*Finalize the 5th feature.&lt;br /&gt;
*Testing and code documentation.&lt;br /&gt;
*90% as per functionality of the project will be complete before the Mid-Term Evaluation.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 21 June-28 June&lt;br /&gt;
| &lt;br /&gt;
*Mid-Term Evaluation&lt;br /&gt;
*Keep on brainstorming for GUIs and integration of my project which makes it very effective and user friendly.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 28 June-3 July&lt;br /&gt;
| &lt;br /&gt;
*Work on the feedback received after the evaluation.&lt;br /&gt;
*Complete cloud integration for third party service providers for it any of them were left.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 4 July-10 July&lt;br /&gt;
| &lt;br /&gt;
*Understand all types of collaborations that happen in the school among the children(students) and teachers, to know how my sharing feature fits in.&lt;br /&gt;
*Will add more finishing touches to the features (1,2,3,5) developed above.&lt;br /&gt;
*Start coding for the sharing feature.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 11 July-16 July&lt;br /&gt;
| &lt;br /&gt;
*Finish the sharing feature.&lt;br /&gt;
*Apart from the regular updates to the community about the project, I will submit my work upto now for review and suggestions by the community.&lt;br /&gt;
*Work on the suggestions.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 18 July-24 July&lt;br /&gt;
| Buffer week to complete if work is pending or add GUI to use the cloud framework developed to support “One hardware to many user” feature of Sugar.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 25 July-31 July&lt;br /&gt;
| &lt;br /&gt;
*Finalize the code&lt;br /&gt;
*Testing and improvements&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 1st Aug-7 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Proper code documentation, cleanup and flake8 verification.&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 8 Aug-15 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Feature documentation on https://wiki.sugarlabs.org/go/Features&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 16 Aug-24 Aug&lt;br /&gt;
| Submit code and evaluations.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My strength lies in my dynamic learning and self motivated hard work. I am a 2nd year undergraduate of the Indian Institute of Technology, Kharagpur where I am actively involved with the tech community and contribute to 2 research groups ([http://quadrotor-iitkgp.github.io/ 1][http://www.agv.iitkgp.ac.in/ 2]), 2 tech societies([https://www.robotix.in/team/ 1]), projects under professors and have participated in many competitions and hackathons apart from keeping my academics up. In these two years of my stay, I have learnt a great deal about time management. &amp;lt;b&amp;gt;All the professional level work we do has made me to realize realistic timelines for myself and my team.&amp;lt;/b&amp;gt; Though I failed initially, but I am getting better. My work has been mostly in software RnD and autonomous robotics and hence &amp;lt;b&amp;gt;I have gained lots of experience about the process and its time consumption involved in converting an idea to finished product.&amp;lt;/b&amp;gt; So, I have learned to plan my work and execute it efficiently.&lt;br /&gt;
Another important fact is that &amp;lt;b&amp;gt;my college summer vacations lie in the period of 29th April to 24th July, during which I will be able to devote 100% of my work time as GSoC being my top priority&amp;lt;/b&amp;gt; (8-9 hours a day and around 60 hours a week for 12 weeks) towards my contribution. Even though my college semester will start from 25th July, I will still be able to devote 40 hours a week due to a light semester. I also have a head start on the project I would be working on as &amp;lt;b&amp;gt;I have been involved with the Sugar code base since February 1st, added a [https://github.com/sugarlabs/sugar/pull/665 new feature], fixed two bugs [https://github.com/sugarlabs/sugar/pull/668 1], [https://github.com/sugarlabs/sugar/pull/677 2] and have made the prototype of two features ([https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 1][https://github.com/ManashRaja/cloud-sync-demo 2]) I will develop in this project&amp;lt;/b&amp;gt; apart from discussion about the project on IRC. Hence I am confident that I can ensure fully dedicated work and a pledge to deliver more than I promise.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;You and the community&#039;&#039;&#039; ==&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will mostly be used in the deployment side of Sugar. I strongly believe that my project will add to the sweetness of Sugar to make it come closer to the people who deploy and the even sweeter kids who use it. Backup and restore is a very important feature for various other members of the community who might be testing, developing and integrating Sugar on multiple platforms.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What will you do if you get stuck on your project and your mentor isn&#039;t around?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If I am stuck anywhere, then I will put my best efforts to solve the problem myself by trying Google search as always and referring other resources. But if in case help is required and my mentor is not available then I would refer to the community over developer mailing list, IRC, other GSoC participant if relevant or some specific member(s) whom I might know during the course of the project (eg: Quozl`and SAMdroid who have helped me before). If the problem is not Sugar specific, then I may even take help from my tech circle (Kharagpur Open Source Society) consisting of very smart people or professors if they are available during the vacation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*I would propose a repetitive scheduled meeting every two days at a particular time or as per the convenience of mentors/community members  where we would discuss the progress made and the further course of action. I can understand its effectiveness as we use this technique at our college while doing projects under professors so that the focus and progression is maintained. &lt;br /&gt;
*I will frequently update my progress and milestones achieved on my [http://manashpratim.in/ blog].&lt;br /&gt;
*Share it along with doubts or queries on a particular thread for this project on the developer mailing list to welcome inputs from all the community members.&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
* We want to make sure that you can set up a [http://developer.sugarlabs.org development environment] before the summer starts. Please do &#039;&#039;one&#039;&#039; of the following:&lt;br /&gt;
** 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 &amp;quot;logout&amp;quot;. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Buddy-menu-manash.png|1000px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. &#039;&#039;&#039;&lt;br /&gt;
:: It&#039;s normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.&lt;br /&gt;
&lt;br /&gt;
Yes I have sent two pull request. [https://github.com/sugarlabs/sugar/pull/665 Proxy setting feature] and [https://github.com/sugarlabs/sugar/pull/668 Bug fix]&lt;br /&gt;
&lt;br /&gt;
* If you plan to work on Sugar-Web projects we want to be sure that you&#039;re familiar with web technologies, so:&lt;br /&gt;
** Clone the [https://github.com/llaske/Sugarizer Sugarizer repository]&lt;br /&gt;
** Using instructions [https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity&lt;br /&gt;
** Send us a screenshot of your new activity executed in Sugarizer&lt;br /&gt;
&#039;&#039;&#039; Describe a great learning experience you had as a child.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I can relate to the goals of Sugar, now when I have grown up, since I have witnessed how an access to computer aided learning and quick access to resources (internet) can accelerate the process of learning as in my case. The ability to create has been the major driving force of my learning. Three events in particular were the most significant that I would like to share with:&lt;br /&gt;
*An investment into the future for a PC made by my parents at my 3rd grade gave me my best friend and teacher at my childhood. I believe, it is more about the enhancement of thinking process than in the ability to score higher marks in exams. Even though some people might be skeptical about the results of OLPC and Sugar provided the investment, but I believe in its long term effect as I have seen it.&lt;br /&gt;
*Then I was introduced to programming and the Internet by my school at 6th grade. The introduction made all the neurons light up in excitement for the ability to create my own real world applications. &lt;br /&gt;
*I was shown the path and I started sprinting on it myself. From the period of 7th grade to 10th grade, I learnt C++, C#, PHP, HTML, CSS, electronics and embedded programming to create many software and hardware applications and participated in many competitions upto the national level.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Yes, I would like to tell why I chose to contribute to Sugar. While looking at various organizations at the 2015 GSoC page, I shortlisted a few organizations based on my strongest skill set. I looked upon for the problem statement of each of the organizations that they were trying to achieve and there I came to know about Sugar. I felt attached to the community due to the following points:&lt;br /&gt;
*I could relate the computer aided Sugar pedagogy with my own experience.&lt;br /&gt;
*I am a volunteer at “National Service Scheme” in my college and along with my unit, we provide community service at a nearby village. Hence I can visualize if not perfectly the effect of OLPC and Sugar would have in the children deep down there. We used to take our laptops to show them animated content, fascinate them with electronics and RC planes. They used to gather around us and we witnessed maximum attendance on the Saturdays we went there.&lt;br /&gt;
*I found the community members at IRC and developer mailing list very welcome and I feel excited about my first experience at an International selfless open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please include the category tag at the bottom of your page the Category tag for 2016 GSoC applications.&lt;br /&gt;
&lt;br /&gt;
[[Category:2016 GSoC applications]]&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Features/Proxy_Settings&amp;diff=98000</id>
		<title>Features/Proxy Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Features/Proxy_Settings&amp;diff=98000"/>
		<updated>2016-04-12T02:15:09Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: /* Current status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;[[Category:Feature Ready for Release Manager]]&lt;br /&gt;
[[Category:Feature|Proxy Settings]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
Allow the user to configure proxy settings using the Sugar Control Panel.&lt;br /&gt;
&lt;br /&gt;
== Owner ==&lt;br /&gt;
&lt;br /&gt;
[[User:sascha_silbe|Sascha Silbe]], [[User:ajay_garg|Ajay Garg]] (ajay@activitycentral.com)&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
&lt;br /&gt;
* Targeted release: Unspecified&lt;br /&gt;
* Last updated: 2016-04-12&lt;br /&gt;
* Percentage of completion: 100%&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
Both individual users and deployments need to be able to set a proxy for&lt;br /&gt;
Sugar and activities to use. While we&#039;d like the system to work that all&lt;br /&gt;
out automatically (e.g. using [https://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol WPAD]), this often isn&#039;t possible. Common&lt;br /&gt;
reasons include legacy (&amp;quot;inherited&amp;quot;) setups and network uplinks simply being&lt;br /&gt;
out of control of the user respectively deployment.&lt;br /&gt;
&lt;br /&gt;
The existing Network Control Panel is enhanced by adding a new section for the&lt;br /&gt;
proxy settings. For consistency between Sugar and Gnome, the basic layout of&lt;br /&gt;
the Gnome 3 proxy settings has been mirrored: A combo box allows the user to&lt;br /&gt;
select how the proxy setting should be determined (None=no proxy settings, &lt;br /&gt;
Use system proxy=let proxy be set by other means, Automatic=WPAD or PAC, &lt;br /&gt;
Manual=enter host names and ports for each protocol).&lt;br /&gt;
Based on which method was selected, additional configuration options are&lt;br /&gt;
presented to the user.&lt;br /&gt;
&lt;br /&gt;
The settings are stored in schemas (via &#039;Gsettings&#039;) and environment variables.&lt;br /&gt;
&lt;br /&gt;
== Benefit to Sugar ==&lt;br /&gt;
&lt;br /&gt;
See [[#Detailed Description|Detailed Description]].&lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
&lt;br /&gt;
Modifying the existing Network Control Panel.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Manual&amp;quot; mode==&lt;br /&gt;
&lt;br /&gt;
* Fill in the settings &amp;quot;manually&amp;quot;, and restart when prompted so.&lt;br /&gt;
:[[File:proxy21.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now, open Browse. &amp;quot;www.facebook.com&amp;quot; should be blacklisted.&lt;br /&gt;
:[[File:proxy5.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;www.google.com&amp;quot; shoud be allowed.&lt;br /&gt;
:[[File:proxy4.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Automatic mode - PAC==&lt;br /&gt;
&lt;br /&gt;
* Fill in the URL of the proxy-file, and restart when prompted so.&lt;br /&gt;
:[[File:proxy24.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now, open Browse. &amp;quot;www.facebook.com&amp;quot; should be blacklisted.&lt;br /&gt;
:[[File:proxy5.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;www.google.com&amp;quot; shoud be allowed.&lt;br /&gt;
:[[File:proxy4.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automatic mode - WPAD==&lt;br /&gt;
&lt;br /&gt;
* Motive&lt;br /&gt;
** To provide proxy-configuration, without needing the client-user&lt;br /&gt;
*** to manualyy enter the proxy-settings (&#039;&#039;&#039;Manual&#039;&#039;&#039; mode)&lt;br /&gt;
*** to manually enter the location of proxy-configuration file herself (&#039;&#039;&#039;Automatic (PAC)&#039;&#039;&#039; mode).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Benefits&lt;br /&gt;
** By not needing the client-user to manually specify the settings, every client-user is saved  a headache :) Instead, all the configuration is done via a network-administrator, on the server-side.&lt;br /&gt;
** By delegating the responsibility of specifying every proxy-rule (even the proxy-configuration file) to the network-administrator, security is increased dramatically.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Notes&lt;br /&gt;
** Setting this particular mode (&#039;&#039;&#039;Automatic-WPAD&#039;&#039;&#039; Proxy) is quite complicated; and many possibilities exist. &#039;&#039;&#039;However, the bottom-rule is, client should himself not need to specifiy the location of proxy-configuration file as per say&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Testing (one of the possible ways :) )&lt;br /&gt;
** &#039;&#039;&#039;(For those not interested in the technicalities, please proceed to the next bullet :D)&#039;&#039;&#039; To verify that current dextrose-4 supports Auto-WPAD mode, we test using the method, as per the following 4 requirements, as listed at http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol#Requirements ::&lt;br /&gt;
***In order to use the DNS only method, a DNS entry is needed for a host named WPAD.&lt;br /&gt;
***The host at the WPAD address must be able to serve a Web page.&lt;br /&gt;
***In both cases, the Web server must be configured to serve the WPAD file with a MIME type of &amp;quot;application/x-ns-proxy-autoconfig&amp;quot;.&lt;br /&gt;
***If the DNS method is used, a file named wpad.dat must be located in the WPAD Web site&#039;s root directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Select &amp;quot;Automatic&amp;quot; mode in &amp;quot;My Settings&amp;quot; -&amp;gt; &amp;quot;Proxy&amp;quot; (without specifying anything else), and restart when prompted so.&lt;br /&gt;
:[[File:proxy1.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The above step is all that is needed for &amp;quot;Automatic (WPAD)&amp;quot; mode to  take effect; the WPAD-configuration-file will be located by the DHCP/DNS Server. However, for easy QA testing,  we specify an easy way to replicate this DNS behavior ::&lt;br /&gt;
&lt;br /&gt;
** Add the line &amp;quot;build.activitycentral.com wpad&amp;quot; to the file &amp;quot;/etc/hosts&amp;quot; on the XO, and reboot. &#039;&#039;&#039;It is repeated innumerable times, that this  step is required just for easy testing; in actual deployments, the DNS-name resolution will be provided by network-administrators/School-Server-running-DHCPD&#039;&#039;&#039;&lt;br /&gt;
** Also, thanks a ton to &#039;&#039;&#039;Santiago Rodriguez (scollazo@activitycentral.com)&#039;&#039;&#039; for setting up the proxy-configuration-files at build.activitycentral.com.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open &amp;quot;Browse&amp;quot;, and type in &amp;quot;www.google.com&amp;quot;. You should be prompted for credentials (as is required by the WPAD-configuration-file at build.activitycentral.com&lt;br /&gt;
&lt;br /&gt;
:[[File:proxy2.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Entering wrong credentials in the previous step, re-prompts :). This time, enter correct credentials.&lt;br /&gt;
:[[File:proxy3.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The page opens successfully.&lt;br /&gt;
:[[File:proxy4.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Next, type &amp;quot;www.facebook.com&amp;quot;; the &amp;quot;Access Denied&amp;quot; page is shown instantaneously, as per the rule in the WPAD-configuration-file at build.activitycentral.com&lt;br /&gt;
:[[File:proxy5.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* NOTE: The proxy setup will persist even if a user switches to Gnome Desktop, because the way it is setup, is the natural way gnome does too ( GCONF ) (Thanks Ariel).&lt;br /&gt;
&lt;br /&gt;
== User Experience ==&lt;br /&gt;
&lt;br /&gt;
See [[#UI Design|UI Design]]&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
There are no new dependencies.&lt;br /&gt;
&lt;br /&gt;
== Contingency Plan ==&lt;br /&gt;
&lt;br /&gt;
Users can continue to use the Gnome Control Center to configure proxy settings.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
There is no documentation beyond this page.&lt;br /&gt;
&lt;br /&gt;
== Release Notes ==&lt;br /&gt;
&lt;br /&gt;
There have been no changes to public API. The Release Notes merely need to mention that users can now configure proxy settings from within Sugar. As detailed above, the UI is very similar to the Gnome UI.&lt;br /&gt;
&lt;br /&gt;
== Comments and Discussion ==&lt;br /&gt;
* See [[{{TALKPAGENAME}}|discussion tab for this feature]] &amp;lt;!-- This adds a link to the &amp;quot;discussion&amp;quot; tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page. --&amp;gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Features/Proxy_Settings&amp;diff=97999</id>
		<title>Features/Proxy Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Features/Proxy_Settings&amp;diff=97999"/>
		<updated>2016-04-12T02:14:02Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;[[Category:Feature Ready for Release Manager]]&lt;br /&gt;
[[Category:Feature|Proxy Settings]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
Allow the user to configure proxy settings using the Sugar Control Panel.&lt;br /&gt;
&lt;br /&gt;
== Owner ==&lt;br /&gt;
&lt;br /&gt;
[[User:sascha_silbe|Sascha Silbe]], [[User:ajay_garg|Ajay Garg]] (ajay@activitycentral.com)&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
&lt;br /&gt;
* Targeted release: 0.99&lt;br /&gt;
* Last updated: 2013-02-17&lt;br /&gt;
* Percentage of completion: 100%&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
Both individual users and deployments need to be able to set a proxy for&lt;br /&gt;
Sugar and activities to use. While we&#039;d like the system to work that all&lt;br /&gt;
out automatically (e.g. using [https://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol WPAD]), this often isn&#039;t possible. Common&lt;br /&gt;
reasons include legacy (&amp;quot;inherited&amp;quot;) setups and network uplinks simply being&lt;br /&gt;
out of control of the user respectively deployment.&lt;br /&gt;
&lt;br /&gt;
The existing Network Control Panel is enhanced by adding a new section for the&lt;br /&gt;
proxy settings. For consistency between Sugar and Gnome, the basic layout of&lt;br /&gt;
the Gnome 3 proxy settings has been mirrored: A combo box allows the user to&lt;br /&gt;
select how the proxy setting should be determined (None=no proxy settings, &lt;br /&gt;
Use system proxy=let proxy be set by other means, Automatic=WPAD or PAC, &lt;br /&gt;
Manual=enter host names and ports for each protocol).&lt;br /&gt;
Based on which method was selected, additional configuration options are&lt;br /&gt;
presented to the user.&lt;br /&gt;
&lt;br /&gt;
The settings are stored in schemas (via &#039;Gsettings&#039;) and environment variables.&lt;br /&gt;
&lt;br /&gt;
== Benefit to Sugar ==&lt;br /&gt;
&lt;br /&gt;
See [[#Detailed Description|Detailed Description]].&lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
&lt;br /&gt;
Modifying the existing Network Control Panel.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Manual&amp;quot; mode==&lt;br /&gt;
&lt;br /&gt;
* Fill in the settings &amp;quot;manually&amp;quot;, and restart when prompted so.&lt;br /&gt;
:[[File:proxy21.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now, open Browse. &amp;quot;www.facebook.com&amp;quot; should be blacklisted.&lt;br /&gt;
:[[File:proxy5.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;www.google.com&amp;quot; shoud be allowed.&lt;br /&gt;
:[[File:proxy4.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Automatic mode - PAC==&lt;br /&gt;
&lt;br /&gt;
* Fill in the URL of the proxy-file, and restart when prompted so.&lt;br /&gt;
:[[File:proxy24.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now, open Browse. &amp;quot;www.facebook.com&amp;quot; should be blacklisted.&lt;br /&gt;
:[[File:proxy5.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;www.google.com&amp;quot; shoud be allowed.&lt;br /&gt;
:[[File:proxy4.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Automatic mode - WPAD==&lt;br /&gt;
&lt;br /&gt;
* Motive&lt;br /&gt;
** To provide proxy-configuration, without needing the client-user&lt;br /&gt;
*** to manualyy enter the proxy-settings (&#039;&#039;&#039;Manual&#039;&#039;&#039; mode)&lt;br /&gt;
*** to manually enter the location of proxy-configuration file herself (&#039;&#039;&#039;Automatic (PAC)&#039;&#039;&#039; mode).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Benefits&lt;br /&gt;
** By not needing the client-user to manually specify the settings, every client-user is saved  a headache :) Instead, all the configuration is done via a network-administrator, on the server-side.&lt;br /&gt;
** By delegating the responsibility of specifying every proxy-rule (even the proxy-configuration file) to the network-administrator, security is increased dramatically.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Notes&lt;br /&gt;
** Setting this particular mode (&#039;&#039;&#039;Automatic-WPAD&#039;&#039;&#039; Proxy) is quite complicated; and many possibilities exist. &#039;&#039;&#039;However, the bottom-rule is, client should himself not need to specifiy the location of proxy-configuration file as per say&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Testing (one of the possible ways :) )&lt;br /&gt;
** &#039;&#039;&#039;(For those not interested in the technicalities, please proceed to the next bullet :D)&#039;&#039;&#039; To verify that current dextrose-4 supports Auto-WPAD mode, we test using the method, as per the following 4 requirements, as listed at http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol#Requirements ::&lt;br /&gt;
***In order to use the DNS only method, a DNS entry is needed for a host named WPAD.&lt;br /&gt;
***The host at the WPAD address must be able to serve a Web page.&lt;br /&gt;
***In both cases, the Web server must be configured to serve the WPAD file with a MIME type of &amp;quot;application/x-ns-proxy-autoconfig&amp;quot;.&lt;br /&gt;
***If the DNS method is used, a file named wpad.dat must be located in the WPAD Web site&#039;s root directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Select &amp;quot;Automatic&amp;quot; mode in &amp;quot;My Settings&amp;quot; -&amp;gt; &amp;quot;Proxy&amp;quot; (without specifying anything else), and restart when prompted so.&lt;br /&gt;
:[[File:proxy1.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The above step is all that is needed for &amp;quot;Automatic (WPAD)&amp;quot; mode to  take effect; the WPAD-configuration-file will be located by the DHCP/DNS Server. However, for easy QA testing,  we specify an easy way to replicate this DNS behavior ::&lt;br /&gt;
&lt;br /&gt;
** Add the line &amp;quot;build.activitycentral.com wpad&amp;quot; to the file &amp;quot;/etc/hosts&amp;quot; on the XO, and reboot. &#039;&#039;&#039;It is repeated innumerable times, that this  step is required just for easy testing; in actual deployments, the DNS-name resolution will be provided by network-administrators/School-Server-running-DHCPD&#039;&#039;&#039;&lt;br /&gt;
** Also, thanks a ton to &#039;&#039;&#039;Santiago Rodriguez (scollazo@activitycentral.com)&#039;&#039;&#039; for setting up the proxy-configuration-files at build.activitycentral.com.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open &amp;quot;Browse&amp;quot;, and type in &amp;quot;www.google.com&amp;quot;. You should be prompted for credentials (as is required by the WPAD-configuration-file at build.activitycentral.com&lt;br /&gt;
&lt;br /&gt;
:[[File:proxy2.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Entering wrong credentials in the previous step, re-prompts :). This time, enter correct credentials.&lt;br /&gt;
:[[File:proxy3.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The page opens successfully.&lt;br /&gt;
:[[File:proxy4.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Next, type &amp;quot;www.facebook.com&amp;quot;; the &amp;quot;Access Denied&amp;quot; page is shown instantaneously, as per the rule in the WPAD-configuration-file at build.activitycentral.com&lt;br /&gt;
:[[File:proxy5.png|640px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* NOTE: The proxy setup will persist even if a user switches to Gnome Desktop, because the way it is setup, is the natural way gnome does too ( GCONF ) (Thanks Ariel).&lt;br /&gt;
&lt;br /&gt;
== User Experience ==&lt;br /&gt;
&lt;br /&gt;
See [[#UI Design|UI Design]]&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
There are no new dependencies.&lt;br /&gt;
&lt;br /&gt;
== Contingency Plan ==&lt;br /&gt;
&lt;br /&gt;
Users can continue to use the Gnome Control Center to configure proxy settings.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
There is no documentation beyond this page.&lt;br /&gt;
&lt;br /&gt;
== Release Notes ==&lt;br /&gt;
&lt;br /&gt;
There have been no changes to public API. The Release Notes merely need to mention that users can now configure proxy settings from within Sugar. As detailed above, the UI is very similar to the Gnome UI.&lt;br /&gt;
&lt;br /&gt;
== Comments and Discussion ==&lt;br /&gt;
* See [[{{TALKPAGENAME}}|discussion tab for this feature]] &amp;lt;!-- This adds a link to the &amp;quot;discussion&amp;quot; tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page. --&amp;gt;&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=97796</id>
		<title>Summer of Code/2016/Sugar Journal backup and restore</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=97796"/>
		<updated>2016-03-25T16:49:39Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About You ==&lt;br /&gt;
&#039;&#039;&#039;What is your name?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
My name is &amp;lt;b&amp;gt;Manash Pratim Das&amp;lt;/b&amp;gt;. I am a 2nd Year, Bachelor of Technology (B.Tech), undergraduate student at the [http://www.iitkgp.ac.in/ Indian Institute of Technology, Kharagpur, India]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your email address? &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My email address is &amp;lt;b&amp;gt;mpdmanash@gmail.com&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your Sugar Labs wiki username?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your IRC nickname on irc.freenode.net?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you&#039;d prefer.)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My native language is Hindi, but I am fluent in English as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Where are you located, and what hours (UTC) do you tend to work? (We also try to match mentors by general time zone if possible.)&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
I live at in Kharagpur, West Bengal, India. &amp;lt;br /&amp;gt;&lt;br /&gt;
My timezone is &amp;lt;b&amp;gt;UTC + 5:30 (Indian Standard Time)&amp;lt;/b&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
I generally tend to work in the evening (from 5 pm) and late night (to 4 am). But my time table is very flexible and can be changed as per the convenience of my mentor/community members. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Yes, I have contributed to two completely open source research projects at my college:&lt;br /&gt;
* [https://github.com/quadrotor-IITKgp “Aerial Robotics Kharagpur”]: I am a software team member of this organization. Few specific (other than open code contribution) [https://github.com/quadrotor-IITKgp/grid_localization 1][https://github.com/ManashRaja/quad_simulator 2]&lt;br /&gt;
* [https://github.com/AGV-IIT-KGP “Autonomous Ground Vehicle”]: Specific work [https://github.com/AGV-IIT-KGP/computer_vision/pull/28 1],[https://github.com/AGV-IIT-KGP/eklavya-2015/pull/75 2]&lt;br /&gt;
* My [https://github.com/ManashRaja/ GitHub profile] in general.&lt;br /&gt;
I also solved a bug for an Arduino library, but it was solved before I could send the PR :) .&lt;br /&gt;
&lt;br /&gt;
== About your project ==&lt;br /&gt;
&#039;&#039;&#039;What is the name of your project?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sugar Journal backup and restore&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will add advanced Sugar-server integration to increase the utility of available servers (XSCE or cloud). The following are the features in detail:&lt;br /&gt;
#&#039;&#039;&#039;Add selective backup-restore:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: easy).&amp;lt;/i&amp;gt; User can select part of the journal to be backed up or restored directly from within the backup page. Metadata for each Journal entry will store the list of dependencies and library objects, which will be downloaded again as needed (and, as available). &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; &lt;br /&gt;
#*Backups will be specific and save unnecessary wastage of storage space. &lt;br /&gt;
#*Teachers will be able to distribute specific Journal objects without hampering the existing Journal of a student.&lt;br /&gt;
#&#039;&#039;&#039;Add system to backup and restore from school servers (XSCE):&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: medium)&amp;lt;/i&amp;gt;. Now backup can only be stored and restored from devices, but this feature will add school servers to the options. &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
#*If the school-servers are present, then they can be made an easy way to store and distribute backups among many.&lt;br /&gt;
#*The existing (ds-backup) option on OLPC OS is not an effective method because it cannot be easily restored. (from what I understand)&lt;br /&gt;
#&#039;&#039;&#039;Add cloud service:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: easy).&amp;lt;/i&amp;gt; In a few clicks, it will let schools to connect each student’s pc to a local cloud server or a third party cloud server as per the availability to sync the journal data at a central location.&amp;lt;br /&amp;gt;&amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; It will be easy for schools to let hardware be shared among the student batches as students can login to their account from any hardware and can still access his/her own journal. This feature will strongly support the &amp;quot;One to many concept&amp;quot; that can be implemented on Sugar. (concept discussed on GSoC 2016 idea page [https://wiki.sugarlabs.org/go/Summer_of_Code/2016 link])&lt;br /&gt;
#&#039;&#039;&#039;Easy sharing of Journal items based on above server frameworks:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: medium)&amp;lt;/i&amp;gt; When server frameworks like XSCE and cloud are available, their utility can be increased by adding features where children can share any item with each other in just few easy clicks. &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt;&lt;br /&gt;
#*The backups can be used by multiple types of hardware/platform running Sugar (OLPC pcs, Android, Sugarizer) seamlessly using school-server’s multi-platform support to the advantage.&lt;br /&gt;
#*Teachers can distribute journal entries on mass scale.&lt;br /&gt;
#&#039;&#039;&#039;Use the servers for sharing storage space:&#039;&#039;&#039; &amp;lt;i&amp;gt;(Difficulty level: hard)&amp;lt;/i&amp;gt;. &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;The data created by a Journal may take the free storage space on a low storage device pretty soon.&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; Hence this background feature will let the Journal utilize both the local storage and the server storage. Journal objects or libraries will be shifted if it can be shifted to the server. When any object will be needed, it will be downloaded and cached temporarily on the local storage. A method will be devised that will be looking for the objects that can be shifted to the server like, objects which are rarely used and those containing library items. The user will be able to set rules to manage the behaviour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Technologies:&amp;lt;/u&amp;gt; I will use python and its libraries for the main backend along with GTK+ (GTK3) for the GUI and graphics generator like Inkscape for the icons. For the different server integration, I am planning to use use server specific cli, apis, libraries or scripts like “owncloudcmd” for ownCloud,  “RClone” that supports many cloud services like Google Drive, Amazon S3, Openstack Swift / Rackspace cloud files / Memset Memstore, Dropbox, Google Cloud Storage, Amazon Cloud Drive, Microsoft One Drive, Hubic, Backblaze B2, Yandex Disk, The local filesystem. I will also use polkit for permissions and symbolic links. If I finally use rclone for cloud sync, then I might learn and use go programming language (its written on) or use pexpect to run its cli.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is the timeline for development of your project? The Summer of Code work period is from mid-May to mid-August; 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&#039;s good to have a plan at the beginning so you have an idea of where you&#039;re headed.) Note that you should probably plan to have something &amp;quot;working and 90% done&amp;quot; by the midterm evaluation (end of June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align: center;&amp;quot; | Week&lt;br /&gt;
! Scheduled Work &lt;br /&gt;
! Time I can devote&lt;br /&gt;
|-&lt;br /&gt;
| 22 April-22 May&lt;br /&gt;
(Community Bonding period)&lt;br /&gt;
| &lt;br /&gt;
*Introduce and become part of the community.  &lt;br /&gt;
*Look for various different ways to approach the project.&lt;br /&gt;
*Discuss with mentor(s), OLPC members, XSCE members and if possible the people who work down there to tailor the project to the perfect needs and flow.&lt;br /&gt;
*Draw a detailed roadmap on how I will implement each feature.&lt;br /&gt;
*Learn any required skill I may be missing.&lt;br /&gt;
*Design GUI according to the flow as discussed above and create icons as required required.&lt;br /&gt;
*Install XSCE and ownCloud servers at my own place. &lt;br /&gt;
*Create accounts in the third party cloud providers.&lt;br /&gt;
|22 April-29 April: 9 hours per week (end semester examinations.)&lt;br /&gt;
30th April-22nd May: 65 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 23 May-29 May&lt;br /&gt;
| &lt;br /&gt;
*Complete the specific backup-restore(1) and cloud server backup(3) features as I have a head start on both, having gone through the code and tested the functionality. [https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 1], [https://github.com/ManashRaja/cloud-sync-demo 2].&lt;br /&gt;
*Try to match my style of coding with the existing code by reviews and proper study of the code.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 30 May-5 June&lt;br /&gt;
| &lt;br /&gt;
*As I would have already installed the XSCE server at my place, and the implementation discussed to its detail in the &amp;quot;Community bonding period&amp;quot; hence I believe that I can buckle up and finish at least the basic functionality of this feature.&lt;br /&gt;
*Relatively free week to act as buffer if required or start the next week&#039;s work.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 6 June-12 June&lt;br /&gt;
| Since, the feature &amp;quot;servers for sharing storage space&amp;quot;(5) is a difficult task, hence I have planned more time for this feature. I will create the basic functionality as per the road map we would have discussed in the &amp;quot;Community Bonding period&amp;quot;&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 13 June-20 June&lt;br /&gt;
| &lt;br /&gt;
*Finalize the 5th feature.&lt;br /&gt;
*Testing and code documentation.&lt;br /&gt;
*90% as per functionality of the project will be complete before the Mid-Term Evaluation.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 21 June-28 June&lt;br /&gt;
| &lt;br /&gt;
*Mid-Term Evaluation&lt;br /&gt;
*Keep on brainstorming for GUIs and integration of my project which makes it very effective and user friendly.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 28 June-3 July&lt;br /&gt;
| &lt;br /&gt;
*Work on the feedback received after the evaluation.&lt;br /&gt;
*Complete cloud integration for third party service providers for it any of them were left.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 4 July-10 July&lt;br /&gt;
| &lt;br /&gt;
*Understand all types of collaborations that happen in the school among the children(students) and teachers, to know how my sharing feature fits in.&lt;br /&gt;
*Will add more finishing touches to the features (1,2,3,5) developed above.&lt;br /&gt;
*Start coding for the sharing feature.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 11 July-16 July&lt;br /&gt;
| &lt;br /&gt;
*Finish the sharing feature.&lt;br /&gt;
*Apart from the regular updates to the community about the project, I will submit my work upto now for review and suggestions by the community.&lt;br /&gt;
*Work on the suggestions.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 18 July-24 July&lt;br /&gt;
| Buffer week to complete if work is pending or add GUI to use the cloud framework developed to support “One hardware to many user” feature of Sugar.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 25 July-31 July&lt;br /&gt;
| &lt;br /&gt;
*Finalize the code&lt;br /&gt;
*Testing and improvements&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 1st Aug-7 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Proper code documentation, cleanup and flake8 verification.&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 8 Aug-15 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Feature documentation on https://wiki.sugarlabs.org/go/Features&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 16 Aug-24 Aug&lt;br /&gt;
| Submit code and evaluations.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My strength lies in my dynamic learning and self motivated hard work. I am a 2nd year undergraduate of the Indian Institute of Technology, Kharagpur where I am actively involved with the tech community and contribute to 2 research groups ([http://quadrotor-iitkgp.github.io/ 1][http://www.agv.iitkgp.ac.in/ 2]), 2 tech societies([https://www.robotix.in/team/ 1]), projects under professors and have participated in many competitions and hackathons apart from keeping my academics up. In these two years of my stay, I have learnt a great deal about time management. &amp;lt;b&amp;gt;All the professional level work we do has made me to realize realistic timelines for myself and my team.&amp;lt;/b&amp;gt; Though I failed initially, but I am getting better. My work has been mostly in software RnD and autonomous robotics and hence &amp;lt;b&amp;gt;I have gained lots of experience about the process and its time consumption involved in converting an idea to finished product.&amp;lt;/b&amp;gt; So, I have learned to plan my work and execute it efficiently.&lt;br /&gt;
Another important fact is that &amp;lt;b&amp;gt;my college summer vacations lie in the period of 29th April to 24th July, during which I will be able to devote 100% of my work time as GSoC being my top priority&amp;lt;/b&amp;gt; (8-9 hours a day and around 60 hours a week for 12 weeks) towards my contribution. Even though my college semester will start from 25th July, I will still be able to devote 40 hours a week due to a light semester. I also have a head start on the project I would be working on as &amp;lt;b&amp;gt;I have been involved with the Sugar code base since February 1st, added a [https://github.com/sugarlabs/sugar/pull/665 new feature], fixed a [https://github.com/sugarlabs/sugar/pull/668 bug] and have made the prototype of two features ([https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 1][https://github.com/ManashRaja/cloud-sync-demo 2]) I will develop in this project&amp;lt;/b&amp;gt; apart from discussion about the project on IRC. Hence I am confident that I can ensure fully dedicated work and a pledge to deliver more than I promise.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;You and the community&#039;&#039;&#039; ==&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will mostly be used in the deployment side of Sugar. I strongly believe that my project will add to the sweetness of Sugar to make it come closer to the people who deploy and the even sweeter kids who use it. Backup and restore is a very important feature for various other members of the community who might be testing, developing and integrating Sugar on multiple platforms.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What will you do if you get stuck on your project and your mentor isn&#039;t around?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If I am stuck anywhere, then I will put my best efforts to solve the problem myself by trying Google search as always and referring other resources. But if in case help is required and my mentor is not available then I would refer to the community over developer mailing list, IRC, other GSoC participant if relevant or some specific member(s) whom I might know during the course of the project (eg: Quozl`and SAMdroid who have helped me before). If the problem is not Sugar specific, then I may even take help from my tech circle (Kharagpur Open Source Society) consisting of very smart people or professors if they are available during the vacation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*I would propose a repetitive scheduled meeting every two days at a particular time or as per the convenience of mentors/community members  where we would discuss the progress made and the further course of action. I can understand its effectiveness as we use this technique at our college while doing projects under professors so that the focus and progression is maintained. &lt;br /&gt;
*I will frequently update my progress and milestones achieved on my [http://manashpratim.in/ blog].&lt;br /&gt;
*Share it along with doubts or queries on a particular thread for this project on the developer mailing list to welcome inputs from all the community members.&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
* We want to make sure that you can set up a [http://developer.sugarlabs.org development environment] before the summer starts. Please do &#039;&#039;one&#039;&#039; of the following:&lt;br /&gt;
** 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 &amp;quot;logout&amp;quot;. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Buddy-menu-manash.png|1000px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. &#039;&#039;&#039;&lt;br /&gt;
:: It&#039;s normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.&lt;br /&gt;
&lt;br /&gt;
Yes I have sent two pull request. [https://github.com/sugarlabs/sugar/pull/665 Proxy setting feature] and [https://github.com/sugarlabs/sugar/pull/668 Bug fix]&lt;br /&gt;
&lt;br /&gt;
* If you plan to work on Sugar-Web projects we want to be sure that you&#039;re familiar with web technologies, so:&lt;br /&gt;
** Clone the [https://github.com/llaske/Sugarizer Sugarizer repository]&lt;br /&gt;
** Using instructions [https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity&lt;br /&gt;
** Send us a screenshot of your new activity executed in Sugarizer&lt;br /&gt;
&#039;&#039;&#039; Describe a great learning experience you had as a child.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I can relate to the goals of Sugar, now when I have grown up, since I have witnessed how an access to computer aided learning and quick access to resources (internet) can accelerate the process of learning as in my case. The ability to create has been the major driving force of my learning. Three events in particular were the most significant that I would like to share with:&lt;br /&gt;
*An investment into the future for a PC made by my parents at my 3rd grade gave me my best friend and teacher at my childhood. I believe, it is more about the enhancement of thinking process than in the ability to score higher marks in exams. Even though some people might be skeptical about the results of OLPC and Sugar provided the investment, but I believe in its long term effect as I have seen it.&lt;br /&gt;
*Then I was introduced to programming and the Internet by my school at 6th grade. The introduction made all the neurons light up in excitement for the ability to create my own real world applications. &lt;br /&gt;
*I was shown the path and I started sprinting on it myself. From the period of 7th grade to 10th grade, I learnt C++, C#, PHP, HTML, CSS, electronics and embedded programming to create many software and hardware applications and participated in many competitions upto the national level.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Yes, I would like to tell why I chose to contribute to Sugar. While looking at various organizations at the 2015 GSoC page, I shortlisted a few organizations based on my strongest skill set. I looked upon for the problem statement of each of the organizations that they were trying to achieve and there I came to know about Sugar. I felt attached to the community due to the following points:&lt;br /&gt;
*I could relate the computer aided Sugar pedagogy with my own experience.&lt;br /&gt;
*I am a volunteer at “National Service Scheme” in my college and along with my unit, we provide community service at a nearby village. Hence I can visualize if not perfectly the effect of OLPC and Sugar would have in the children deep down there. We used to take our laptops to show them animated content, fascinate them with electronics and RC planes. They used to gather around us and we witnessed maximum attendance on the Saturdays we went there.&lt;br /&gt;
*I found the community members at IRC and developer mailing list very welcome and I feel excited about my first experience at an International selfless open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please include the category tag at the bottom of your page the Category tag for 2016 GSoC applications.&lt;br /&gt;
&lt;br /&gt;
[[Category:2016 GSoC applications]]&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=97590</id>
		<title>Summer of Code/2016/Sugar Journal backup and restore</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=97590"/>
		<updated>2016-03-25T05:01:20Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About You ==&lt;br /&gt;
&#039;&#039;&#039;What is your name?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
My name is &amp;lt;b&amp;gt;Manash Pratim Das&amp;lt;/b&amp;gt;. I am a 2nd Year, Bachelor of Technology (B.Tech), undergraduate student at the [http://www.iitkgp.ac.in/ Indian Institute of Technology, Kharagpur, India]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your email address? &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My email address is &amp;lt;b&amp;gt;mpdmanash@gmail.com&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your Sugar Labs wiki username?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your IRC nickname on irc.freenode.net?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you&#039;d prefer.)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My native language is Hindi, but I am fluent in English as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Where are you located, and what hours (UTC) do you tend to work? (We also try to match mentors by general time zone if possible.)&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
I live at in Kharagpur, West Bengal, India. &amp;lt;br /&amp;gt;&lt;br /&gt;
My timezone is &amp;lt;b&amp;gt;UTC + 5:30 (Indian Standard Time)&amp;lt;/b&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
I generally tend to work in the evening (from 5 pm) and late night (to 4 am). But my time table is very flexible and can be changed as per the convenience of my mentor/community members. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Yes, I have contributed to two completely open source research projects at my college:&lt;br /&gt;
* [https://github.com/quadrotor-IITKgp “Aerial Robotics Kharagpur”]: I am a software team member of this organization. Few specific (other than open code contribution) [https://github.com/quadrotor-IITKgp/grid_localization 1][https://github.com/ManashRaja/quad_simulator 2]&lt;br /&gt;
* [https://github.com/AGV-IIT-KGP “Autonomous Ground Vehicle”]: Specific work [https://github.com/AGV-IIT-KGP/computer_vision/pull/28 1],[https://github.com/AGV-IIT-KGP/eklavya-2015/pull/75 2]&lt;br /&gt;
* My [https://github.com/ManashRaja/ GitHub profile] in general.&lt;br /&gt;
I also solved a bug for an Arduino library, but it was solved before I could send the PR :) .&lt;br /&gt;
&lt;br /&gt;
== About your project ==&lt;br /&gt;
&#039;&#039;&#039;What is the name of your project?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sugar Journal backup and restore&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will add advanced backup-restore, cloud sync and easy sharing features for the Sugar journal. The following are the features in detail:&lt;br /&gt;
#&#039;&#039;&#039;Add selective backup-restore:&#039;&#039;&#039; User can select part of the journal to be backed up or restored directly from within the backup page. Metadata for each Journal entry will store the list of dependencies and library objects, which will be downloaded again as needed (and, as available). &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; Backups will be specific and save unnecessary wastage of storage space. Replace the ineffective way to store Journal images with the risk of running out of local space. Teachers will be able to distribute tutorials on activities without hampering the existing Journal a student.&lt;br /&gt;
#&#039;&#039;&#039;Add system to backup and restore from school servers (XSCE):&#039;&#039;&#039; Now backup can only be stored and restored from devices, but this feature will add school servers to the options. &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
#*The existing (ds-backup) option on OLPC OS is not an effective method because it cannot be easily restored. (from what I understand)&lt;br /&gt;
#*As school servers are the best common node for all the local hardware running Sugar, hence storing backups at such common location will increase its accessibility by many fold.&lt;br /&gt;
#*The backups can be used by multiple types of hardware/platform running Sugar (OLPC pcs, Android, Sugarizer) seamlessly using school-server’s multi-platform support to the advantage.&lt;br /&gt;
#*Teachers can distribute journal entries on mass scale.&lt;br /&gt;
#&#039;&#039;&#039;Add cloud service:&#039;&#039;&#039; In a few clicks, it will let schools to connect each student’s pc to a local cloud server or a third party cloud server as per the availability to sync the journal data at a central location.&amp;lt;br /&amp;gt;&amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; It will be easy for schools to let hardware be shared among the student batches as students can login to their account from any hardware and can still access his/her own journal. This feature will strongly support:&lt;br /&gt;
#*&amp;quot;One to many concept&amp;quot; that can be implemented on Sugar. (concept discussed on GSoC 2016 idea page [https://wiki.sugarlabs.org/go/Summer_of_Code/2016 link])&lt;br /&gt;
#*The OLPC’s new “Infinity” modular computer. A student’s personal setup (Journal) becomes another module.&lt;br /&gt;
#&#039;&#039;&#039;Easy sharing of Journal items based on above server frameworks:&#039;&#039;&#039; When server frameworks like XSCE and cloud are available, their utility can be increased by adding features where children can share any item with each other in just few easy clicks. The GUI will be indifferent to the framework being used in the background even though it will provide options, if both are present at the same time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Technologies:&amp;lt;/u&amp;gt; I will use python and its libraries for the main backend along with GTK+ (GTK3) for the GUI and graphics generator like Inkscape for the icons. For the different server integration, I am planning to use use server specific cli, apis, libraries or scripts like “owncloudcmd” for ownCloud,  “RClone” that supports many cloud services like Google Drive, Amazon S3, Openstack Swift / Rackspace cloud files / Memset Memstore, Dropbox, Google Cloud Storage, Amazon Cloud Drive, Microsoft One Drive, Hubic, Backblaze B2, Yandex Disk, The local filesystem and tools like rsync for XSCE school-servers. I will also use polkit for permissions and symbolic links. If I finally use rclone for cloud sync, then I might learn and use go programming language (its written on) or use pexpect to run its cli.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is the timeline for development of your project? The Summer of Code work period is from mid-May to mid-August; 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&#039;s good to have a plan at the beginning so you have an idea of where you&#039;re headed.) Note that you should probably plan to have something &amp;quot;working and 90% done&amp;quot; by the midterm evaluation (end of June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align: center;&amp;quot; | Week&lt;br /&gt;
! Scheduled Work &lt;br /&gt;
! Time I can devote&lt;br /&gt;
|-&lt;br /&gt;
| 22 April-22 May&lt;br /&gt;
(Community Bonding period)&lt;br /&gt;
| &lt;br /&gt;
*Introduce and become part of the community.  &lt;br /&gt;
*Look for various different ways to approach the project.&lt;br /&gt;
*Discuss with mentor(s), OLPC members, XSCE members and if possible the people who work down there to tailor the project to the perfect needs and flow.&lt;br /&gt;
*Draw a detailed roadmap on how I will implement each feature.&lt;br /&gt;
*Learn any required skill I may be missing.&lt;br /&gt;
*Design GUI according to the flow as discussed above and create icons as required required.&lt;br /&gt;
*Install XSCE and ownCloud servers at my own place. &lt;br /&gt;
*Create accounts in the third party cloud providers.&lt;br /&gt;
|22 April-29 April: 9 hours per week (end semester examinations.)&lt;br /&gt;
30th April-22nd May: 65 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 23 May-29 May&lt;br /&gt;
| &lt;br /&gt;
*Continue the development of the selective backup-restore feature on which I already have done some work.[https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 link] I plan to finish at least 90% of this feature on this week.&lt;br /&gt;
*Try to match my style of coding with the existing code by reviews and proper study of the code.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 30 May-5 June&lt;br /&gt;
| &lt;br /&gt;
*Complete the basic functionality of the specific and multiple backup-restore&lt;br /&gt;
*Start implementing and coding for making the XSCE server as backup destination and restore source.&lt;br /&gt;
*Build up the coding pace&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 6 June-12 June&lt;br /&gt;
| &lt;br /&gt;
*Finish off the XSCE server feature.&lt;br /&gt;
*Relatively free week to act as buffer if required or start the next week&#039;s work.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 13 June-20 June&lt;br /&gt;
| &lt;br /&gt;
*Finalize the cloud integration for ownCloud and majority of the third party providers like (Google Drive, Dropbox, Amazon S3), whose prototype has been made by me already [https://github.com/ManashRaja/cloud-sync-demo link].  &lt;br /&gt;
*Testing and code documentation&lt;br /&gt;
*90% as per functionality of the project will be complete&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 21 June-28 June&lt;br /&gt;
| &lt;br /&gt;
*Mid-Term Evaluation&lt;br /&gt;
*Keep on brainstorming for GUIs and integration of my project which makes it very effective and user friendly.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 28 June-3 July&lt;br /&gt;
| &lt;br /&gt;
*Work on the feedback received after the evaluation.&lt;br /&gt;
*Complete cloud integration for third party service providers for it any of them were left.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 4 July-10 July&lt;br /&gt;
| &lt;br /&gt;
*Understand all types of collaborations that happen in the school among the children(students) and teachers, to know how my sharing feature fits in.&lt;br /&gt;
*Start coding for the sharing feature.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 11 July-16 July&lt;br /&gt;
| &lt;br /&gt;
*Finish the sharing feature.&lt;br /&gt;
*Apart from the regular updates to the community about the project, I will submit my work upto now for review and suggestions by the community.&lt;br /&gt;
*Work on the suggestions.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 18 July-24 July&lt;br /&gt;
| Buffer week to complete if work is pending or add GUI to use the cloud framework developed to support “One hardware to many user” feature of Sugar.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 25 July-31 July&lt;br /&gt;
| &lt;br /&gt;
*Finalize the code&lt;br /&gt;
*Testing and improvements&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 1st Aug-7 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Proper code documentation, cleanup and flake8 verification.&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 8 Aug-15 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Feature documentation on https://wiki.sugarlabs.org/go/Features&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 16 Aug-24 Aug&lt;br /&gt;
| Submit code and evaluations.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My strength lies in my dynamic learning and self motivated hard work. I am a 2nd year undergraduate of the Indian Institute of Technology, Kharagpur where I am actively involved with the tech community and contribute to 2 research groups ([http://quadrotor-iitkgp.github.io/ 1][http://www.agv.iitkgp.ac.in/ 2]), 2 tech societies([https://www.robotix.in/team/ 1]), projects under professors and have participated in many competitions and hackathons apart from keeping my academics up. In these two years of my stay, I have learnt a great deal about time management. &amp;lt;b&amp;gt;All the professional level work we do has made me to realize realistic timelines for myself and my team.&amp;lt;/b&amp;gt; Though I failed initially, but I am getting better. My work has been mostly in software RnD and autonomous robotics and hence &amp;lt;b&amp;gt;I have gained lots of experience about the process and its time consumption involved in converting an idea to finished product.&amp;lt;/b&amp;gt; So, I have learned to plan my work and execute it efficiently.&lt;br /&gt;
Another important fact is that &amp;lt;b&amp;gt;my college summer vacations lie in the period of 29th April to 24th July, during which I will be able to devote 100% of my work time as GSoC being my top priority&amp;lt;/b&amp;gt; (8-9 hours a day and around 60 hours a week for 12 weeks) towards my contribution. Even though my college semester will start from 25th July, I will still be able to devote 40 hours a week due to a light semester. I also have a head start on the project I would be working on as &amp;lt;b&amp;gt;I have been involved with the Sugar code base since February 1st, added a [https://github.com/sugarlabs/sugar/pull/665 new feature], fixed a [https://github.com/sugarlabs/sugar/pull/668 bug] and have made the prototype of two features ([https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 1][https://github.com/ManashRaja/cloud-sync-demo 2]) I will develop in this project&amp;lt;/b&amp;gt; apart from discussion about the project on IRC. Hence I am confident that I can ensure fully dedicated work and a pledge to deliver more than I promise.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;You and the community&#039;&#039;&#039; ==&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will mostly be used in the deployment side of Sugar. I strongly believe that my project will add to the sweetness of Sugar to make it come closer to the people who deploy and the even sweeter kids who use it. Backup and restore is a very important feature for various other members of the community who might be testing, developing and integrating Sugar on multiple platforms.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What will you do if you get stuck on your project and your mentor isn&#039;t around?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If I am stuck anywhere, then I will put my best efforts to solve the problem myself by trying Google search as always and referring other resources. But if in case help is required and my mentor is not available then I would refer to the community over developer mailing list, IRC, other GSoC participant if relevant or some specific member(s) whom I might know during the course of the project (eg: Quozl`and SAMdroid who have helped me before). If the problem is not Sugar specific, then I may even take help from my tech circle (Kharagpur Open Source Society) consisting of very smart people or professors if they are available during the vacation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*I would propose a repetitive scheduled meeting every two days at a particular time or as per the convenience of mentors/community members  where we would discuss the progress made and the further course of action. I can understand its effectiveness as we use this technique at our college while doing projects under professors so that the focus and progression is maintained. &lt;br /&gt;
*I will frequently update my progress and milestones achieved on my [http://manashpratim.in/ blog].&lt;br /&gt;
*Share it along with doubts or queries on a particular thread for this project on the developer mailing list to welcome inputs from all the community members.&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
* We want to make sure that you can set up a [http://developer.sugarlabs.org development environment] before the summer starts. Please do &#039;&#039;one&#039;&#039; of the following:&lt;br /&gt;
** 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 &amp;quot;logout&amp;quot;. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Buddy-menu-manash.png|1000px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. &#039;&#039;&#039;&lt;br /&gt;
:: It&#039;s normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.&lt;br /&gt;
&lt;br /&gt;
Yes I have sent two pull request. [https://github.com/sugarlabs/sugar/pull/665 Proxy setting feature] and [https://github.com/sugarlabs/sugar/pull/668 Bug fix]&lt;br /&gt;
&lt;br /&gt;
* If you plan to work on Sugar-Web projects we want to be sure that you&#039;re familiar with web technologies, so:&lt;br /&gt;
** Clone the [https://github.com/llaske/Sugarizer Sugarizer repository]&lt;br /&gt;
** Using instructions [https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity&lt;br /&gt;
** Send us a screenshot of your new activity executed in Sugarizer&lt;br /&gt;
&#039;&#039;&#039; Describe a great learning experience you had as a child.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I can relate to the goals of Sugar, now when I have grown up, since I have witnessed how an access to computer aided learning and quick access to resources (internet) can accelerate the process of learning as in my case. The ability to create has been the major driving force of my learning. Three events in particular were the most significant that I would like to share with:&lt;br /&gt;
*An investment into the future for a PC made by my parents at my 3rd grade gave me my best friend and teacher at my childhood. I believe, it is more about the enhancement of thinking process than in the ability to score higher marks in exams. Even though some people might be skeptical about the results of OLPC and Sugar provided the investment, but I believe in its long term effect as I have seen it.&lt;br /&gt;
*Then I was introduced to programming and the Internet by my school at 6th grade. The introduction made all the neurons light up in excitement for the ability to create my own real world applications. &lt;br /&gt;
*I was shown the path and I started sprinting on it myself. From the period of 7th grade to 10th grade, I learnt C++, C#, PHP, HTML, CSS, electronics and embedded programming to create many software and hardware applications and participated in many competitions upto the national level.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Yes, I would like to tell why I chose to contribute to Sugar. While looking at various organizations at the 2015 GSoC page, I shortlisted a few organizations based on my strongest skill set. I looked upon for the problem statement of each of the organizations that they were trying to achieve and there I came to know about Sugar. I felt attached to the community due to the following points:&lt;br /&gt;
*I could relate the computer aided Sugar pedagogy with my own experience.&lt;br /&gt;
*I am a volunteer at “National Service Scheme” in my college and along with my unit, we provide community service at a nearby village. Hence I can visualize if not perfectly the effect of OLPC and Sugar would have in the children deep down there. We used to take our laptops to show them animated content, fascinate them with electronics and RC planes. They used to gather around us and we witnessed maximum attendance on the Saturdays we went there.&lt;br /&gt;
*I found the community members at IRC and developer mailing list very welcome and I feel excited about my first experience at an International selfless open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please include the category tag at the bottom of your page the Category tag for 2016 GSoC applications.&lt;br /&gt;
&lt;br /&gt;
[[Category:2016 GSoC applications]]&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=97589</id>
		<title>Summer of Code/2016/Sugar Journal backup and restore</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=97589"/>
		<updated>2016-03-25T04:57:31Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About You ==&lt;br /&gt;
&#039;&#039;&#039;What is your name?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
My name is &amp;lt;b&amp;gt;Manash Pratim Das&amp;lt;/b&amp;gt;. I am a 2nd Year, Bachelor of Technology (B.Tech), undergraduate student at the [http://www.iitkgp.ac.in/ Indian Institute of Technology, Kharagpur, India]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your email address? &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My email address is &amp;lt;b&amp;gt;mpdmanash@gmail.com&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your Sugar Labs wiki username?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your IRC nickname on irc.freenode.net?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you&#039;d prefer.)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My native language is Hindi, but I am fluent in English as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Where are you located, and what hours (UTC) do you tend to work? (We also try to match mentors by general time zone if possible.)&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
I live at in Kharagpur, West Bengal, India. &amp;lt;br /&amp;gt;&lt;br /&gt;
My timezone is &amp;lt;b&amp;gt;UTC + 5:30 (Indian Standard Time)&amp;lt;/b&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
I generally tend to work in the evening (from 5 pm) and late night (to 4 am). But my time table is very flexible and can be changed as per the convenience of my mentor/community members. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Yes, I have contributed to two completely open source research projects at my college:&lt;br /&gt;
* [https://github.com/quadrotor-IITKgp “Aerial Robotics Kharagpur”]: I am a software team member of this organization. Few specific (other than open code contribution) [https://github.com/quadrotor-IITKgp/grid_localization 1][https://github.com/ManashRaja/quad_simulator 2]&lt;br /&gt;
* [https://github.com/AGV-IIT-KGP “Autonomous Ground Vehicle”]: Specific work [https://github.com/AGV-IIT-KGP/computer_vision/pull/28 1],[https://github.com/AGV-IIT-KGP/eklavya-2015/pull/75 2]&lt;br /&gt;
* My [https://github.com/ManashRaja/ GitHub profile] in general.&lt;br /&gt;
I also solved a bug for an Arduino library, but it was solved before I could send the PR :) .&lt;br /&gt;
&lt;br /&gt;
== About your project ==&lt;br /&gt;
&#039;&#039;&#039;What is the name of your project?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sugar Journal backup and restore&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will add advanced backup-restore, cloud sync and easy sharing features for the Sugar journal. The following are the features in detail:&lt;br /&gt;
#&#039;&#039;&#039;Add selective backup-restore:&#039;&#039;&#039; User can select part of the journal to be backed up or restored directly from within the backup page. Metadata for each Journal entry will store the list of dependencies and library objects, which will be downloaded again as needed (and, as available). &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; Backups will be specific and save unnecessary wastage of storage space. Replace the ineffective way to store Journal images with the risk of running out of local space. Teachers will be able to distribute tutorials on activities without hampering the existing Journal a student.&lt;br /&gt;
#&#039;&#039;&#039;Add system to backup and restore from school servers (XSCE):&#039;&#039;&#039; Now backup can only be stored and restored from devices, but this feature will add school servers to the options. &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
#*The existing (ds-backup) option on OLPC OS is not an effective method because it cannot be easily restored. (from what I understand)&lt;br /&gt;
#*As school servers are the best common node for all the local hardware running Sugar, hence storing backups at such common location will increase its accessibility by many fold.&lt;br /&gt;
#*The backups can be used by multiple types of hardware/platform running Sugar (OLPC pcs, Android, Sugarizer) seamlessly using school-server’s multi-platform support to the advantage.&lt;br /&gt;
#*Teachers can distribute journal entries on mass scale.&lt;br /&gt;
#&#039;&#039;&#039;Add cloud service:&#039;&#039;&#039; In a few clicks, it will let schools to connect each student’s pc to a local cloud server or a third party cloud server as per the availability to sync the journal data at a central location.&amp;lt;br /&amp;gt;&amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; It will be easy for schools to let hardware be shared among the student batches as students can login to their account from any hardware and can still access his/her own journal. This feature will strongly support:&lt;br /&gt;
#*&amp;quot;One to many concept&amp;quot; that can be implemented on Sugar. (concept discussed on GSoC 2016 idea page [https://wiki.sugarlabs.org/go/Summer_of_Code/2016 link])&lt;br /&gt;
#*The OLPC’s new “Infinity” modular computer. A student’s personal setup (Journal) becomes another module.&lt;br /&gt;
#&#039;&#039;&#039;Easy sharing of Journal items based on above server frameworks:&#039;&#039;&#039; When server frameworks like XSCE and cloud are available, their utility can be increased by adding features where children can share any item with each other in just few easy clicks. The GUI will be indifferent to the framework being used in the background even though it will provide options, if both are present at the same time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Technologies:&amp;lt;/u&amp;gt; I will use python and its libraries for the main backend along with GTK+ (GTK3) for the GUI and graphics generator like Inkscape for the icons. For the different server integration, I am planning to use use server specific cli, apis, libraries or scripts like “owncloudcmd” for ownCloud,  “RClone” that supports many cloud services like Google Drive, Amazon S3, Openstack Swift / Rackspace cloud files / Memset Memstore, Dropbox, Google Cloud Storage, Amazon Cloud Drive, Microsoft One Drive, Hubic, Backblaze B2, Yandex Disk, The local filesystem and tools like rsync for XSCE school-servers. I will also use polkit for permissions and symbolic links. If I finally use rclone for cloud sync, then I might learn and use go programming language (its written on) or use pexpect to run its cli.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is the timeline for development of your project? The Summer of Code work period is from mid-May to mid-August; 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&#039;s good to have a plan at the beginning so you have an idea of where you&#039;re headed.) Note that you should probably plan to have something &amp;quot;working and 90% done&amp;quot; by the midterm evaluation (end of June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align: center;&amp;quot; | Week&lt;br /&gt;
! Scheduled Work &lt;br /&gt;
! Time I can devote&lt;br /&gt;
|-&lt;br /&gt;
| 22 April-22 May&lt;br /&gt;
(Community Bonding period)&lt;br /&gt;
| &lt;br /&gt;
*Introduce and become part of the community.  &lt;br /&gt;
*Look for various different ways to approach the project.&lt;br /&gt;
*Discuss with mentor(s), OLPC members, XSCE members and if possible the people who work down there to tailor the project to the perfect needs and flow.&lt;br /&gt;
*Draw a detailed roadmap on how I will implement each feature.&lt;br /&gt;
*Learn any required skill I may be missing.&lt;br /&gt;
*Design GUI according to the flow as discussed above and create icons as required required.&lt;br /&gt;
*Install XSCE and ownCloud servers at my own place. &lt;br /&gt;
*Create accounts in the third party cloud providers.&lt;br /&gt;
|22 April-29 April: 9 hours per week (end semester examinations.)&lt;br /&gt;
30th April-22nd May: 65 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 23 May-29 May&lt;br /&gt;
| &lt;br /&gt;
*Continue the development of the selective backup-restore feature on which I already have done some work.[https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 link] I plan to finish at least 90% of this feature on this week.&lt;br /&gt;
*Try to match my style of coding with the existing code by reviews and proper study of the code.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 30 May-5 June&lt;br /&gt;
| &lt;br /&gt;
*Complete the basic functionality of the specific and multiple backup-restore&lt;br /&gt;
*Start implementing and coding for making the XSCE server as backup destination and restore source.&lt;br /&gt;
*Build up the coding pace&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 6 June-12 June&lt;br /&gt;
| &lt;br /&gt;
*Finish off the XSCE server feature.&lt;br /&gt;
*Relatively free week to act as buffer if required or start the next week&#039;s work.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 13 June-20 June&lt;br /&gt;
| &lt;br /&gt;
*Finalize the cloud integration for ownCloud and majority of the third party providers like (Google Drive, Dropbox, Amazon S3), whose prototype has been made by me already [https://github.com/ManashRaja/cloud-sync-demo link].  &lt;br /&gt;
*Testing and code documentation&lt;br /&gt;
*90% as per functionality of the project will be complete&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 21 June-28 June&lt;br /&gt;
| &lt;br /&gt;
*Mid-Term Evaluation&lt;br /&gt;
*Keep on brainstorming for GUIs and integration of my project which makes it very effective and user friendly.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 28 June-3 July&lt;br /&gt;
| &lt;br /&gt;
*Work on the feedback received after the evaluation.&lt;br /&gt;
*Complete cloud integration for third party service providers for it any of them were left.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 4 July-10 July&lt;br /&gt;
| &lt;br /&gt;
*Understand all types of collaborations that happen in the school among the children(students) and teachers, to know how my sharing feature fits in.&lt;br /&gt;
*Start coding for the sharing feature.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 11 July-16 July&lt;br /&gt;
| &lt;br /&gt;
*Finish the sharing feature.&lt;br /&gt;
*Apart from the regular updates to the community about the project, I will submit my work upto now for review and suggestions by the community.&lt;br /&gt;
*Work on the suggestions.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 18 July-24 July&lt;br /&gt;
| Buffer week to complete if work is pending or add GUI to use the cloud framework developed to support “One hardware to many user” feature of Sugar.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 25 July-31 July&lt;br /&gt;
| &lt;br /&gt;
*Finalize the code&lt;br /&gt;
*Testing and improvements&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 1st Aug-7 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Proper code documentation, cleanup and flake8 verification.&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 8 Aug-15 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Feature documentation on https://wiki.sugarlabs.org/go/Features&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 16 Aug-24 Aug&lt;br /&gt;
| Submit code and evaluations.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My strength lies in my dynamic learning and self motivated hard work. I am a 2nd year undergraduate of the Indian Institute of Technology, Kharagpur where I am actively involved with the tech community and contribute to 2 research groups ([http://quadrotor-iitkgp.github.io/ 1][http://www.agv.iitkgp.ac.in/ 2]), 2 tech societies([https://www.robotix.in/team/ 1]), projects under professors and have participated in many competitions and hackathons apart from keeping my academics up. In these two years of my stay, I have learnt a great deal about time management. &amp;lt;b&amp;gt;All the professional level work we do has made me to realize realistic timelines for myself and my team.&amp;lt;/b&amp;gt; Though I failed initially, but I am getting better. My work has been mostly in software RnD and autonomous robotics and hence &amp;lt;b&amp;gt;I have gained lots of experience about the process and its time consumption involved in converting an idea to finished product.&amp;lt;/b&amp;gt; So, I have learned to plan my work and execute it efficiently.&lt;br /&gt;
Another important fact is that &amp;lt;b&amp;gt;my college summer vacations lie in the period of 29th April to 24th July, during which I will be able to devote 100% of my work time as GSoc being my top priority&amp;lt;/b&amp;gt; (8-9 hours a day and around 60 hours a week for 12 weeks) towards my contribution. Even though my college semester will start from 25th July, I will still be able to devote 40 hours a week due to a light semester. I also have a head start on the project I would be working on as &amp;lt;b&amp;gt;I have been involved with the Sugar code base since February 1st, added a new feature, fixed a bug and have made the prototype of two features ([https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 1][https://github.com/ManashRaja/cloud-sync-demo 2]) I will develop in this project&amp;lt;/b&amp;gt; apart from discussion about the project on IRC. Hence I am confident that I can ensure fully dedicated work and a pledge to deliver more than I promise.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;You and the community&#039;&#039;&#039; ==&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will mostly be used in the deployment side of Sugar. I strongly believe that my project will add to the sweetness of Sugar to make it come closer to the people who deploy and the even sweeter kids who use it. Backup and restore is a very important feature for various other members of the community who might be testing, developing and integrating Sugar on multiple platforms.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What will you do if you get stuck on your project and your mentor isn&#039;t around?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If I am stuck anywhere, then I will put my best efforts to solve the problem myself by trying Google search as always and referring other resources. But if in case help is required and my mentor is not available then I would refer to the community over developer mailing list, IRC, other GSoC participant if relevant or some specific member(s) whom I might know during the course of the project (eg: Quozl`and SAMdroid who have helped me before). If the problem is not Sugar specific, then I may even take help from my tech circle (Kharagpur Open Source Society) consisting of very smart people or professors if they are available during the vacation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*I would propose a repetitive scheduled meeting every two days at a particular time or as per the convenience of mentors/community members  where we would discuss the progress made and the further course of action. I can understand its effectiveness as we use this technique at our college while doing projects under professors so that the focus and progression is maintained. &lt;br /&gt;
*I will frequently update my progress and milestones achieved on my [http://manashpratim.in/ blog].&lt;br /&gt;
*Share it along with doubts or queries on a particular thread for this project on the developer mailing list to welcome inputs from all the community members.&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
* We want to make sure that you can set up a [http://developer.sugarlabs.org development environment] before the summer starts. Please do &#039;&#039;one&#039;&#039; of the following:&lt;br /&gt;
** 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 &amp;quot;logout&amp;quot;. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Buddy-menu-manash.png|1000px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. &#039;&#039;&#039;&lt;br /&gt;
:: It&#039;s normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.&lt;br /&gt;
&lt;br /&gt;
Yes I have sent two pull request. [https://github.com/sugarlabs/sugar/pull/665 Proxy setting feature] and [https://github.com/sugarlabs/sugar/pull/668 Bug fix]&lt;br /&gt;
&lt;br /&gt;
* If you plan to work on Sugar-Web projects we want to be sure that you&#039;re familiar with web technologies, so:&lt;br /&gt;
** Clone the [https://github.com/llaske/Sugarizer Sugarizer repository]&lt;br /&gt;
** Using instructions [https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity&lt;br /&gt;
** Send us a screenshot of your new activity executed in Sugarizer&lt;br /&gt;
&#039;&#039;&#039; Describe a great learning experience you had as a child.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I can relate to the goals of Sugar, now when I have grown up, since I have witnessed how an access to computer aided learning and quick access to resources (internet) can accelerate the process of learning as in my case. The ability to create has been the major driving force of my learning. Three events in particular were the most significant that I would like to share with:&lt;br /&gt;
*An investment into the future for a PC made by my parents at my 3rd grade gave me my best friend and teacher at my childhood. I believe, it is more about the enhancement of thinking process than in the ability to score higher marks in exams. Even though some people might be skeptical about the results of OLPC and Sugar provided the investment, but I believe in its long term effect as I have seen it.&lt;br /&gt;
*Then I was introduced to programming and the Internet by my school at 6th grade. The introduction made all the neurons light up in excitement for the ability to create my own real world applications. &lt;br /&gt;
*I was shown the path and I started sprinting on it myself. From the period of 7th grade to 10th grade, I learnt C++, C#, PHP, HTML, CSS, electronics and embedded programming to create many software and hardware applications and participated in many competitions upto the national level.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Yes, I would like to tell why I chose to contribute to Sugar. While looking at various organizations at the 2015 GSoC page, I shortlisted a few organizations based on my strongest skill set. I looked upon for the problem statement of each of the organizations that they were trying to achieve and there I came to know about Sugar. I felt attached to the community due to the following points:&lt;br /&gt;
*I could relate the computer aided Sugar pedagogy with my own experience.&lt;br /&gt;
*I am a volunteer at “National Service Scheme” in my college and along with my unit, we provide community service at a nearby village. Hence I can visualize if not perfectly the effect of OLPC and Sugar would have in the children deep down there. We used to take our laptops to show them animated content, fascinate them with electronics and RC planes. They used to gather around us and we witnessed maximum attendance on the Saturdays we went there.&lt;br /&gt;
*I found the community members at IRC and developer mailing list very welcome and I feel excited about my first experience at an International selfless open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please include the category tag at the bottom of your page the Category tag for 2016 GSoC applications.&lt;br /&gt;
&lt;br /&gt;
[[Category:2016 GSoC applications]]&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=97587</id>
		<title>Summer of Code/2016/Sugar Journal backup and restore</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=97587"/>
		<updated>2016-03-25T04:07:35Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About You ==&lt;br /&gt;
&#039;&#039;&#039;What is your name?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
My name is &amp;lt;b&amp;gt;Manash Pratim Das&amp;lt;/b&amp;gt;. I am a 2nd Year, Bachelor of Technology (B.Tech), undergraduate student at the [http://www.iitkgp.ac.in/ Indian Institute of Technology, Kharagpur, India]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your email address? &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My email address is &amp;lt;b&amp;gt;mpdmanash@gmail.com&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your Sugar Labs wiki username?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your IRC nickname on irc.freenode.net?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you&#039;d prefer.)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My native language is Hindi, but I am fluent in English as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Where are you located, and what hours (UTC) do you tend to work? (We also try to match mentors by general time zone if possible.)&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
I live at in Kharagpur, West Bengal, India. &amp;lt;br /&amp;gt;&lt;br /&gt;
My timezone is &amp;lt;b&amp;gt;UTC + 5:30 (Indian Standard Time)&amp;lt;/b&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
I generally tend to work in the evening (from 5 pm) and late night (to 4 am). But my time table is very flexible and can be changed as per the convenience of my mentor/community members. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Yes, I have contributed to two completely open source research projects at my college:&lt;br /&gt;
* [https://github.com/quadrotor-IITKgp “Aerial Robotics Kharagpur”]: I am a software team member of this organization. Few specific (other than open code contribution) [https://github.com/quadrotor-IITKgp/grid_localization 1][https://github.com/ManashRaja/quad_simulator 2]&lt;br /&gt;
* [https://github.com/AGV-IIT-KGP “Autonomous Ground Vehicle”]: Specific work [https://github.com/AGV-IIT-KGP/computer_vision/pull/28 1],[https://github.com/AGV-IIT-KGP/eklavya-2015/pull/75 2]&lt;br /&gt;
* My [https://github.com/ManashRaja/ GitHub profile] in general.&lt;br /&gt;
I also solved a bug for an Arduino library, but it was solved before I could send the PR :) .&lt;br /&gt;
&lt;br /&gt;
== About your project ==&lt;br /&gt;
&#039;&#039;&#039;What is the name of your project?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sugar Journal backup and Restore&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will add advanced backup-restore, cloud sync and easy sharing features for the Sugar journal. The following are the features in detail:&lt;br /&gt;
#&#039;&#039;&#039;Add selective backup-restore:&#039;&#039;&#039; User can select part of the journal to be backed up or restored directly from within the backup page. Metadata for each Journal entry will store the list of dependencies and library objects, which will be downloaded again as needed (and, as available). &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; Backups will be specific and save unnecessary wastage of storage space. Replace the ineffective way to store Journal images with the risk of running out of local space. Teachers will be able to distribute tutorials on activities without hampering the existing Journal a student.&lt;br /&gt;
#&#039;&#039;&#039;Add system to backup and restore from school servers (XSCE):&#039;&#039;&#039; Now backup can only be stored and restored from devices, but this feature will add school servers to the options. &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
#*The existing (ds-backup) option on OLPC OS is not an effective method because it cannot be easily restored. (from what I understand)&lt;br /&gt;
#*As school servers are the best common node for all the local hardware running Sugar, hence storing backups at such common location will increase its accessibility by many fold.&lt;br /&gt;
#*The backups can be used by multiple types of hardware/platform running Sugar (OLPC pcs, Android, Sugarizer) seamlessly using school-server’s multi-platform support to the advantage.&lt;br /&gt;
#*Teachers can distribute journal entries on mass scale.&lt;br /&gt;
#&#039;&#039;&#039;Add cloud service:&#039;&#039;&#039; In a few clicks, it will let schools to connect each student’s pc to a local cloud server or a third party cloud server as per the availability to sync the journal data at a central location.&amp;lt;br /&amp;gt;&amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; It will be easy for schools to let hardware be shared among the student batches as students can login to their account from any hardware and can still access his/her own journal. This feature will strongly support:&lt;br /&gt;
#*&amp;quot;One to many concept&amp;quot; that can be implemented on Sugar. (concept discussed on GSoC 2016 idea page [https://wiki.sugarlabs.org/go/Summer_of_Code/2016 link])&lt;br /&gt;
#*The OLPC’s new “Infinity” modular computer. A student’s personal setup (Journal) becomes another module.&lt;br /&gt;
#&#039;&#039;&#039;Easy sharing of Journal items based on above server frameworks:&#039;&#039;&#039; When server frameworks like XSCE and cloud are available, their utility can be increased by adding features where children can share any item with each other in just few easy clicks. The GUI will be indifferent to the framework being used in the background even though it will provide options, if both are present at the same time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Technologies:&amp;lt;/u&amp;gt; I will use python and its libraries for the main backend along with GTK+ (GTK3) for the GUI and graphics generator like Inkscape for the icons. For the different server integration, I am planning to use use server specific cli, apis, libraries or scripts like “owncloudcmd” for ownCloud,  “RClone” that supports many cloud services like Google Drive, Amazon S3, Openstack Swift / Rackspace cloud files / Memset Memstore, Dropbox, Google Cloud Storage, Amazon Cloud Drive, Microsoft One Drive, Hubic, Backblaze B2, Yandex Disk, The local filesystem and tools like rsync for XSCE school-servers. I will also use polkit for permissions and symbolic links. If I finally use rclone for cloud sync, then I might learn and use go programming language (its written on) or use pexpect to run its cli.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is the timeline for development of your project? The Summer of Code work period is from mid-May to mid-August; 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&#039;s good to have a plan at the beginning so you have an idea of where you&#039;re headed.) Note that you should probably plan to have something &amp;quot;working and 90% done&amp;quot; by the midterm evaluation (end of June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align: center;&amp;quot; | Week&lt;br /&gt;
! Scheduled Work &lt;br /&gt;
! Time I can devote&lt;br /&gt;
|-&lt;br /&gt;
| 22 April-22 May&lt;br /&gt;
(Community Bonding period)&lt;br /&gt;
| &lt;br /&gt;
*Introduce and become part of the community.  &lt;br /&gt;
*Look for various different ways to approach the project.&lt;br /&gt;
*Discuss with mentor(s), OLPC members, XSCE members and if possible the people who work down there to tailor the project to the perfect needs and flow.&lt;br /&gt;
*Draw a detailed roadmap on how I will implement each feature.&lt;br /&gt;
*Learn any required skill I may be missing.&lt;br /&gt;
*Design GUI according to the flow as discussed above and create icons as required required.&lt;br /&gt;
*Install XSCE and ownCloud servers at my own place. &lt;br /&gt;
*Create accounts in the third party cloud providers.&lt;br /&gt;
|22 April-29 April: 9 hours per week (end semester examinations.)&lt;br /&gt;
30th April-22nd May: 65 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 23 May-29 May&lt;br /&gt;
| &lt;br /&gt;
*Continue the development of the selective backup-restore feature on which I already have done some work.[https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 link] I plan to finish at least 90% of this feature on this week.&lt;br /&gt;
*Try to match my style of coding with the existing code by reviews and proper study of the code.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 30 May-5 June&lt;br /&gt;
| &lt;br /&gt;
*Complete the basic functionality of the specific and multiple backup-restore&lt;br /&gt;
*Start implementing and coding for making the XSCE server as backup destination and restore source.&lt;br /&gt;
*Build up the coding pace&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 6 June-12 June&lt;br /&gt;
| &lt;br /&gt;
*Finish off the XSCE server feature.&lt;br /&gt;
*Relatively free week to act as buffer if required or start the next week&#039;s work.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 13 June-20 June&lt;br /&gt;
| &lt;br /&gt;
*Finalize the cloud integration for ownCloud and majority of the third party providers like (Google Drive, Dropbox, Amazon S3), whose prototype has been made by me already [https://github.com/ManashRaja/cloud-sync-demo link].  &lt;br /&gt;
*Testing and code documentation&lt;br /&gt;
*90% as per functionality of the project will be complete&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 21 June-28 June&lt;br /&gt;
| &lt;br /&gt;
*Mid-Term Evaluation&lt;br /&gt;
*Keep on brainstorming for GUIs and integration of my project which makes it very effective and user friendly.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 28 June-3 July&lt;br /&gt;
| &lt;br /&gt;
*Work on the feedback received after the evaluation.&lt;br /&gt;
*Complete cloud integration for third party service providers for it any of them were left.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 4 July-10 July&lt;br /&gt;
| &lt;br /&gt;
*Understand all types of collaborations that happen in the school among the children(students) and teachers, to know how my sharing feature fits in.&lt;br /&gt;
*Start coding for the sharing feature.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 11 July-16 July&lt;br /&gt;
| &lt;br /&gt;
*Finish the sharing feature.&lt;br /&gt;
*Apart from the regular updates to the community about the project, I will submit my work upto now for review and suggestions by the community.&lt;br /&gt;
*Work on the suggestions.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 18 July-24 July&lt;br /&gt;
| Buffer week to complete if work is pending or add GUI to use the cloud framework developed to support “One hardware to many user” feature of Sugar.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 25 July-31 July&lt;br /&gt;
| &lt;br /&gt;
*Finalize the code&lt;br /&gt;
*Testing and improvements&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 1st Aug-7 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Proper code documentation, cleanup and flake8 verification.&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 8 Aug-15 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Feature documentation on https://wiki.sugarlabs.org/go/Features&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 16 Aug-24 Aug&lt;br /&gt;
| Submit code and evaluations.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My strength lies in my dynamic learning and self motivated hard work. I am a 2nd year undergraduate of the Indian Institute of Technology, Kharagpur where I am actively involved with the tech community and contribute to 2 research groups ([http://quadrotor-iitkgp.github.io/ 1][http://www.agv.iitkgp.ac.in/ 2]), 2 tech societies([https://www.robotix.in/team/ 1]), projects under professors and have participated in many competitions and hackathons apart from keeping my academics up. In these two years of my stay, I have learnt a great deal about time management. &amp;lt;b&amp;gt;All the professional level work we do has made me to realize realistic timelines for myself and my team.&amp;lt;/b&amp;gt; Though I failed initially, but I am getting better. My work has been mostly in software RnD and autonomous robotics and hence &amp;lt;b&amp;gt;I have gained lots of experience about the process and its time consumption involved in converting an idea to finished product.&amp;lt;/b&amp;gt; So, I have learned to plan my work and execute it efficiently.&lt;br /&gt;
Another important fact is that &amp;lt;b&amp;gt;my college summer vacations lie in the period of 29th April to 24th July, during which I will be able to devote 100% of my work time as GSoc being my top priority&amp;lt;/b&amp;gt; (8-9 hours a day and around 60 hours a week for 9 weeks) towards my contribution. Even though my college semester will start from 25th July, I will still be able to devote 40 hours a week due to a light semester. I also have a head start on the project I would be working on as &amp;lt;b&amp;gt;I have been involved with the Sugar code base since February 1st, added a new feature, fixed a bug and have made the prototype of two features ([https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 1][https://github.com/ManashRaja/cloud-sync-demo 2]) I will develop in this project&amp;lt;/b&amp;gt; apart from discussion about the project on IRC. Hence I am confident that I can ensure fully dedicated work and a pledge to deliver more than I promise.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;You and the community&#039;&#039;&#039; ==&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will mostly be used in the deployment side of Sugar. I strongly believe that my project will add to the sweetness of Sugar to make it come closer to the people who deploy and the even sweeter kids who use it. Backup and restore is a very important feature for various other members of the community who might be testing, developing and integrating Sugar on multiple platforms.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What will you do if you get stuck on your project and your mentor isn&#039;t around?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If I am stuck anywhere, then I will put my best efforts to solve the problem myself by trying Google search as always and referring other resources. But if in case help is required and my mentor is not available then I would refer to the community over developer mailing list, IRC, other GSoC participant if relevant or some specific member(s) whom I might know during the course of the project (eg: Quozl`and SAMdroid who have helped me before). If the problem is not Sugar specific, then I may even take help from my tech circle (Kharagpur Open Source Society) consisting of very smart people or professors if they are available during the vacation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*I would propose a repetitive scheduled meeting every two days at a particular time or as per the convenience of mentors/community members  where we would discuss the progress made and the further course of action. I can understand its effectiveness as we use this technique at our college while doing projects under professors so that the focus and progression is maintained. &lt;br /&gt;
*I will frequently update my progress and milestones achieved on my [http://manashpratim.in/ blog].&lt;br /&gt;
*Share it along with doubts or queries on a particular thread for this project on the developer mailing list to welcome inputs from all the community members.&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
* We want to make sure that you can set up a [http://developer.sugarlabs.org development environment] before the summer starts. Please do &#039;&#039;one&#039;&#039; of the following:&lt;br /&gt;
** 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 &amp;quot;logout&amp;quot;. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Buddy-menu-manash.png|1000px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. &#039;&#039;&#039;&lt;br /&gt;
:: It&#039;s normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.&lt;br /&gt;
&lt;br /&gt;
Yes I have sent two pull request. [https://github.com/sugarlabs/sugar/pull/665 Proxy setting feature] and [https://github.com/sugarlabs/sugar/pull/668 Bug fix]&lt;br /&gt;
&lt;br /&gt;
* If you plan to work on Sugar-Web projects we want to be sure that you&#039;re familiar with web technologies, so:&lt;br /&gt;
** Clone the [https://github.com/llaske/Sugarizer Sugarizer repository]&lt;br /&gt;
** Using instructions [https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity&lt;br /&gt;
** Send us a screenshot of your new activity executed in Sugarizer&lt;br /&gt;
&#039;&#039;&#039; Describe a great learning experience you had as a child.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I can relate to the goals of Sugar, now when I have grown up, since I have witnessed how an access to computer aided learning and quick access to resources (internet) can accelerate the process of learning as in my case. The ability to create has been the major driving force of my learning. Three events in particular were the most significant that I would like to share with:&lt;br /&gt;
*An investment into the future for a PC made by my parents at my 3rd grade gave me my best friend and teacher at my childhood. I believe, it is more about the enhancement of thinking process than in the ability to score higher marks in exams. Even though some people might be skeptical about the results of OLPC and Sugar provided the investment, but I believe in its long term effect as I have seen it.&lt;br /&gt;
*Then I was introduced to programming and the Internet by my school at 6th grade. The introduction made all the neurons light up in excitement for the ability to create my own real world applications. &lt;br /&gt;
*I was shown the path and I started sprinting on it myself. From the period of 7th grade to 10th grade, I learnt C++, C#, PHP, HTML, CSS, electronics and embedded programming to create many software and hardware applications and participated in many competitions upto the national level.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Yes, I would like to tell why I chose to contribute to Sugar. While looking at various organizations at the 2015 GSoC page, I shortlisted a few organizations based on my strongest skill set. I looked upon for the problem statement of each of the organizations that they were trying to achieve and there I came to know about Sugar. I felt attached to the community due to the following points:&lt;br /&gt;
*I could relate the computer aided Sugar pedagogy with my own experience.&lt;br /&gt;
*I am a volunteer at “National Service Scheme” in my college and along with my unit, we provide community service at a nearby village. Hence I can visualize if not perfectly the effect of OLPC and Sugar would have in the children deep down there. We used to take our laptops to show them animated content, fascinate them with electronics and RC planes. They used to gather around us and we witnessed maximum attendance on the Saturdays we went there.&lt;br /&gt;
*I found the community members at IRC and developer mailing list very welcome and I feel excited about my first experience at an International selfless open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please include the category tag at the bottom of your page the Category tag for 2016 GSoC applications.&lt;br /&gt;
&lt;br /&gt;
[[Category:2016 GSoC applications]]&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=97586</id>
		<title>Summer of Code/2016/Sugar Journal backup and restore</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=97586"/>
		<updated>2016-03-25T04:04:24Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About You ==&lt;br /&gt;
&#039;&#039;&#039;What is your name?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
My name is &amp;lt;b&amp;gt;Manash Pratim Das&amp;lt;/b&amp;gt;. I am a 2nd Year, Bachelor of Technology (B.Tech), undergraduate student at the [http://www.iitkgp.ac.in/ Indian Institute of Technology, Kharagpur, India]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your email address? &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My email address is &amp;lt;b&amp;gt;mpdmanash@gmail.com&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your Sugar Labs wiki username?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your IRC nickname on irc.freenode.net?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you&#039;d prefer.)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My native language is Hindi, but I am fluent in English as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Where are you located, and what hours (UTC) do you tend to work? (We also try to match mentors by general time zone if possible.)&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
I live at in Kharagpur, West Bengal, India. &amp;lt;br /&amp;gt;&lt;br /&gt;
My timezone is &amp;lt;b&amp;gt;UTC + 5:30 (Indian Standard Time)&amp;lt;/b&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
I generally tend to work in the evening (from 5 pm) and late night (to 4 am). But my time table is very flexible and can be changed as per the convenience of my mentor/community members. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Yes, I have contributed to two completely open source research projects at my college:&lt;br /&gt;
* [https://github.com/quadrotor-IITKgp “Aerial Robotics Kharagpur”]: I am a software team member of this organization. Few specific (other than open code contribution) [https://github.com/quadrotor-IITKgp/grid_localization 1][https://github.com/ManashRaja/quad_simulator 2]&lt;br /&gt;
* [https://github.com/AGV-IIT-KGP “Autonomous Ground Vehicle”]: Specific work [https://github.com/AGV-IIT-KGP/computer_vision/pull/28 1],[https://github.com/AGV-IIT-KGP/eklavya-2015/pull/75 2]&lt;br /&gt;
* My [https://github.com/ManashRaja/ GitHub profile] in general.&lt;br /&gt;
I also solved a bug for an Arduino library, but it was solved before I could send the PR :) .&lt;br /&gt;
&lt;br /&gt;
== About your project ==&lt;br /&gt;
&#039;&#039;&#039;What is the name of your project?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sugar Journal backup and Restore&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will add advanced backup-restore, cloud sync and easy sharing features for the Sugar journal. The following are the features in detail:&lt;br /&gt;
#&#039;&#039;&#039;Add selective backup-restore:&#039;&#039;&#039; User can select part of the journal to be backed up or restored directly from within the backup page. Metadata for each Journal entry will store the list of dependencies and library objects, which will be downloaded again as needed (and, as available). &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; Backups will be specific and save unnecessary wastage of storage space. Replace the ineffective way to store Journal images with the risk of running out of local space. Teachers will be able to distribute tutorials on activities without hampering the existing Journal a student.&lt;br /&gt;
#&#039;&#039;&#039;Add system to backup and restore from school servers (XSCE):&#039;&#039;&#039; Now backup can only be stored and restored from devices, but this feature will add school servers to the options. &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
#*The existing (ds-backup) option on OLPC OS is not an effective method because it cannot be easily restored. (from what I understand)&lt;br /&gt;
#*As school servers are the best common node for all the local hardware running Sugar, hence storing backups at such common location will increase its accessibility by many fold.&lt;br /&gt;
#*The backups can be used by multiple types of hardware/platform running Sugar (OLPC pcs, Android, Sugarizer) seamlessly using school-server’s multi-platform support to the advantage.&lt;br /&gt;
#*Teachers can distribute journal entries on mass scale.&lt;br /&gt;
#&#039;&#039;&#039;Add cloud service:&#039;&#039;&#039; In a few clicks, it will let schools to connect each student’s pc to a local cloud server or a third party cloud server as per the availability to sync the journal data at a central location.&amp;lt;br /&amp;gt;&amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; It will be easy for schools to let hardware be shared among the student batches as students can login to their account from any hardware and can still access his/her own journal. This feature will strongly support:&lt;br /&gt;
#*&amp;quot;One to many concept&amp;quot; that can be implemented on Sugar. (concept discussed on GSoC 2016 idea page [https://wiki.sugarlabs.org/go/Summer_of_Code/2016 link])&lt;br /&gt;
#*The OLPC’s new “Infinity” modular computer. A student’s personal setup (Journal) becomes another module.&lt;br /&gt;
#&#039;&#039;&#039;Easy sharing of Journal items based on above server frameworks:&#039;&#039;&#039; When server frameworks like XSCE and cloud are available, their utility can be increased by adding features where children can share any item with each other in just few easy clicks. The GUI will be indifferent to the framework being used in the background even though it will provide options, if both are present at the same time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Technologies:&amp;lt;/u&amp;gt; I will use python and its libraries for the main backend along with GTK+ for the GUI and graphics generator like Inkscape for the icons. For the different server integration, I am planning to use use server specific cli, apis, libraries or scripts like “owncloudcmd” for ownCloud,  “RClone” that supports many cloud services like Google Drive, Amazon S3, Openstack Swift / Rackspace cloud files / Memset Memstore, Dropbox, Google Cloud Storage, Amazon Cloud Drive, Microsoft One Drive, Hubic, Backblaze B2, Yandex Disk, The local filesystem and tools like rsync for XSCE school-servers. I will also use polkit for permissions and symbolic links. If I finally use rclone for cloud sync, then I might learn and use go programming language (its written on) or use pexpect to run its cli.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is the timeline for development of your project? The Summer of Code work period is from mid-May to mid-August; 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&#039;s good to have a plan at the beginning so you have an idea of where you&#039;re headed.) Note that you should probably plan to have something &amp;quot;working and 90% done&amp;quot; by the midterm evaluation (end of June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align: center;&amp;quot; | Week&lt;br /&gt;
! Scheduled Work &lt;br /&gt;
! Time I can devote&lt;br /&gt;
|-&lt;br /&gt;
| 22 April-22 May&lt;br /&gt;
(Community Bonding period)&lt;br /&gt;
| &lt;br /&gt;
*Introduce and become part of the community.  &lt;br /&gt;
*Look for various different ways to approach the project.&lt;br /&gt;
*Discuss with mentor(s), OLPC members, XSCE members and if possible the people who work down there to tailor the project to the perfect needs and flow.&lt;br /&gt;
*Draw a detailed roadmap on how I will implement each feature.&lt;br /&gt;
*Learn any required skill I may be missing.&lt;br /&gt;
*Design GUI according to the flow as discussed above and create icons as required required.&lt;br /&gt;
*Install XSCE and ownCloud servers at my own place. &lt;br /&gt;
*Create accounts in the third party cloud providers.&lt;br /&gt;
|22 April-29 April: 9 hours per week (end semester examinations.)&lt;br /&gt;
30th April-22nd May: 65 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 23 May-29 May&lt;br /&gt;
| &lt;br /&gt;
*Continue the development of the selective backup-restore feature on which I already have done some work.[https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 link] I plan to finish at least 90% of this feature on this week.&lt;br /&gt;
*Try to match my style of coding with the existing code by reviews and proper study of the code.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 30 May-5 June&lt;br /&gt;
| &lt;br /&gt;
*Complete the basic functionality of the specific and multiple backup-restore&lt;br /&gt;
*Start implementing and coding for making the XSCE server as backup destination and restore source.&lt;br /&gt;
*Build up the coding pace&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 6 June-12 June&lt;br /&gt;
| &lt;br /&gt;
*Finish off the XSCE server feature.&lt;br /&gt;
*Relatively free week to act as buffer if required or start the next week&#039;s work.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 13 June-20 June&lt;br /&gt;
| &lt;br /&gt;
*Finalize the cloud integration for ownCloud and majority of the third party providers like (Google Drive, Dropbox, Amazon S3), whose prototype has been made by me already [https://github.com/ManashRaja/cloud-sync-demo link].  &lt;br /&gt;
*Testing and code documentation&lt;br /&gt;
*90% as per functionality of the project will be complete&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 21 June-28 June&lt;br /&gt;
| &lt;br /&gt;
*Mid-Term Evaluation&lt;br /&gt;
*Keep on brainstorming for GUIs and integration of my project which makes it very effective and user friendly.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 28 June-3 July&lt;br /&gt;
| &lt;br /&gt;
*Work on the feedback received after the evaluation.&lt;br /&gt;
*Complete cloud integration for third party service providers for it any of them were left.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 4 July-10 July&lt;br /&gt;
| &lt;br /&gt;
*Understand all types of collaborations that happen in the school among the children(students) and teachers, to know how my sharing feature fits in.&lt;br /&gt;
*Start coding for the sharing feature.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 11 July-16 July&lt;br /&gt;
| &lt;br /&gt;
*Finish the sharing feature.&lt;br /&gt;
*Apart from the regular updates to the community about the project, I will submit my work upto now for review and suggestions by the community.&lt;br /&gt;
*Work on the suggestions.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 18 July-24 July&lt;br /&gt;
| Buffer week to complete if work is pending or add GUI to use the cloud framework developed to support “One hardware to many user” feature of Sugar.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 25 July-31 July&lt;br /&gt;
| &lt;br /&gt;
*Finalize the code&lt;br /&gt;
*Testing and improvements&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 1st Aug-7 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Proper code documentation, cleanup and flake8 verification.&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 8 Aug-15 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Feature documentation on https://wiki.sugarlabs.org/go/Features&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 16 Aug-24 Aug&lt;br /&gt;
| Submit code and evaluations.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My strength lies in my dynamic learning and self motivated hard work. I am a 2nd year undergraduate of the Indian Institute of Technology, Kharagpur where I am actively involved with the tech community and contribute to 2 research groups ([http://quadrotor-iitkgp.github.io/ 1][http://www.agv.iitkgp.ac.in/ 2]), 2 tech societies([https://www.robotix.in/team/ 1]), projects under professors and have participated in many competitions and hackathons apart from keeping my academics up. In these two years of my stay, I have learnt a great deal about time management. &amp;lt;b&amp;gt;All the professional level work we do has made me to realize realistic timelines for myself and my team.&amp;lt;/b&amp;gt; Though I failed initially, but I am getting better. My work has been mostly in software RnD and autonomous robotics and hence &amp;lt;b&amp;gt;I have gained lots of experience about the process and its time consumption involved in converting an idea to finished product.&amp;lt;/b&amp;gt; So, I have learned to plan my work and execute it efficiently.&lt;br /&gt;
Another important fact is that &amp;lt;b&amp;gt;my college summer vacations lie in the period of 29th April to 24th July, during which I will be able to devote 100% of my work time as GSoc being my top priority&amp;lt;/b&amp;gt; (8-9 hours a day and around 60 hours a week for 9 weeks) towards my contribution. Even though my college semester will start from 25th July, I will still be able to devote 40 hours a week due to a light semester. I also have a head start on the project I would be working on as &amp;lt;b&amp;gt;I have been involved with the Sugar code base since February 1st, added a new feature, fixed a bug and have made the prototype of two features ([https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 1][https://github.com/ManashRaja/cloud-sync-demo 2]) I will develop in this project&amp;lt;/b&amp;gt; apart from discussion about the project on IRC. Hence I am confident that I can ensure fully dedicated work and a pledge to deliver more than I promise.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;You and the community&#039;&#039;&#039; ==&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will mostly be used in the deployment side of Sugar. I strongly believe that my project will add to the sweetness of Sugar to make it come closer to the people who deploy and the even sweeter kids who use it. Backup and restore is a very important feature for various other members of the community who might be testing, developing and integrating Sugar on multiple platforms.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What will you do if you get stuck on your project and your mentor isn&#039;t around?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If I am stuck anywhere, then I will put my best efforts to solve the problem myself by trying Google search as always and referring other resources. But if in case help is required and my mentor is not available then I would refer to the community over developer mailing list, IRC, other GSoC participant if relevant or some specific member(s) whom I might know during the course of the project (eg: Quozl`and SAMdroid who have helped me before). If the problem is not Sugar specific, then I may even take help from my tech circle (Kharagpur Open Source Society) consisting of very smart people or professors if they are available during the vacation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*I would propose a repetitive scheduled meeting every two days at a particular time or as per the convenience of mentors/community members  where we would discuss the progress made and the further course of action. I can understand its effectiveness as we use this technique at our college while doing projects under professors so that the focus and progression is maintained. &lt;br /&gt;
*I will frequently update my progress and milestones achieved on my [http://manashpratim.in/ blog].&lt;br /&gt;
*Share it along with doubts or queries on a particular thread for this project on the developer mailing list to welcome inputs from all the community members.&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
* We want to make sure that you can set up a [http://developer.sugarlabs.org development environment] before the summer starts. Please do &#039;&#039;one&#039;&#039; of the following:&lt;br /&gt;
** 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 &amp;quot;logout&amp;quot;. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Buddy-menu-manash.png|1000px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. &#039;&#039;&#039;&lt;br /&gt;
:: It&#039;s normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.&lt;br /&gt;
&lt;br /&gt;
Yes I have sent two pull request. [https://github.com/sugarlabs/sugar/pull/665 Proxy setting feature] and [https://github.com/sugarlabs/sugar/pull/668 Bug fix]&lt;br /&gt;
&lt;br /&gt;
* If you plan to work on Sugar-Web projects we want to be sure that you&#039;re familiar with web technologies, so:&lt;br /&gt;
** Clone the [https://github.com/llaske/Sugarizer Sugarizer repository]&lt;br /&gt;
** Using instructions [https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity&lt;br /&gt;
** Send us a screenshot of your new activity executed in Sugarizer&lt;br /&gt;
&#039;&#039;&#039; Describe a great learning experience you had as a child.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I can relate to the goals of Sugar, now when I have grown up, since I have witnessed how an access to computer aided learning and quick access to resources (internet) can accelerate the process of learning as in my case. The ability to create has been the major driving force of my learning. Three events in particular were the most significant that I would like to share with:&lt;br /&gt;
*An investment into the future for a PC made by my parents at my 3rd grade gave me my best friend and teacher at my childhood. I believe, it is more about the enhancement of thinking process than in the ability to score higher marks in exams. Even though some people might be skeptical about the results of OLPC and Sugar provided the investment, but I believe in its long term effect as I have seen it.&lt;br /&gt;
*Then I was introduced to programming and the Internet by my school at 6th grade. The introduction made all the neurons light up in excitement for the ability to create my own real world applications. &lt;br /&gt;
*I was shown the path and I started sprinting on it myself. From the period of 7th grade to 10th grade, I learnt C++, C#, PHP, HTML, CSS, electronics and embedded programming to create many software and hardware applications and participated in many competitions upto the national level.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Yes, I would like to tell why I chose to contribute to Sugar. While looking at various organizations at the 2015 GSoC page, I shortlisted a few organizations based on my strongest skill set. I looked upon for the problem statement of each of the organizations that they were trying to achieve and there I came to know about Sugar. I felt attached to the community due to the following points:&lt;br /&gt;
*I could relate the computer aided Sugar pedagogy with my own experience.&lt;br /&gt;
*I am a volunteer at “National Service Scheme” in my college and along with my unit, we provide community service at a nearby village. Hence I can visualize if not perfectly the effect of OLPC and Sugar would have in the children deep down there. We used to take our laptops to show them animated content, fascinate them with electronics and RC planes. They used to gather around us and we witnessed maximum attendance on the Saturdays we went there.&lt;br /&gt;
*I found the community members at IRC and developer mailing list very welcome and I feel excited about my first experience at an International selfless open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please include the category tag at the bottom of your page the Category tag for 2016 GSoC applications.&lt;br /&gt;
&lt;br /&gt;
[[Category:2016 GSoC applications]]&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=97585</id>
		<title>Summer of Code/2016/Sugar Journal backup and restore</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=97585"/>
		<updated>2016-03-25T04:02:22Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About You ==&lt;br /&gt;
&#039;&#039;&#039;What is your name?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
My name is &amp;lt;b&amp;gt;Manash Pratim Das&amp;lt;/b&amp;gt;. I am a 2nd Year, Bachelor of Technology (B.Tech), undergraduate student at the [http://www.iitkgp.ac.in/ Indian Institute of Technology, Kharagpur, India]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your email address? &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My email address is &amp;lt;b&amp;gt;mpdmanash@gmail.com&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your Sugar Labs wiki username?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your IRC nickname on irc.freenode.net?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you&#039;d prefer.)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My native language is Hindi, but I am fluent in English as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Where are you located, and what hours (UTC) do you tend to work? (We also try to match mentors by general time zone if possible.)&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
I live at in Kharagpur, West Bengal, India. &amp;lt;br /&amp;gt;&lt;br /&gt;
My timezone is &amp;lt;b&amp;gt;UTC + 5:30 (Indian Standard Time)&amp;lt;/b&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
I generally tend to work in the evening (from 5 pm) and late night (to 4 am). But my time table is very flexible and can be changed as per the convenience of my mentor/community members. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Yes, I have contributed to two completely open source research projects at my college:&lt;br /&gt;
* [https://github.com/quadrotor-IITKgp “Aerial Robotics Kharagpur”]: I am a software team member of this organization. Few specific (other than open code contribution) [https://github.com/quadrotor-IITKgp/grid_localization 1][https://github.com/ManashRaja/quad_simulator 2]&lt;br /&gt;
* [https://github.com/AGV-IIT-KGP “Autonomous Ground Vehicle”]: Specific work [https://github.com/AGV-IIT-KGP/computer_vision/pull/28 1],[https://github.com/AGV-IIT-KGP/eklavya-2015/pull/75 2]&lt;br /&gt;
* My [https://github.com/ManashRaja/ GitHub profile] in general.&lt;br /&gt;
I also solved a bug for an Arduino library, but it was solved before I could send the PR :) .&lt;br /&gt;
&lt;br /&gt;
== About your project ==&lt;br /&gt;
&#039;&#039;&#039;What is the name of your project?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sugar Journal backup and Restore&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will add advanced backup-restore, cloud sync and easy sharing features for the Sugar journal. The following are the features in detail:&lt;br /&gt;
#&#039;&#039;&#039;Add selective backup-restore:&#039;&#039;&#039; User can select part of the journal to be backed up or restored directly from within the backup page. Metadata for each Journal entry will store the list of dependencies and library objects, which will be downloaded again as needed (and, as available). &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; Backups will be specific and save unnecessary wastage of storage space. Replace the ineffective way to store Journal images with the risk of running out of local space. Teachers will be able to distribute tutorials on activities without hampering the existing Journal a student.&lt;br /&gt;
#&#039;&#039;&#039;Add system to backup and restore from school servers (XSCE):&#039;&#039;&#039; Now backup can only be stored and restored from devices, but this feature will add school servers to the options. &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
#*The existing (ds-backup) option on OLPC OS is not an effective method because it cannot be easily restored. (from what I understand)&lt;br /&gt;
#*As school servers are the best common node for all the local hardware running Sugar, hence storing backups at such common location will increase its accessibility by many fold.&lt;br /&gt;
#*The backups can be used by multiple types of hardware/platform running Sugar (OLPC pcs, Android, Sugarizer) seamlessly using school-server’s multi-platform support to the advantage.&lt;br /&gt;
#*Teachers can distribute journal entries on mass scale.&lt;br /&gt;
#&#039;&#039;&#039;Add cloud service:&#039;&#039;&#039; In a few clicks, it will let schools to connect each student’s pc to a local cloud server or a third party cloud server as per the availability to sync the journal data at a central location.&amp;lt;br /&amp;gt;&amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; It will be easy for schools to let hardware be shared among the student batches as students can login to their account from any hardware and can still access his/her own journal. This feature will strongly support:&lt;br /&gt;
#*&amp;quot;One to many concept&amp;quot; that can be implemented on Sugar. (concept discussed on GSoC 2016 idea page [https://wiki.sugarlabs.org/go/Summer_of_Code/2016 link])&lt;br /&gt;
#*The OLPC’s new “Infinity” modular computer. A student’s personal setup (Journal) becomes another module.&lt;br /&gt;
#&#039;&#039;&#039;Easy sharing of Journal items based on above server frameworks:&#039;&#039;&#039; When server frameworks like XSCE and cloud are available, their utility can be increased by adding features where children can share any item with each other in just few easy clicks. The GUI will be indifferent to the framework being used in the background even though it will provide options, if both are present at the same time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Technologies:&amp;lt;/u&amp;gt; I will use python and its libraries for the main backend along with GTK+ for the GUI and graphics generator like Inkscape for the icons. For the different server integration, I am planning to use use server specific cli, apis, libraries or scripts like “owncloudcmd” for ownCloud,  “RClone” that supports many cloud services like Google Drive, Amazon S3, Openstack Swift / Rackspace cloud files / Memset Memstore, Dropbox, Google Cloud Storage, Amazon Cloud Drive, Microsoft One Drive, Hubic, Backblaze B2, Yandex Disk, The local filesystem and tools like rsync for XSCE school-servers. I will also use polkit for permissions and symbolic links. If I finally use rclone for cloud sync, then I might learn and use go programming language (its written on) or use pexpect to run its cli.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is the timeline for development of your project? The Summer of Code work period is from mid-May to mid-August; 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&#039;s good to have a plan at the beginning so you have an idea of where you&#039;re headed.) Note that you should probably plan to have something &amp;quot;working and 90% done&amp;quot; by the midterm evaluation (end of June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align: center;&amp;quot; | Week&lt;br /&gt;
! Scheduled Work &lt;br /&gt;
! Time I can devote&lt;br /&gt;
|-&lt;br /&gt;
| 22 April-22 May&lt;br /&gt;
(Community Bonding period)&lt;br /&gt;
| &lt;br /&gt;
*Introduce and become part of the community.  &lt;br /&gt;
*Look for various different ways to approach the project.&lt;br /&gt;
*Discuss with mentor(s), OLPC members, XSCE members and if possible the people who work down there to tailor the project to the perfect needs and flow.&lt;br /&gt;
*Draw a detailed roadmap on how I will implement each feature.&lt;br /&gt;
*Learn any required skill I may be missing.&lt;br /&gt;
*Design GUI according to the flow as discussed above and create icons as required required.&lt;br /&gt;
*Install XSCE and ownCloud servers at my own place. &lt;br /&gt;
*Create accounts in the third party cloud providers.&lt;br /&gt;
|22 April-29 April: 9 hours per week (end semester examinations.)&lt;br /&gt;
30th April-22nd May: 65 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 23 May-29 May&lt;br /&gt;
| &lt;br /&gt;
*Continue the development of the selective backup-restore feature on which I already have done some work.[https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 link] I plan to finish at least 90% of this feature on this week.&lt;br /&gt;
*Try to match my style of coding with the existing code by reviews and proper study of the code.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 30 May-5 June&lt;br /&gt;
| &lt;br /&gt;
*Complete the basic functionality of the specific and multiple backup-restore&lt;br /&gt;
*Start implementing and coding for making the XSCE server as backup destination and restore source.&lt;br /&gt;
*Build up the coding pace&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 6 June-12 June&lt;br /&gt;
| &lt;br /&gt;
*Finish off the XSCE server feature.&lt;br /&gt;
*Relatively free week to act as buffer if required or start the next week&#039;s work.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 13 June-20 June&lt;br /&gt;
| &lt;br /&gt;
*Finalize the cloud integration for ownCloud and majority of the third party providers like (Google Drive, Dropbox, Amazon S3), whose prototype has been made by me already [https://github.com/ManashRaja/cloud-sync-demo link].  &lt;br /&gt;
*Testing and code documentation&lt;br /&gt;
*90% as per functionality of the project will be complete&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 21 June-28 June&lt;br /&gt;
| &lt;br /&gt;
*Mid-Term Evaluation&lt;br /&gt;
*Keep on brainstorming for GUIs and integration of my project which makes it very effective and user friendly.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 28 June-3 July&lt;br /&gt;
| &lt;br /&gt;
*Work on the feedback received after the evaluation.&lt;br /&gt;
*Complete cloud integration for third party service providers for it any of them were left.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 4 July-10 July&lt;br /&gt;
| &lt;br /&gt;
*Understand all types of collaborations that happen in the school among the children(students) and teachers, to know how my sharing feature fits in.&lt;br /&gt;
*Start coding for the sharing feature.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 11 July-16 July&lt;br /&gt;
| &lt;br /&gt;
*Finish the sharing feature.&lt;br /&gt;
*Apart from the regular updates to the community about the project, I will submit my work upto now for review and suggestions by the community.&lt;br /&gt;
*Work on the suggestions.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 18 July-24 July&lt;br /&gt;
| Buffer week to complete if work is pending or add GUI to use the cloud framework developed to support “One hardware to many user” feature of Sugar.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 25 July-31 July&lt;br /&gt;
| &lt;br /&gt;
*Finalize the code&lt;br /&gt;
*Testing and improvements&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 1st Aug-7 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Proper code documentation, cleanup and flake8 verification.&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 8 Aug-15 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Feature documentation on https://wiki.sugarlabs.org/go/Features&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 16 Aug-24 Aug&lt;br /&gt;
| Submit code and evaluations.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My strength lies in my dynamic learning and self motivated hard work. I am a 2nd year undergraduate of the Indian Institute of Technology, Kharagpur where I am actively involved with the tech community and contribute to 2 research groups ([http://quadrotor-iitkgp.github.io/ 1][http://www.agv.iitkgp.ac.in/ 2]), 2 tech societies([https://www.robotix.in/team/ 1]), projects under professors and have participated in many competitions and hackathons apart from keeping my academics up. In these two years of my stay, I have learnt a great deal about time management. &amp;lt;b&amp;gt;All the professional level work we do has made me to realize realistic timelines for myself and my team.&amp;lt;/b&amp;gt; Though I failed initially, but I am getting better. My work has been mostly in software RnD and autonomous robotics and hence &amp;lt;b&amp;gt;I have gained lots of experience about the process and its time consumption involved in converting an idea to finished product.&amp;lt;/b&amp;gt; So, I have learned to plan my work and execute it efficiently.&lt;br /&gt;
Another important fact is that &amp;lt;b&amp;gt;my college summer vacations lie in the period of 29th April to 24th July, during which I will be able to devote 100% of my work time as GSoc being my top priority&amp;lt;/b&amp;gt; (8-9 hours a day and around 60 hours a week for 9 weeks) towards my contribution. Even though my college semester will start from 25th July, I will still be able to devote 40 hours a week due to a light semester. I also have a head start on the project I would be working on as &amp;lt;b&amp;gt;I have been involved with the Sugar code base since February 1st, added a new feature, fixed a bug and have made the prototype of two features ([https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 1][https://github.com/ManashRaja/cloud-sync-demo 2]) I will develop in this project&amp;lt;/b&amp;gt; apart from discussion about the project on IRC. Hence I am confident that I can ensure fully dedicated work and a pledge to deliver more than I promise.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;You and the community&#039;&#039;&#039; ==&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will mostly be used in the deployment side of Sugar. I strongly believe that my project will add to the sweetness of Sugar to make it come closer to the people who deploy and the even sweeter kids who use it. Backup and restore is a very important feature for various other members of the community who might be testing, developing and integrating Sugar on multiple platforms.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What will you do if you get stuck on your project and your mentor isn&#039;t around?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If I am stuck anywhere, then I will put my best efforts to solve the problem myself by trying Google search as always and referring other resources. But if in case help is required and my mentor is not available then I would refer to the community over developer mailing list, IRC, other GSoC participant if relevant or some specific member(s) whom I might know during the course of the project (eg: Quozl`and SAMdroid who have helped me before). If the problem is not Sugar specific, then I may even take help from my tech circle (Kharagpur Open Source Society) consisting of very smart people or professors if they are available during the vacation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*I would propose a repetitive scheduled meeting every two days at a particular time or as per the convenience of mentors/community members  where we would discuss the progress made and the further course of action. I can understand its effectiveness as we use this technique at our college while doing projects under professors so that the focus and progression is maintained. &lt;br /&gt;
*I will frequently update my progress and milestones achieved on my [http://manashpratim.in/ blog].&lt;br /&gt;
*Share it along with doubts or queries on a particular thread for this project on the developer mailing list to welcome inputs from all the community members.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
* We want to make sure that you can set up a [http://developer.sugarlabs.org development environment] before the summer starts. Please do &#039;&#039;one&#039;&#039; of the following:&lt;br /&gt;
** 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 &amp;quot;logout&amp;quot;. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Buddy-menu-manash.png|1000px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. &#039;&#039;&#039;&lt;br /&gt;
:: It&#039;s normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.&lt;br /&gt;
&lt;br /&gt;
Yes I have sent two pull request. [https://github.com/sugarlabs/sugar/pull/665 Proxy setting feature] and [https://github.com/sugarlabs/sugar/pull/668 Bug fix]&lt;br /&gt;
&lt;br /&gt;
* If you plan to work on Sugar-Web projects we want to be sure that you&#039;re familiar with web technologies, so:&lt;br /&gt;
** Clone the [https://github.com/llaske/Sugarizer Sugarizer repository]&lt;br /&gt;
** Using instructions [https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity&lt;br /&gt;
** Send us a screenshot of your new activity executed in Sugarizer&lt;br /&gt;
&#039;&#039;&#039; Describe a great learning experience you had as a child.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I can relate to the goals of Sugar, now when I have grown up, since I have witnessed how an access to computer aided learning and quick access to resources (internet) can accelerate the process of learning as in my case. The ability to create has been the major driving force of my learning. Three events in particular were the most significant that I would like to share with:&lt;br /&gt;
*An investment into the future for a PC made by my parents at my 3rd grade gave me my best friend and teacher at my childhood. I believe, it is more about the enhancement of thinking process than in the ability to score higher marks in exams. Even though some people might be skeptical about the results of OLPC and Sugar provided the investment, but I believe in its long term effect as I have seen it.&lt;br /&gt;
*Then I was introduced to programming and the Internet by my school at 6th grade. The introduction made all the neurons light up in excitement for the ability to create my own real world applications. &lt;br /&gt;
*I was shown the path and I started sprinting on it myself. From the period of 7th grade to 10th grade, I learnt C++, C#, PHP, HTML, CSS, electronics and embedded programming to create many software and hardware applications and participated in many competitions upto the national level.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Yes, I would like to tell why I chose to contribute to Sugar. While looking at various organizations at the 2015 GSoC page, I shortlisted a few organizations based on my strongest skill set. I looked upon for the problem statement of each of the organizations that they were trying to achieve and there I came to know about Sugar. I felt attached to the community due to the following points:&lt;br /&gt;
*I could relate the computer aided Sugar pedagogy with my own experience.&lt;br /&gt;
*I am a volunteer at “National Service Scheme” in my college and along with my unit, we provide community service at a nearby village. Hence I can visualize if not perfectly the effect of OLPC and Sugar would have in the children deep down there. We used to take our laptops to show them animated content, fascinate them with electronics and RC planes. They used to gather around us and we witnessed maximum attendance on the Saturdays we went there.&lt;br /&gt;
*I found the community members at IRC and developer mailing list very welcome and I feel excited about my first experience at an International selfless open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please include the category tag at the bottom of your page the Category tag for 2016 GSoC applications.&lt;br /&gt;
&lt;br /&gt;
[[Category:2016 GSoC applications]]&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
	<entry>
		<id>https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=97583</id>
		<title>Summer of Code/2016/Sugar Journal backup and restore</title>
		<link rel="alternate" type="text/html" href="https://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/Sugar_Journal_backup_and_restore&amp;diff=97583"/>
		<updated>2016-03-25T03:42:38Z</updated>

		<summary type="html">&lt;p&gt;ManashRaja: /* About You */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About You ==&lt;br /&gt;
&#039;&#039;&#039;What is your name?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
My name is &amp;lt;b&amp;gt;Manash Pratim Das&amp;lt;/b&amp;gt;. I am a 2nd Year, Bachelor of Technology (B.Tech), undergraduate student at the [http://www.iitkgp.ac.in/ Indian Institute of Technology, Kharagpur, India]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your email address? &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My email address is &amp;lt;b&amp;gt;mpdmanash@gmail.com&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your Sugar Labs wiki username?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your IRC nickname on irc.freenode.net?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
ManashRaja&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you&#039;d prefer.)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My native language is Hindi, but I am fluent in English as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Where are you located, and what hours (UTC) do you tend to work? (We also try to match mentors by general time zone if possible.)&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
I live at in Kharagpur, West Bengal, India. &amp;lt;br /&amp;gt;&lt;br /&gt;
My timezone is &amp;lt;b&amp;gt;UTC + 5:30 (Indian Standard Time)&amp;lt;/b&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
I generally tend to work in the evening (from 5 pm) and late night (to 4 am). But my time table is very flexible and can be changed as per the convenience of my mentor/community members. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Yes, I have contributed to two completely open source research projects at my college:&lt;br /&gt;
* [https://github.com/quadrotor-IITKgp “Aerial Robotics Kharagpur”]: I am a software team member of this organization.Few specific (other than open code contribution) [https://github.com/quadrotor-IITKgp/grid_localization 1][https://github.com/ManashRaja/quad_simulator 2]&lt;br /&gt;
* [https://github.com/AGV-IIT-KGP “Autonomous Ground Vehicle”]: Specific work [https://github.com/AGV-IIT-KGP/computer_vision/pull/28 1],[https://github.com/AGV-IIT-KGP/eklavya-2015/pull/75 2]&lt;br /&gt;
* My [https://github.com/ManashRaja/ GitHub profile] in general.&lt;br /&gt;
I also solved a bug for an Arduino library, but it was solved before I could send the PR :) .&lt;br /&gt;
&lt;br /&gt;
== About your project ==&lt;br /&gt;
&#039;&#039;&#039;What is the name of your project?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sugar Journal backup and Restore&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project in short will add advanced backup-restore, cloud sync and easy sharing features for the sugar journal. The following are the features in detail:&lt;br /&gt;
#&#039;&#039;&#039;Add selective backup-restore:&#039;&#039;&#039; User can select part of the journal to be backed up or restored directly from within the backup page. Metadata for each Journal entry will store the list of dependencies and library objects, which will be downloaded again as needed (and, as available). &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; Backups will be specific and save unnecessary wastage of storage space. Replace the ineffective way to store Journal images with the risk of running out of local space. It will enable specific journal entries to be distributed by the teachers as tutorials without hampering the existing Journal of students.&lt;br /&gt;
#&#039;&#039;&#039;Add system to backup and restore from school servers (XSCE):&#039;&#039;&#039; Now backup can only be stored and restored from devices, but this feature will add school servers to the options. &amp;lt;br /&amp;gt; &amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
#*The existing (ds-backup) option on OLPC OS is not an effective method because it cannot be easily restored. (from what I understand)&lt;br /&gt;
#*As school servers are the best common node for all the local hardware running sugar, hence storing backups at such common location will increase its accessibility by many fold.&lt;br /&gt;
#*The backups can be used by multiple types of hardware/platform running Sugar (OLPC pcs, Android, Sugarizer) seamlessly using school-server’s multi-platform support to the advantage.&lt;br /&gt;
#*Teachers can distribute journal entries on mass scale.&lt;br /&gt;
#&#039;&#039;&#039;Add cloud service:&#039;&#039;&#039; In a few clicks, it will let schools to connect each student’s pc to a local cloud server or a third party cloud server as per the availability to sync the journal data at a central location.&amp;lt;br /&amp;gt;&amp;lt;u&amp;gt;&amp;lt;i&amp;gt;Why?&amp;lt;/i&amp;gt;&amp;lt;/u&amp;gt; It will be easy for schools to let hardware be shared among the student batches as students can login to their account from any hardware and can still access his/her own journal. This feature will strongly support:&lt;br /&gt;
#*One to many concept that can be implemented on Sugar.&lt;br /&gt;
#*The OLPC’s new “Infinity” modular computer. The student’s personal setup (Journal) becomes another module.&lt;br /&gt;
#&#039;&#039;&#039;Easy sharing of Journal items based on above server frameworks:&#039;&#039;&#039; When server frameworks like XSCE and cloud are available, their utility can be increased by adding features where children can share any item with others in just few easy clicks. The GUI will be indifferent to the framework being used in the background even though it will provide options, if both are present at the same time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Technologies:&amp;lt;/u&amp;gt; I will use python and its libraries for the main backend along with GTK+ for the GUI and graphics generator like Inkscape for the icons. For the different server integration, I am planning to use use server specific cli, apis, libraries or scripts like “owncloudcmd” for ownCloud,  “RClone” that supports many cloud services like Google Drive, Amazon S3, Openstack Swift / Rackspace cloud files / Memset Memstore, Dropbox, Google Cloud Storage, Amazon Cloud Drive, Microsoft One Drive, Hubic, Backblaze B2, Yandex Disk, The local filesystem and tools like rsync for XSCE school-servers. I will also use polkit for permissions and symbolic links. If I finally use rclone for cloud sync, then I might learn and use go programming language in which it is made or use pexpect to run its cli.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is the timeline for development of your project? The Summer of Code work period is from mid-May to mid-August; 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&#039;s good to have a plan at the beginning so you have an idea of where you&#039;re headed.) Note that you should probably plan to have something &amp;quot;working and 90% done&amp;quot; by the midterm evaluation (end of June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align: center;&amp;quot; | Week&lt;br /&gt;
! Scheduled Work &lt;br /&gt;
! Time I can devote&lt;br /&gt;
|-&lt;br /&gt;
| 22 April-22 May&lt;br /&gt;
(Community Bonding period)&lt;br /&gt;
| &lt;br /&gt;
*Introduce and become part of the community.  &lt;br /&gt;
*Look for various different ways to approach the project.&lt;br /&gt;
*Discuss with mentor(s), OLPC members, XSCE members and if possible the people who work down there to tailor the project to the perfect needs and flow.&lt;br /&gt;
*Draw a detailed roadmap on how I will implement each feature.&lt;br /&gt;
*Learn any required skill I may be missing.&lt;br /&gt;
*Design GUI according to the flow as discussed above and create icons as required required.&lt;br /&gt;
*Install XSCE and ownCloud servers at my own place. &lt;br /&gt;
*Create accounts in the third party cloud providers.&lt;br /&gt;
|22 April-29 April: 9 hours per week (end semester examinations.)&lt;br /&gt;
30th April-22nd May: 65 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 23 May-29 May&lt;br /&gt;
| &lt;br /&gt;
*Continue the development of the selective backup-restore feature on which I already have done some work.[https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 link] I plan to finish at least 90% of this feature on this week.&lt;br /&gt;
*Try to match my style of coding with the existing code by reviews and proper study of the code.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 30 May-5 June&lt;br /&gt;
| &lt;br /&gt;
*Complete the basic functionality of the specific and multiple backup-restore&lt;br /&gt;
*Start implementing and coding for making the XSCE server as backup destination and restore source.&lt;br /&gt;
*Build up the coding pace&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 6 June-12 June&lt;br /&gt;
| &lt;br /&gt;
*Finish off the XSCE server feature.&lt;br /&gt;
*Relatively free week to act as buffer if required or start the next week&#039;s work.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 13 June-20 June&lt;br /&gt;
| &lt;br /&gt;
*Finalize the cloud integration for ownCloud and majority of the third party providers like (Google Drive, Dropbox, Amazon S3), whose prototype has been made by me already [https://github.com/ManashRaja/cloud-sync-demo link].  &lt;br /&gt;
*Testing and code documentation&lt;br /&gt;
*90% as per functionality of the project will be complete&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 21 June-28 June&lt;br /&gt;
| &lt;br /&gt;
*Mid-Term Evaluation&lt;br /&gt;
*Keep on brainstorming for GUIs and integration of my project which makes it very effective and user friendly.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 28 June-3 July&lt;br /&gt;
| &lt;br /&gt;
*Work on the feedback received after the evaluation.&lt;br /&gt;
*Complete cloud integration for third party service providers for it any of them were left.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 4 July-10 July&lt;br /&gt;
| &lt;br /&gt;
*Understand all types of collaborations that happen in the school among the children(students) and teachers, to know how my sharing feature fits in.&lt;br /&gt;
*Start coding for the sharing feature.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 11 July-16 July&lt;br /&gt;
| &lt;br /&gt;
*Finish the sharing feature.&lt;br /&gt;
*Apart from the regular updates to the community about the project, I will submit my work upto now for review and suggestions by the community.&lt;br /&gt;
*Work on the suggestions.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 18 July-24 July&lt;br /&gt;
| Buffer week to complete if work is pending or add GUI to use the cloud framework developed to support “One hardware to many user” feature of Sugar.&lt;br /&gt;
|60 hours a week (summer vacations)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 25 July-31 July&lt;br /&gt;
| &lt;br /&gt;
*Finalize the code&lt;br /&gt;
*Testing and improvements&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 1st Aug-7 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Proper code documentation, cleanup and flake8 verification.&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 8 Aug-15 Aug&lt;br /&gt;
| &lt;br /&gt;
*Testing and improvements&lt;br /&gt;
*Feature documentation on https://wiki.sugarlabs.org/go/Features&lt;br /&gt;
|40 hours a week (college)&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 16 Aug-24 Aug&lt;br /&gt;
| Submit code and evaluations.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My strength lies in my dynamic learning and self motivated hard work. I am a 2nd year undergraduate of the Indian Institute of Technology, Kharagpur where I am actively involved with the tech community and contribute to 2 research groups ([http://quadrotor-iitkgp.github.io/ 1][http://www.agv.iitkgp.ac.in/ 2]), 2 tech societies([https://www.robotix.in/team/ 1]), projects under professors and have participated in many competitions and hackathons apart from keeping my academics up. In these two years of my stay, I have learnt a great deal about time management. &amp;lt;b&amp;gt;All the professional level work we do has made me to realize realistic timelines for myself and my team.&amp;lt;/b&amp;gt; Though I failed initially, but I am getting better. My work has been mostly in software RnD and autonomous robotics and hence &amp;lt;b&amp;gt;I have gained lots of experience about the process and its time consumption involved in converting an idea to finished product.&amp;lt;/b&amp;gt; So, I have learned to plan my work and execute it efficiently.&lt;br /&gt;
Another important fact is that &amp;lt;b&amp;gt;my college summer vacations lie in the period of 29th April to 24th July, during which I will be able to devote 100% of my work time as GSoc being my top priority&amp;lt;/b&amp;gt; (8-9 hours a day and around 60 hours a week for 9 weeks) towards my contribution. Even though I my college semester will start from 25th July, I will still be able to devote 40 hours a week due to a light semester. I also have a head start on the project I would be working on as &amp;lt;b&amp;gt;I have been involved with the sugar code base since February 1st, added a new feature, fixed a bug and have made the prototype of two features ([https://github.com/ManashRaja/sugar/commit/e186d37182be8baf2feff0c6e3726a5e1b3753b6 1][https://github.com/ManashRaja/cloud-sync-demo 2]) I will develop in this project&amp;lt;/b&amp;gt; apart from discussion about the project on IRC. Hence I am confident that I can ensure fully dedicated work and a pledge to deliver more than I promise.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;You and the community&#039;&#039;&#039; ==&lt;br /&gt;
&#039;&#039;&#039;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.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
My project will mostly be used in the deployment side of sugar. I strongly believe that my project will add to the sweetness of Sugar to make it come closer to the people who deploy and the even sweeter kids who use it. Backup and restore is a very important feature for various other members of the community who might be testing, developing and integrating Sugar on multiple platforms.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What will you do if you get stuck on your project and your mentor isn&#039;t around?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If I am stuck anywhere, then I will put my best efforts to solve the problem myself, trying Google search as always and other resources. But if help is required and my mentor is not available then I would refer to the community over developer mailing list, IRC, other GSoC participant if relevant or some specific member(s) whom I might know during the course of the project (eg: Quozl`and SAMdroid who have helped me before). If the problem is not Sugar specific, then I may even take help from my tech circle (Kharagpur Open Source Society) consisting of very smart people or professors if they are available during the vacation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*I would propose a repetitive scheduled meeting every two days at a particular time or as per the convenience of mentors/community members  where we would discuss the progress made and the further course of action. I can understand its effectiveness as we use this technique at our college while doing projects under professors so that the focus and progression is maintained. &lt;br /&gt;
*I will frequently update my progress and milestones achieved on my [http://manashpratim.in/ blog].&lt;br /&gt;
*Share it along with doubts or queries on a particular thread for this project on the developer mailing list to welcome inputs from all the community members.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
* We want to make sure that you can set up a [http://developer.sugarlabs.org development environment] before the summer starts. Please do &#039;&#039;one&#039;&#039; of the following:&lt;br /&gt;
** 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 &amp;quot;logout&amp;quot;. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Buddy-menu-manash.png|1000px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. &#039;&#039;&#039;&lt;br /&gt;
:: It&#039;s normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.&lt;br /&gt;
&lt;br /&gt;
Yes I have sent two pull request. [https://github.com/sugarlabs/sugar/pull/665 Proxy setting feature] and [https://github.com/sugarlabs/sugar/pull/668 Bug fix]&lt;br /&gt;
&lt;br /&gt;
* If you plan to work on Sugar-Web projects we want to be sure that you&#039;re familiar with web technologies, so:&lt;br /&gt;
** Clone the [https://github.com/llaske/Sugarizer Sugarizer repository]&lt;br /&gt;
** Using instructions [https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity&lt;br /&gt;
** Send us a screenshot of your new activity executed in Sugarizer&lt;br /&gt;
&#039;&#039;&#039; Describe a great learning experience you had as a child.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I can relate to the goals of Sugar, now when I have grown up, since I have witnessed how an access to computer aided learning and quick access to resources (internet) can accelerate the process of learning as in my case. The ability to create has been the major driving force of my learning. Three events in particular were the most significant that I would like to share with:&lt;br /&gt;
*An investment into the future for a PC made by my parents at my 3rd grade gave me my best friend and teacher at my childhood. I believe, it is more about the enhancement of thinking process than in the ability to score higher marks in exams. Even though some people might be skeptical about the results of OLPC and Sugar provided the investment, but I believe in its long term effect as I have seen it.&lt;br /&gt;
*Then I was introduced to programming and the Internet by my school at 6th grade. The introduction made all the neurons light up in excitement for the ability to create my own real world applications. &lt;br /&gt;
*I was shown the path and I started sprinting on it myself. From the period of 7th grade to 10th grade, I learnt C++, C#, PHP, HTML, CSS, electronics and embedded programming to create many software and hardware applications and participated upto national level of competitions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 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?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Yes, I would like to tell why I choose to contribute to Sugar. While looking at various organizations at the 2015 GSoC page, I shortlisted a few organizations based on my strongest skill set. I looked upon for the problem statement of each of the organizations that they were trying to achieve and there I came to know about Sugar. I felt attached to the community due to the following points:&lt;br /&gt;
*I could relate the computer aided Sugar pedagogy with my own experience.&lt;br /&gt;
*I am a volunteer at “National Service Scheme” in my college and along with my unit, we provide community service at a nearby village. Hence I can visualize if not perfectly the effect of OLPC and Sugar would have in the children deep down there. We used to take out laptops to show them animated content, fascinate them with electronics and RC planes. They used to gather around us and we witnessed maximum attendance on the Saturdays we went there.&lt;br /&gt;
*I found the community members at IRC and developer mailing list very welcome and I feel excited about my first experience at an International selfless open source project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please include the category tag at the bottom of your page the Category tag for 2016 GSoC applications.&lt;br /&gt;
&lt;br /&gt;
[[Category:2016 GSoC applications]]&lt;/div&gt;</summary>
		<author><name>ManashRaja</name></author>
	</entry>
</feed>