Difference between revisions of "Summer of Code/2016/SugarJournalSaveOption UtkarshT"

From Sugar Labs
Jump to navigation Jump to search
Line 86: Line 86:
 
'''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?'''
 
'''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?'''
  
The project is to introduce a <b>save feature </b> inside Sugar where the user can save the current running activity instance by name of his choice when an activity is closed.
+
A number of real-world issues crop up in deployments of Sugar, especially where resources are limited (bandwidth, CPU speed, battery life, local storage, etc.) This project is related to making Sugar more usable under such circumstances.
  
The Sugar Journal should provide a 'save/save as' interface which should enable a user to choose whether to save the current document when an activity is closed. The interface should require a name change from 'current.activity' to a user supplied name. If the document is derived from one currently saved in the Journal, the user should be allowed to save (overwrite) or save as (create new document) by giving a new name to the document. This could be accomplished by showing a modal dialog at close time requesting the user to supply a name or not save the document. If the document has a user supplied name, the dialog could request the user to save or to provide a new name to create a new document.
+
Features proposed->
  
This approach satisfies the needs referenced in the git task. Git is a little like a hammer looking for a nail. Using git for this function will likely double the size of the data stored in the Journal (based on normal experience using git). Unfortunately, we don't have this space on the XOs. The standard save/save as feature will give the user the ability to manage versions by using unique names.
+
*<b>Sugar Journal save option</b> - This feature introduces a <b>save feature </b> inside Sugar where the user can save the current running activity instance by name of his choice when an activity is closed. The key is to give the user a way to do what is needed, but not to force it.
 +
 
 +
The Sugar Journal should provide a 'save/save as' interface which should enable a user to choose whether to save the current document when an activity is closed. The interface should require a name change from 'current.activity' to a user supplied name. - If the document is derived from one currently saved in the Journal, the user should be allowed to save (overwrite) or save as (create new document) by giving a new name to the document. This could be accomplished by showing a alert dialog at close time requesting the user to supply a name or 'not save' the document. If the document has a user supplied name (by the standard activity toolbar icon), the dialog could request the user to save or to provide a new name to create a new document.
 +
When a user resumes an activity, if the user quits, it should be saved by overwriting the previous Journal object (the current default).
 +
If the user wants to ignore it, he can simply do so by selecting 'cancel' option.  
  
Programming Language: Python
+
In this way an unnecessary instance(it's data and metadata) wont be stored in the Journal thus saving significant space on XO by not storing irrelevant activity instances.
  
Libraries: Python bindings for Gtk+
+
This approach satisfies the needs referenced in the git task. Git is a little like a hammer looking for a nail. Using git for this function will likely double the size of the data stored in the Journal (based on normal experience using git). Unfortunately, we don't have this space on the XOs. The standard save/save as feature will give the user the ability to manage versions by using unique names.
  
 
Here are some mockups I designed-
 
Here are some mockups I designed-
  
<b>Same modal popup on close ː-</b>  
+
<b>Save alert popup on close ː-</b>  
 
<br>
 
<br>
 
             http://imgur.com/p7qg61i.png<br> <br><br>  
 
             http://imgur.com/p7qg61i.png<br> <br><br>  
  
<b>Save as modal dialog ː-</b> <br>
+
<b>Save as alert popup ː-</b> <br>
 
             http://imgur.com/RxZpbxx.png<br><br>
 
             http://imgur.com/RxZpbxx.png<br><br>
 
<br>
 
<br>
Line 112: Line 116:
 
             http://imgur.com/n0GFgRj.png<br><br>
 
             http://imgur.com/n0GFgRj.png<br><br>
 
<br>
 
<br>
 +
 +
*<b>Screenshot save option-</b>  Currently, Sugar simply save a screenshot (without any notification) by naming it as 'Screenhot of X'. With the proposed feature, while taking a screenshot user will be notified with a alert(like in Ubuntu) to provide a name for that screeshot along with the captured image of that shot. In this way user can save his screenshot as per specified name which can later help him remember why he took that snapshot for.
 +
 +
Here is a mockup for the proposed screenshot feature ->
 +
           
 +
            http://imgur.com/Fm3jVLh
 +
 +
*<b>Screenshot save option-</b>
  
  

Revision as of 23:52, 22 March 2016

About You

What is your name?

My name is Utkarsh Tiwari, and I am a 2nd year undergraduate student at Jaypee Institute of Information Technology, India.


What is your email address?

My email address is iamutkarshtiwari@gmail.com


What is your Sugar Labs wiki username?

My Sugar Labs wiki username is iamutkarshtiwari


What is your IRC nickname on irc.freenode.net?

My IRC nickname is iamutkarshtiwari


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

My first language of communication is Hindi and I am also fluent in English.


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.)

Location: Uttar Pradesh, India

Time Zone: UTC + 5:30 (India Standard Time)

Working hours: I usually tend to work in afternoons (1PM-5PM) and nights (9PM-2AM). I will try to be mostly active when most of the mentors come on IRC.

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?

I have only recently begun contributing to open source projects. I am one of the coordinators of the OSDC (Open Source Developers Club) group of my college and have delivered and coordinated talks/workshops on technologies like Pygame, Using Git, JavaFx(Swing) and many more.
I have also been contributing to The Processing Foundation since December 2015 and have fixed couple of bugs and introduced some new features to their Java and Javascript based IDEs.

Here are the links to the PRs I have pushed->
PDE(Java)-> Features + Bugs
PDE(P5.js)-> Bug

Why SugarLabs?

I am in love(kind of obsessed! :D) with the work being done here which keeps me driving to contribute more in all the possible ways I can. It feels great seeing my activities being downloaded by kids and children from all around the world. Nothing makes me more happy than knowing that the code I write is serving the learning of millions of children.
It will be a great experience to work on a project that will introduce some nice feature which will make collaborative learning more easy and enjoyable! I started contributing to Sugar Core since this February. Before that, I had already developed 6 Sugar activities and I am constantly mantaining them.

Here are the links to my Sugar activities->
Sonic Jump
Stick Hero
Flappy Birds
2 Cars
Make them fall
Buttons and Scissors

Github profile link - https://github.com/iamutkarshtiwari

I have also completed the Hindi translations of activities listed below->

Sugar(core)
Turtleart
Memorize
Biorhythm
TurtleblocksJS
Paint
Chat
Card sort
ImageViewer
Physics

Pootle profile link-iamutkarshtiwari

P.S.- Pending translations are still under process.

I am excited to work with Sugarlabs this summer! Working on a 3 months scaled project needs dedication and passion which I both possess. I am looking forward to making some significant contributions to Sugarlabs by working in collaboration with some highly skilled programmers from around the world and learn new technologies and methodologies from them to enhance my knowledge.

About your project

We are looking for projects that will enhance the Sugar Learning Platform. Please consider how your project will have impact on children learning.

What is the name of your project?

Sugar on the Ground

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

A number of real-world issues crop up in deployments of Sugar, especially where resources are limited (bandwidth, CPU speed, battery life, local storage, etc.) This project is related to making Sugar more usable under such circumstances.

Features proposed->

  • Sugar Journal save option - This feature introduces a save feature inside Sugar where the user can save the current running activity instance by name of his choice when an activity is closed. The key is to give the user a way to do what is needed, but not to force it.

The Sugar Journal should provide a 'save/save as' interface which should enable a user to choose whether to save the current document when an activity is closed. The interface should require a name change from 'current.activity' to a user supplied name. - If the document is derived from one currently saved in the Journal, the user should be allowed to save (overwrite) or save as (create new document) by giving a new name to the document. This could be accomplished by showing a alert dialog at close time requesting the user to supply a name or 'not save' the document. If the document has a user supplied name (by the standard activity toolbar icon), the dialog could request the user to save or to provide a new name to create a new document.

When a user resumes an activity, if the user quits, it should be saved by overwriting the previous Journal object (the current default).

If the user wants to ignore it, he can simply do so by selecting 'cancel' option.

In this way an unnecessary instance(it's data and metadata) wont be stored in the Journal thus saving significant space on XO by not storing irrelevant activity instances.

This approach satisfies the needs referenced in the git task. Git is a little like a hammer looking for a nail. Using git for this function will likely double the size of the data stored in the Journal (based on normal experience using git). Unfortunately, we don't have this space on the XOs. The standard save/save as feature will give the user the ability to manage versions by using unique names.

Here are some mockups I designed-

Save alert popup on close ː-

            p7qg61i.png


Save as alert popup ː-

            RxZpbxx.png


Overwrite if name already exists in Journal ː-

            4C5Yt6v.png


Saving with a new name ː-

            n0GFgRj.png


  • Screenshot save option- Currently, Sugar simply save a screenshot (without any notification) by naming it as 'Screenhot of X'. With the proposed feature, while taking a screenshot user will be notified with a alert(like in Ubuntu) to provide a name for that screeshot along with the captured image of that shot. In this way user can save his screenshot as per specified name which can later help him remember why he took that snapshot for.

Here is a mockup for the proposed screenshot feature ->

            http://imgur.com/Fm3jVLh
  • Screenshot save option-


  • 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's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (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.
  • 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.

You and the community

  • 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.
  • What will you do if you get stuck on your project and your mentor isn't around?
  • 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?

Miscellaneous

  • We want to make sure that you can set up a development environment before the summer starts. Please do one of the following:
    • 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 "logout".
                  kZwyivD.png
    • Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug.

I have added some long needed features to Browse activity and Sugar Journal. PRs (Screenshots attached in the PR comment section ) ->

  • Describe a great learning experience you had as a child.


  • 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?

I am pretty good at taking up challenging tasks(I tried integrating features to Sugar that have been requested since a long time ;)). After the completion of my project I would like to continue with my work on adding keyboard accessibility to Journal and download manager improvement in Browse. I am also planning to write an API (as suggested by Mr.Sam Parkinson) to extend keyboard accessibility to Sugar.

Please include the category tag at the bottom of your page the Category tag for 2016 GSoC applications.