https://wiki.sugarlabs.org/api.php?action=feedcontributions&user=Erilyth&feedformat=atomSugar Labs - User contributions [en]2024-03-29T06:09:30ZUser contributionsMediaWiki 1.35.2https://wiki.sugarlabs.org/index.php?title=Activity_Team/Git_Tutorial&diff=99494Activity Team/Git Tutorial2016-12-06T09:50:56Z<p>Erilyth: /* Propose changes to someone else's project */</p>
<hr />
<div><noinclude>{{TeamHeader|Activity Team}}</noinclude><br />
<br />
== Contributing ==<br />
<br />
We use the pull-request model, see [https://help.github.com/articles/about-pull-requests/ github's help on pull-request].<br />
<br />
In short, you will:<br />
<br />
* file an issue about what you plan to change<br />
* do your changes in a new branch<br />
* push your branch and submit a pull-request for it<br />
* go through the review process until your pull-request is merged<br />
* close your issue<br />
<br />
== Activity Repositories ==<br />
<br />
To request a new activity repo, email the http://lists.sugarlabs.org/listinfo/systems list with the name of the repo and the github usernames who should have access.<br />
<br />
We recommend using the same process as below to develop your own Activities.<br />
<br />
== Modifying Sugar ==<br />
<br />
Before going through the details on how to submit changes, let's look at the useful tools we provide to assist contributors in the process of modifying Sugar.<br />
<br />
If you are hacking on sugar-web, run the testsuit with the karma command inside a osbuild shell:<br />
<br />
karma start sugar-web/test/karma.conf.js<br />
<br />
We encourage writing new unit tests for new features.<br />
<br />
After you do the changes, run:<br />
<br />
check<br />
<br />
It will run all the code checks and the unit tests making sure you won't break the build when your changes are pushed. If the checks doesn't succeed because of coding style, see the coding style guide [https://developer.sugarlabs.org/web-style.md.html for web] or [https://developer.sugarlabs.org/python-style.md.html for Python]. If a test doesn't pass either your code needs to be fixed or the test need to be adapted.<br />
<br />
== Open an Issue ==<br />
<br />
We track issues in http://bugs.sugarlabs.org<br />
<br />
Generally, each improvement to Sugar should start with an issue discussion, to ensure that work to fix a bug isn't wasted.<br />
<br />
== GitHub ==<br />
<br />
Sugar Labs uses GitHub as its primary server for git repositories. While you are welcome to use other servers, it is on GitHub where you will find the master branches of the core modules and core activities.<br />
<br />
Getting started with GitHub<br />
<br />
You will learn to do the following:<br />
* Create an account, which you do once.<br />
* Create and add an SSH key, which you do once or if you change system.<br />
* Create a project, a local repository, and identify yourself to git, which you do once per project.<br />
* Add source files, change existing source files, commit changes, push changes, and pull changes, which you do regularly.<br />
<br />
=== Create an Account ===<br />
<br />
Create an account [https://github.com/join here]<br />
<br />
=== Create SSH Key on Windows ===<br />
<br />
To create an SSH Key on Windows, download the latest [http://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY] [http://the.earth.li/~sgtatham/putty/latest/x86/putty-installer.exe installer].<br />
<br />
* Run the puttygen.exe utility to generate a pair of private/public keys.<br />
* Click on the ''Generate'' button (Make sure SSH-2 RSA parameter is checked)<br />
* Move the mouse around to generate your key.<br />
* Once you have accumulated enough "heat", the application will generate your key pair.<br />
* Make sure you enter a lengthy passphrase in the Key passphrase field and confirm it in the Confirm passphrase field.<br />
* Click on the Save private key button to save your private key in a file.<br />
<br />
Congratulations! With your mouse, select the content of the box labelled Public key and press Control-C to copy your public SSH key.<br />
This key can now be used on GitHub to access Git on Windows. Good luck!<br />
<br />
=== Create SSH Key on GNU/Linux ===<br />
<br />
Skip this section if you already have an SSH key in <tt>.ssh</tt> directory that you trust.<br />
<br />
(An easy-to-read tutorial for generating an ssh key can be found [https://help.github.com/articles/generating-ssh-keys here].)<br />
<br />
To create a key use ''ssh-keygen''. The following command will create a “dsa” key:<br />
ssh-keygen -t dsa<br />
<br />
For creating a “rsa” key use:<br />
ssh-keygen -t rsa<br />
<br />
The key will be stored as two files in the hidden <tt>.ssh</tt> directory.<br />
<br />
<tt>id_dsa.pub</tt> is your public key. <tt>id_dsa</tt> is your private key. Only you should have access to this private key. Access to the key will grant access to GitHub in your name. For example, here is a list of files in the <tt>.ssh</tt> directory of user strom:<br />
ls -al ~/.ssh<br />
-rw------- 1 strom strom 668 2009-12-17 21:51 id_dsa<br />
-rw-r--r-- 1 strom strom 603 2009-12-17 21:51 id_dsa.pub<br />
<br />
You should only need to create a key once, unless you change to another system, or a different Sugar-on-a-Stick drive, or you think your private key was compromised. If you do it again, you must also add the new key to GitHub as described in the next section.<br />
<br />
=== Setup Git Desktop for Windows 7 or later ===<br />
<br />
You can either directly download and install git from [https://git-scm.com/downloads here]<br />
<br />
Or you can set up github desktop, which gives you a GUI to do a lot of things. You can download it from [https://desktop.github.com/ here] <br />
<br />
=== Add SSH Key ===<br />
<br />
Log in to GitHub at http://github.com and go [https://github.com/settings/ssh here] click on 'Add Ssh Key'. Choose a title. Open your public key in a text editor, web browser, or even ''cat'' command, and then copy and paste the key into the text entry field. Click on ''Save''.<br />
<br />
Once you do this, GitHub trusts SSH connection from your system because your system has the private key, and GitHub has the public key. You should only need to do this once, unless you change to another system.<br />
<br />
(With ssh-keygen you can specify the name of your key file. Using this feature is not a good idea, because we haven't tested it. Keys should generally be located in <tt>~/.ssh/id_rsa.pub</tt> or <tt>~/.ssh/id_dsa.pub</tt>.)<br />
<br />
=== Identify Yourself to Git ===<br />
<br />
Git on your local system must know your email and name. It uses this when you commit a change, so that when you push or mail it others will know who did it.<br />
<br />
If you do not use git on your system for any other project, you can configure git:<br />
<br />
git config --global user.email "your_email@example.com"<br />
git config --global user.name "Your name"<br />
<br />
You should only need to do this once on a system.<br />
<br />
Otherwise, configure git in the repository:<br />
<br />
cd ${SLUG}.git<br />
git config user.email <email-you-used-for-registering-project><br />
git config user.name <your-name><br />
<br />
You should only need to do this once in a repository.<br />
<br />
==GitHub Workflow==<br />
<br />
=== Create a Project === <br />
<br />
You will create a project if you want to create a new activity or other feature which already has no related code. In case you want to make changes to the already present code, you will have to fork the repository(see the next heading)<br />
<br />
Log in to GitHub at http://github.com and go [https://github.com/new here]. Choose a repository name, and write a description.<br />
<br />
=== Fork A Repository ===<br />
<br />
A fork is a copy of a repository. Forking a repository allows you to freely experiment with changes without affecting the original project.<br />
<br />
Most commonly, forks are used to either propose changes to someone else's project or to use someone else's project as a starting point for your own idea.<br />
<br />
You should fork the repository first. This step is needed only once. See [https://help.github.com/articles/fork-a-repo/ complete help in github]. Brief instructions follow using [https://github.com/sugarlabs/sugar/ sugar component] as example.<br />
<br />
Navigate to the sugar repository, press Fork button, then<br />
<br />
git clone https://github.com/YOUR-NAME/sugar.git<br />
cd sugar<br />
git remote add upstream https://github.com/sugarlabs/sugar.git<br />
git fetch upstream<br />
<br />
==== Propose changes to someone else's project ====<br />
<br />
A great example of using forks to propose changes is for bug fixes. Rather than logging an issue for a bug you've found, you can:<br />
<br />
1. Fork the repository.<br />
<br />
2. Make the fix.<br />
<br />
3. Submit a pull request to the project owner.<br />
<br />
4. If the project owner likes your work, they might merge your fix and add it to the original repository!<br />
<br />
=== Sending a pull-request ===<br />
In order to request the repository's owner to consider the changes that you made in your repository and include them in the main code, you will need to make a pull request. In order to do this, just open up your repository page, `https://github.com/yourUserName/RepoName`, now you will a line just above the contents saying something like `This branch is 1 commit ahead of walterbender:master.` and you will also thus be able to see a button to create a New Pull Request for the same, then you can review the changes made and the commits to be added in that request and also a message box for the message you would want others to read, describing the changes you made. Then you can proceed to successfully creating a pull request, which will then be reviewed by others. And you can discuss on the very same page regarding whatever needs to be done. And if all is perfect, your pull request will be merged into the main code!<br />
<br />
Create one branch per topic<br />
<br />
git checkout -b topic1<br />
<br />
Make one or more commits and push the branch<br />
<br />
git push origin topic1<br />
<br />
Submit a pull request for the branch. Navigate to your repository page in github, switch to the branch you made, and then press the Pull Request button.<br />
<br />
After that, the review process will happen in the pull-request page on github. The process ends with one of this:<br />
<br />
1. A reviewer merges your request.<br />
<br />
2. A reviewer rejects your request providing reasons (and closes the request)<br />
<br />
3. A reviewer requires changes (and closes the request)<br />
<br />
In case they ask you for changes, make them using [https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History#Changing-Multiple-Commit-Messages interactive rebase]<br />
<br />
git rebase -i master<br />
<br />
Submit the changes to another remote branch<br />
<br />
git push origin topic1:topic1-try2<br />
<br />
Finally submit the new pull request through the github site as you did before.<br />
<br />
Make sure to add "Fixes #1234" to the commit message, being #1234 the number of the issue ticket related to your changes. This way, the ticket will be closed automatically.<br />
<br />
=== Create Local Repository (Clone) ===<br />
<br />
Clone it from GitHub:<br />
git clone git@github.com:username/${SLUG}.git ${SLUG}.git<br />
<br />
Replace ''${SLUG}'' with your project slug value.<br />
<br />
Once you do this, you will have a local repository directory named ${SLUG}.git that shares the same history of changes (if any) of the repository at Sugar Labs. You should only need to do this once for each project and system. You can do it again if you need a fresh copy that has no changes.<br />
<br />
=== Keep your fork synced ===<br />
<br />
You might fork a project in order to propose changes to the upstream, or original, repository. In this case, it's good practice to regularly sync your fork with the upstream repository.<br />
<br />
Don't forget to pull in changes from the master repository that is 'upstream.' To pull in upstream changes:<br />
<br />
git fetch upstream<br />
git merge upstream/master<br />
<br />
==== Note: ====<br />
1. If your local branch didn't have any unique commits, Git will instead perform a "fast-forward":<br />
<br />
2. Syncing your fork only updates your local copy of the repository. To update your fork on GitHub, you must push your changes.<br />
<br />
=== Branches ===<br />
<br />
When you're working on a project, you're going to have a bunch of different features or ideas in progress at any given time – some of which are ready to go, and others which are not. Branching exists to help you manage this workflow.<br />
<br />
When you create a branch in your project, you're creating an environment where you can try out new ideas. Changes you make on a branch don't affect the master `branch`, so you're free to experiment and commit changes, safe in the knowledge that your branch won't be merged until it's ready to be reviewed by someone you're collaborating with.<br />
<br />
It is highly recommended that all work you do, should be done in a new branch so that even in case your changes break the code(which happens quite frequently for beginners), you can always easily just remove that branch and start again, and also it helps you to work on two different features simultaneously as you can do that in separate branches.<br />
<br />
==== Using GitHub Website ====<br />
<br />
You can create a new branch in a repository's branch selector menu. Just start typing the name of your branch; if it doesn't exist, GitHub will offer to create it for you:<br />
<br />
Likewise, if you go to the Branches page on your repository, you have the option of deleting a branch, provided you have appropriate access to the repository, and that there isn’t an open pull request that depends on it:<br />
<br />
==== Using the Terminal ====<br />
<br />
The `git branch` command lets you create, list, rename, and delete branches. It doesn’t let you switch between branches or put a forked history back together again. For this reason, git branch is tightly integrated with the `git checkout` `and git merge` commands.<br />
<br />
List all of the branches in your repository:<br />
git branch<br />
<br />
Create a new branch called <branch>. This does not check out the new branch:<br />
git branch <branch><br />
<br />
Delete the specified branch. This is a “safe” operation in that Git prevents you from deleting the branch if it has unmerged changes:<br />
git branch -d <branch><br />
<br />
Force delete the specified branch, even if it has unmerged changes. This is the command to use if you want to permanently throw away all of the commits associated with a particular line of development:<br />
git branch -D <branch><br />
<br />
Rename the current branch to <branch>:<br />
git branch -m <branch><br />
<br />
Check out the specified branch, which should have already been created with git branch. This makes <existing-branch> the current branch, and updates the working directory to match:<br />
git checkout <existing-branch><br />
<br />
Create and check out <new-branch>. The -b option is a convenience flag that tells Git to run git branch <new-branch> before running git checkout <new-branch>:<br />
git checkout -b <new-branch><br />
<br />
Same as the above invocation, but base the new branch off of <existing-branch> instead of the current branch:<br />
git checkout -b <new-branch> <existing-branch><br />
<br />
Merge the specified branch into the current branch. Git will determine the merge algorithm automatically:<br />
git merge <branch><br />
<br />
Merge the specified branch into the current branch, but always generate a merge commit (even if it was a fast-forward merge). This is useful for documenting all merges that occur in your repository:<br />
git merge --no-ff <branch><br />
<br />
==== Tip ====<br />
<br />
There's only one rule: anything in the master branch is always deployable.<br />
<br />
Because of this, it's extremely important that your new branch is created off of master when working on a feature or a fix. Your branch name should be descriptive<br />
<br />
For detailed explanation, look at the [https://www.atlassian.com/git/tutorials/using-branches/git-merge '''atlassian git tutorial''']<br />
<br />
=== Commits ===<br />
<br />
Once your branch has been created, it's time to start making changes. Whenever you add, edit, or delete a file, you're making a commit, and adding them to your branch. This process of adding commits keeps track of your progress as you work on a feature branch.<br />
<br />
Commits also create a transparent history of your work that others can follow to understand what you've done and why. Each commit has an associated commit message, which is a description explaining why a particular change was made. Furthermore, each commit is considered a separate unit of change. This lets you roll back changes if a bug is found, or if you decide to head in a different direction.<br />
<br />
In your local repository, find out from git what files you changed:<br />
git status<br />
<br />
Add any files that are new or changed:<br />
git add <file path><br />
<br />
or too add all the files<br />
git add --all<br />
<br />
Tell git to collect the changes into a commit:<br />
git commit<br />
<br />
You should do this for every meaningful set of changes you make.<br />
<br />
''Note'' <code> git commit </code> ''commits your changes to your local repository only.''<br />
<br />
=== Request Review ===<br />
<br />
Before you publish changes widely, you can ask others to review your work and comment on it.<br />
<br />
git format-patch -1<br />
<br />
or<br />
<br />
git send-email<br />
<br />
You may do this for every set of changes you make.<br />
<br />
=== Testing ===<br />
<br />
We encourage testing before merging a pull-request.<br />
<br />
So instead of merging directly with the "merge" button on github UI, we do a local merge, then test, then push.<br />
<br />
See [https://help.github.com/articles/merging-a-pull-request/ github help on merging a pull-request]<br />
<br />
The github page for the pull-request will provide you the right commands to do the local merge, similar to the following.<br />
<br />
Get the changes from that branch to a new local branch:<br />
<br />
git checkout -b SOME-USER-topic1 master<br />
git pull https://github.com/SOME-USER/sugar.git topic1<br />
<br />
Test! If everything is fine, merge:<br />
<br />
git checkout master<br />
git rebase SOME-USER-topic1<br />
git push origin master<br />
<br />
=== Push Changes ===<br />
<br />
Your changes have to be pushed from your local repository to the repository at github so that others can see them there.<br />
<br />
git push<br />
<br />
You must do this for every set of changes you make, when you want to synchronise with other developers or prepare for a release.<br />
<br />
=== Close Issue ===<br />
<br />
Once your changes are merged, you should close your issue. Be sure to thank everyone who helped you out along the way :)<br />
<br />
== Other Notes ==<br />
<br />
=== Tags ===<br />
<br />
alsroot taught me about another git feature: tags<br />
<br />
git tag -m "Release 36" v36 HEAD<br />
git push --tags<br />
<br />
[[Category:Activity Team]]<br />
[[Category:HowTo]]</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Google_Code_In_2016&diff=99370Google Code In 20162016-11-13T13:46:19Z<p>Erilyth: /* This is a stub for 25+ example tasks new for GCI 2016. */</p>
<hr />
<div><noinclude>[[Category:Trac Reference]][[Category:Idea]]<br />
[[Category: GCI2015]]</noinclude><br />
<br />
This is the project page for the Sugar Labs application to [https://developers.google.com/open-source/gci/ Google Code In 2016]. Sugar Labs community members: please feel free to add tasks below. We'll do an edit before final applications are due the first week of November 2016.<br />
<br />
== Message to potential participants ==<br />
<br />
It is important that you obtain permission of your parents.<br />
<br />
Es importante que obtengas el permiso de tus padres para participar.<br />
<br />
https://developers.google.com/open-source/gci/resources/contest-rules<br />
<br />
Please see the Contest Rules for Eligibility and Registration process.<br />
<br />
https://developers.google.com/open-source/gci/resources/contest-rules<br />
<br />
'''Details regarding the required forms and paperwork are here: [[Google Code In 2015/Participate#Students]].'''<br />
<br />
Also, you will likely need to set up the Sugar development environment. See http://developer.sugarlabs.org/dev-environment.md.html for details. Further information about contributing to the project can be found here: http://developer.sugarlabs.org/<br />
<br />
Please don't hesitate to ask questions on our irc channel (#sugar on irc.freenode.net) or on the sugar-devel list: sugar-devel AT lists.sugarlabs DOT org<br />
<br />
== Why we are participating ==<br />
<br />
Sugar is written and maintained by volunteers, who range from seasoned professionals to children as young as 12-years of age. Children who have grown up with Sugar have transitioned from Sugar users to Sugar App developers to Sugar maintainers. They hang out on IRC with the global Sugar developer community and are full-fledged members of the Sugar development team. It is this latter group of children we hope will participate in and benefit from Google Code-in. Specifically we want to re-enforce the message that Sugar belongs to its users and that they have both ownership and the responsibility that ownership implies. Just as learning is not something done to you, but something you do, learning with Sugar ultimately means participating in the Sugar development process. At Sugar Labs, we are trying to bring the culture of Free Software into the culture of school. So the Code-in is not just an opportunity for us to get some tasks accomplished, it is quintessential to our overall mission.<br />
<br />
== Some background from GCI ==<br />
<br />
[See https://developers.google.com/open-source/gci/resources/getting-started]<br />
<br />
===Open Source Fundamentals ===<br />
<br />
You can contribute without being a coder!<br />
You do not have to be a coder to contribute to open source. There are many different skill sets needed to help an open source community thrive:<br />
;Documentation: If you are a good writer and enjoy attention to detail then you might want to contribute by writing or editing documentation. Documentation is a huge part of a successful open source project. Organizations need documentation to help attract new contributors as it helps them see what the codebase looks like and where things are and what the plan is for the project.<br />
;Research: An organization may need help crunching numbers or sorting through pages of documents to better understand what the users want or need. There are many different types of tasks that students could work on that are very important to the health of the project.<br />
;Outreach: If you have an outgoing personality and like being around and talking to people, take a look at the outreach tasks. Outreach tasks often include hosting meetups in your local community or creating a plan on how people around the globe can host a meetup about the project in their local communities.<br />
;Training: You could create a YouTube video discussing a new feature of the project or maybe some basics on what the project does so people who haven’t heard about it can understand the project and get involved.<br />
;User Interface: User interface can include many types of tasks including designing new aspects of a webpage or creating a new logo for the project. It may also include various accessibility opportunities to help make the project easier for people who are blind.<br />
;Other: If you have an idea that may help an organization, reach out to them and let them know! Sometimes the best task is one that the organization hasn’t even considered yet.<br />
=== Collaboration===<br />
Open source is not just about coding but working with other people to find the best solution. Being a part of the community is an essential part of success in Google Code-in. Mentors tell us every year that their best students were the ones who worked hard on their projects but also participated on IRC and helped answer questions other students had. Collaborate with the community and mentors on the #sugar channel in the irc.freenode.net network.<br />
<br />
=== Quality over Quantity === <br />
<br />
It’s not about being the student who completes the most tasks, that only gets you to the top 10 to be reviewed, it doesn’t mean you will be a grand prize winner. We have had quite a few students who completed the most tasks for their organization yet were not named as Grand Prize Winners because they did everything solo and didn’t get involved in the community or think about the health of the project as a whole, they just kept completing task after task like a machine. If you actively participate in the community then you not only feel the camaraderie that comes with working as a team but you become committed to making the project better for everyone.<br />
<br />
== Some basics about Sugar Labs ==<br />
<br />
For some basics about the project, see [http://people.sugarlabs.org/walter/docs/Learning-to-Change-the-World-Chapter-4.pdf Chapter 4 of Learning to Change the World].<br />
<br />
=== Getting started with coding ===<br />
<br />
Sugar development is in either Python or Javascript.<br />
<br />
* You will need knowledge of Python and GTK (See http://python-gtk-3-tutorial.readthedocs.org/en/latest/);<br />
* or Javascript/HTML5;<br />
* and then the basic of Sugar development (See http://www.flossmanuals.net/make-your-own-sugar-activities/);<br />
* and to have a Sugar development environment running (See http://developer.sugarlabs.org).<br />
<br />
Please note that you must run [http://legacy.python.org/dev/peps/pep-0008/#introduction pep8] and pyflakes on your code ''before'' submitting your patches.<br />
<br />
=== Getting started with GIT ===<br />
<br />
Some knowledge of git is important as your work will be submitted to our git repository (https://github.com/sugarlabs). The basic mechanism is a pull request (PR), which is detailed in [http://developer.sugarlabs.org/contributing.md.html].<br />
<br />
GitHub provides a tutorial (See https://try.github.io/levels/1/challenges/1), although there are many others as well.<br />
<br />
Note that our bug tracker is http:bugs.sugarlabs.org.<br />
<br />
=== Getting started with Sugarizer === <br />
<br />
Sugar Web Framework is the JavaScript Framework for Sugar [https://github.com/sugarlabs/sugar-docs/blob/master/web-architecture.md]. Sugarizer [http://sugarizer.org] is a subset of Sugar that allow runing activities developed with Sugar Web Framework on any web browser. Sugarizer is also available as Android, iOS, Firefox OS and Chrome Web App.<br />
<br />
== This is a stub for 25+ example tasks new for GCI 2016. ==<br />
<br />
# Investigate Google Fuzzing tool (Research)<br />
# Decimal places in Calculate activity (Code: Pyhton)<br />
# Music Blocks examples (Documentation/Training)<br />
# Space team activity (Code: Python)<br />
# Bugzilla clean up (QA)<br />
# Teach me how to draw activity (Code: Javascript)<br />
# Manage order of blocks in Turtle plugins (Code: Javascript)<br />
# Plugin manager for Turtle JS (Code: Javascript)<br />
# Refactor pitch-time matrix code (Code: Javascript)<br />
# Fix scrolling problem with pitch-time matrix (Code: Javascript)<br />
# Refactor Training activity to be non-specific to Australia (Code: Python)<br />
# Refactor Turtle graphics to adopt look of Javascript version (Code: Python)<br />
# Improvements to Lilypond interface (Code: Javascript)<br />
# Add drum icons in Music Blocks (Design)<br />
# Add more synths/sound fonts to Music Blocks (Research)<br />
# Add ABC import to Music Blocks (Code: Javascript)<br />
# Add ABC export to Music Blocks (Code: Javascript)<br />
# Add Lilypond import to Music Blocks (Code: Javascript)<br />
# Refactor Planet server for Turtle Blocks (Code: Python)<br />
# Research graphics caching in Turtle (Research)<br />
# Wiki cleanup (Documentation)<br />
# Make trash areas smaller on Turtle (Code: Javascript)<br />
# Write a Turtle plugin (Code: Javascript)<br />
# Write a Pinetrest plugin for the Sugar Journal (Code: Python)<br />
# Investigate CSound/Python version of Music Blocks (Code: Python)<br />
# Add synth lab widget to Music Blocks (Code: Javascript)<br />
# Backport a web plugin from Turtle Blocks JS to Python (Code: Python)<br />
# Turtle write directly to the canvas instead of using Easel (Code: Javascript)<br />
# Visualize turtle movements in Pitch-Time Matrix (Code: Javascript)<br />
# Visualize turtle pitch in Music Blocks project (Code: Music Blocks)<br />
# Visualize turtle pitch in Music Blocks widget (Code: Javascript)<br />
# Synonym-Antonym activity to classify them correctly (Code: Javascript)<br />
# Create a zoo activity - Differentiate between animals, birds, reptiles etc (Code: Javascript)<br />
# Laser mirror reflection game activity<br />
<br />
<!-- Begin comment out this section<br />
<br />
== Tasks ==<br />
'''Note:''' This is our preliminary list of tasks. We can add more as the contest progresses.<br />
<br />
Mentors: please feel free to add more tasks and/or add yourself as a potential mentor to an existing task.<br />
<br />
Tasks must fall within one of these five categories: [[#Documentation/Training]]; [[#Outreach/Research]]; [[#User Interface]]; [[#Quality Assurance]]; and [[#Code]].<br />
<br />
End of commented out section --><br />
<br />
===Beginner Tasks===<br />
We have several tasks that are targeting people new to Sugar and Sugar development. You are only allowed to complete two beginner tasks.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Install the Sugar development environment||Following the instruction at [http://developer.sugarlabs.org/dev-environment.md.html], set up the Sugar development environment. Submit a screen-shot of the development environment running to complete this task. You can get help on our irc channel should you run into any difficulties.|| 48 || all || beginner<br />
|-<br />
|Install Sugar in a virtual machine||If your intention is to focus on documentation and training or outreach, then you may want to install Sugar in a virtual machine. Following the instructions at [http://wiki.sugarlabs.org/go/Sugar_Creation_Kit#Tutorials][http://wiki.sugarlabs.org/go/Sugar_on_a_Stick/Virtual_machines][http://wiki.sugarlabs.org/go/Downloads#Virtual_Machines_on_all_platforms], set up the Sugar development environment. Submit a screen-shot of the development environment running to complete this task. You can get help on our irc channel should you run into any difficulties.|| 48 || all || beginner<br />
|-<br />
|Create an example program in Turtle Blocks||We distribute examples with the Turtle Blocks programming environment. Create your example -- some art, some geometry, some multimedia, a simple game -- to be included with the package. Deliverable is a Turtle Blocks project file to be reviewed by Sugar Labs designers and educators. (Use either the Python version bundled with Sugar or the Javascript version at [http://turtle.sugarlabs.org Turtle Blocks JS]) One source of inspiration might be [https://www.pinterest.com/walterbender/turtle-art/]. || 48 || all || beginner<br />
|-<br />
|Create an example program in Music Blocks||We distribute examples with the [http://walterbender.github.io/musicblocks Music Blocks] programming environment. Create your example -- some music (and art) -- to be included with the package. Deliverable is a Music Blocks project file to be reviewed by Sugar Labs designers and educators. || 48 || all || beginner<br />
|-<br />
|Create a simple machine in Physics||We distribute examples with the [http://activities.sugarlabs.org/en-US/sugar/addon/4193 Physics Activity]. Create a simple machine we can include in the examples collection -- some interesting mechanical device. Deliverable is a Physics activity project file to be reviewed by Sugar Labs designers and educators. || 48 || all || beginner<br />
|}<br />
<br />
===Documentation/Training===<br />
Tasks related to creating/editing documents and helping others learn more<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Update the Sugar Labs entry in Wikipedia|| The Sugar Labs entry in Wikipedia could use some TLC. Please bring it up to date. || 48 || Walter || Documentation<br />
|-<br />
|Update the Sugar Labs wiki page on git||The [[Activity Team/Git Tutorial]] is out of date: we have migrated to GitHub. Please update the page to reflect the GitHub workflow. See http://developer.sugarlabs.org/contributing.md.html for more details || 48 || Walter || Documentation<br />
|-<br />
|Turtle Blocks Programming Guide 1|| Add live examples missing from the [https://github.com/walterbender/turtleblocksjs/blob/master/guide/README.md Guide to Programming with Turtle Blocks]. || 48 || Walter || Documentation<br />
|-<br />
|Turtle Blocks Programming Guide 2|| Extend the [https://github.com/walterbender/turtleblocksjs/blob/master/guide/README.md Guide to Programming with Turtle Blocks] to include more examples. || 48 || Walter || Documentation<br />
|-<br />
|Music Blocks Programming Guide|| Extend the [https://github.com/walterbender/musicblocks/blob/master/guide/README.md Guide to Programming with Music Blocks] to include more examples. || 48 || Walter || Documentation<br />
|-<br />
|Turtle Blocks Classroom Guide||Write a guide on how to use Turtle Blocks in the classroom -- a manual for teachers who might want to engage in programming. Please consult with a classroom teacher when creating the guide.|| 96 || Walter || Documentation<br />
|-<br />
|Music Blocks Classroom Guide||Write a guide on how to use Music Blocks in the classroom -- a manual for teachers who might want to engage in programming with Music. Please consult with a music teacher when creating the guide.|| 96 || Walter || Documentation<br />
|-<br />
|Sugarizer Server API Documentation||Write a documentation for the REST API for Sugarizer Server. Include some GET/POST/DELETE sample inside || 48|| Lionel || Documentation<br />
|-<br />
|Sugarizer Server Collaboration Tutorial||Write a tutorial on how to connect a Sugarizer Client to a Sugarizer Server and how to use it to do Journal sharing and collaboration || 24 || Lionel || Documentation<br />
|-<br />
|Sugarizer wiki page||Write a Sugarizer page in the SugarLabs wiki || 24 || Lionel || Documentation<br />
|}<br />
<br />
For information about how to create help pages for activities <br />
<br />
http://wiki.sugarlabs.org/go/Activities/Help/Contribute<br />
<br />
https://github.com/godiard/help-activity/blob/master/source/restructuredtext.rst<br />
<br />
https://github.com/godiard/help-activity/blob/master/source/collaborating.rst<br />
<br />
===Outreach/Research===<br />
Tasks related to community management, outreach/marketing, or studying problems and recommending solutions<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Turtle Art Day||Organize a Turtle Art Day in your community. Details at [http://people.sugarlabs.org/walter/Guia_Ingles_10-08-2013.pdf]||96||Walter||Outreach<br />
|-<br />
|Promo Video||Create a 60 second promotional video on Sugar and its community.||96||Mariah||Outreach<br />
|-<br />
|Hangout Q&A||Host a Question and Answer (Q&A)/Information session about Sugar on Google Hangouts. Invite friends, family, peers, as well as academic and community leaders.||96||Mariah||Outreach<br />
|-<br />
|Local Lab Wiki||Create/update a "Local Lab" page for your area/country. Fill in the page with information on the Sugar community in your area. This could include contact information, mailing lists, events and any other information that may be relevant. ||96||Mariah||Research<br />
|-<br />
|How-To Guide||Create a guide for how to host your own DIY Sugar on a Stick party. The guide should include at least two promotional item designs (like a sticker, brochure, flyer). Feel free to change the name to something else. ||96||Mariah||Outreach<br />
|-<br />
|DIY Sugar on a Stick||Organize and host a Sugar on a Stick party where you show people how to make their own Sugar on a Stick. Then, hold a workshop on the basics of using Sugar. Take pictures to document the experience. Post a blog about it.||96||Mariah||Outreach<br />
|-<br />
|Potential Users||Gather information on who could benefit from using or knowing about Sugar. Look at non-profit organizations, academic institutions, the home-school community. Build a database including contact information, website URLS, social media profiles, and any other relevant information.||96||Mariah||Research<br />
|-<br />
|Sugar Tools & Resources||Find the resources that people are using throughout the world to learn about or teach Sugar Activities. This can include manuals, teacher guides, YouTube videos, blogs, etc. Document what type of resource it is, the URL for the resource, the target audience of the resource and whether it is up-to-date.||96||Mariah||Research<br />
|-<br />
|Introduce Yourself||Write a blog post about why you are participating in Google Code-In, what you hope to learn from the GCI and how Sugar Labs can help you. Include a picture. Share blog post through social media.||48||Mariah||Outreach<br />
|-<br />
|Interview a GCI Peer||Interview another Sugar Labs GCI participant. Ask them questions about how they are selecting/completing tasks, any successes/struggles they are having, etc. Post on participant blog. Share blog post through social media.||48||Mariah||Outreach<br />
|--<br />
|Interview an Educator||Find an educator who is using open-source educational software to teach. Interview the educator about their experience as an educator and why they are using open-source software to teach. Post about it on the blog, include a picture. Share the blog post through social media and with the educator.||48||Mariah||Outreach|<br />
|-<br />
|Review an Activity||Write a review about an Activity in Sugar. Explain how you use it, what kind of project you could do with it, any bugs it might have, etc. Post your review. The review can be a video review or a written review with screenshots. Share the blog post through social media.||48||Mariah||Outreach<br />
|-<br />
|Women in the Sugar Community||Create a 10-minute presentation celebrating at least three women within the Sugar community and/or the open-source community at large. Write a blog post about what you learned when making this presentation and include a link to the presentation.||48||Mariah||Outreach<br />
|-<br />
|Wrap-Up||Write a blog post about your experience as a GCI participant for Sugar Labs. Share your thoughts on what was successful and what can be improved for next year's participants. Feel free to include pictures, videos, links to work that you are most proud of. Share the post through social media.||48||Mariah||Outreach<br />
|}<br />
<br />
===User Interface===<br />
Tasks related to user experience research or user interface design and interaction<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Icon design for Music Blocks||The icons used for the main toolbar in Music Block don't "sing" to me. This task is to design better icons both in terms of expressing the intention of the button and visual engagement of the user. || 72 || Walter, Devin || UI, design<br />
|-<br />
|Classroom collaboration|| Sugar provides tools for sharing and collaborating among students, e.g., peer editing of texts, chat, group programming, etc. Survey the list of collaboration-enabled activities and categorize them by whether they are learning utilities, classroom management utilities, communication, games, etc. || 72 || Walter || UI, pedagogy<br />
|-<br />
|Classroom management 1|| Sugar provides only a few tools for classroom management, e.g., the Share With Teacher webservice. Survey classroom services that run either as web services or native in desktop environments.|| 72 || Walter || UI, pedagogy<br />
|-<br />
|Classroom management 2|| Sugar provides only a few tools for classroom management, e.g., the Share With Teacher webservice. Which of the results from the Classroom management 1 task would be useful to incorporate into the Sugar ecosystem? Evaluation should include s description of the service and a sketch of how the user interaction would work. || 72 || Walter || UI, pedagogy<br />
|-<br />
|Sugar on a small screen|| Sugar was originally designed as a desktop environment for small computers. But these days, many children have access to smart phones rather than computers. This task is to make some sketches as to how Sugar might be redesigned for a smart phone form-factor. A series of annotated sketches should be made as part of completing this task. || 72 || Walter || UI<br />
|-<br />
|Programming on a small screen|| We put an emphasis on programming in Sugar. One popular programming environment is Turtle Blocks. Recently we made a Javascript version that can run in a browser (and hence on a smart phone). How should the UI change to accommodate that form-factor? A series of annotated sketches should be made as part of completing this task. || 72 || Walter || UI<br />
|-<br />
|End-user customization||We try to encourage our users to re-imagine Sugar as they'd like it. Users can change the icon layout, the background screen, and the XO avatar. What else should be made easier to customize with minimal programming? || 72 || Walter || UI<br />
|-<br />
|Sugarizer marketing web page||Create a marketing web page to explain what is Sugarizer and replace the [http://sugarizer.org current one] || 40 || Lionel || UI<br />
|}<br />
<br />
===Quality Assurance===<br />
Tasks related to testing and ensuring code is of high quality.<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Behavior diff for Turtle Blocks JS|| [https://turtle.sugarlabs.org Turtle Blocks JS] is a Javascript port from the Python version of the activity. The goal of this task is to document any differences in behavior between the two versions.||72||Walter||QA<br />
|-<br />
|Unit tests for JS activities||We have no unit tests for our Javascript activities. This task is to investigate approaches to unit testing in Javascript||72||Walter||QA<br />
|-<br />
|Test Sugar on a Stick || Help test the latest Sugar on a Stick on Fedora (F24). See https://wiki.sugarlabs.org/go/Fedora_24#fedora_24, [http://dl.fedoraproject.org/pub/alt/unofficial/releases/24/ #fedora-qa (freenode IRC). Deliverable is a report of the major Sugar features, e.g., desktop, journal, collaboration, and the core activities, e.g., Write, Browse, Turtle, Chat, Speak, etc. || 48 || Satellit || QA, SoaS<br />
|-<br />
|fix f25 Soas|f25 Soas currently does not login to liveuser.|| see: https://bugzilla.redhat.com/show_bug.cgi?id=1363915, https://qa.fedoraproject.org/blockerbugs/milestone/25/final/buglist], Task is to fix this bug||72|| || QA<br />
|-<br />
|Interview a teacher|| Ultimately the quality of our work is determined by our end users. Interview a classroom teacher who is using Sugar and solicit feedback about what works, what doesn't. || 72 || Walter || QA<br />
|-<br />
|Interview a student|| Ultimately the quality of our work is determined by our end users. Interview a student who is using Sugar in school and solicit feedback about what works, what doesn't. || 72 || Walter || QA<br />
|}<br />
<br />
<!-- Begin comment out this section<br />
===Code===<br />
Tasks related to writing or refactoring code<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
| Turtle Confusion in Javascript || [http://activities.sugarlabs.org/en-US/sugar/addon/4450 Turtle Confusion] presents 40 shape challenges to the learner that must be completed using basic Logo-blocks. The challenges as based on Barry Newell's 1988 book, Turtle Confusion: Logo Puzzles and Riddles. This task is to implement Turtle Confusion within the framework of the [http://turtle.sugarlabs.org JavaScript version of Turtle Blocks].|| 72 || Walter || Code, JavaScript<br />
|-<br />
| Turtle Blocks JS: Loudness block doesn't work on Windows || [[https://github.com/walterbender/turtleblocksjs/issues/238] Issue 238 || 72 || Walter, Amit || Code, JavaScript<br />
|-<br />
| Turtle Blocks JS: Cannot import images on Android || [[https://github.com/walterbender/turtleblocksjs/issues/237] Issue 237 || 72 || Walter, Amit || Code, JavaScript<br />
|-<br />
| Turtle Blocks JS: Camera doesn't work on Android || [[https://github.com/walterbender/turtleblocksjs/issues/236] Issue 236 || 72 || Walter, Amit || Code, JavaScript<br />
|-<br />
| Music Blocks Android || [https://github.com/walterbender/musicblocks/issues/51 Issue 51] does Tonejs work on Android? is there an alternative? || 72 || Walter, Devin || Code, JavaScript<br />
|-<br />
| Music Blocks Safari download || [https://github.com/walterbender/musicblocks/issues/37 Issue 37] Safari does not "download" the .tb files, it just opens a new window with the code in it. || 72 || Walter, Devin || Code, JavaScript<br />
|}<br />
<br />
End of commented out section --><br />
<br />
<!--<br />
== Unsorted tasks ==<br />
=== Sugar enhancements from bugs.sugarlabs.org ===<br />
Each of these open tickets is potential task-worthy.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Ticket !! Description !! Type !! Component<br />
|-<br />
| [http://bugs.sugarlabs.org/ticket/1646 1646] || No way to force-close (kill) an activity || enhancement || Sugar<br />
|}<br />
<br />
=== Sugar bugs from bugs.sugarlabs.org ===<br />
Each of these open tickets is potential task-worthy.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Ticket !! Description !! Type !! Component<br />
|-<br />
| [http://bugs.sugarlabs.org/ticket/4307 4307] || clipboard.set_with_data/set_with_owner is not introspectable || defect || Sugar<br />
|}<br />
<br />
=== Activity enhancements from bugs.sugarlabs.org ===<br />
Each of these open tickets is potential task-worthy.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Ticket !! Description !! Component<br />
|-<br />
| [http://bugs.sugarlabs.org/ticket/758 758] || Port to new tube API || Read<br />
|}<br />
--><br />
<br />
== Mentors ==<br />
;NOTES TO MENTORS:<br />
:Please refer to [[Google Code In 2016/Participate#Mentors]] for details regarding enrolling as a mentor.<br />
:Please add yourself to the list below.<br />
:Feel free to add new tasks to the table above.<br />
<br />
Depending on the project, we will assign multiple mentors from our various development and support teams.<br />
<br />
* Walter Bender - also org admin for GCI<br />
* Sam Parkinson<br />
* Ignacio Rodriguez<br />
* Lionel Laské<br />
* Batchu Venkat Vishal<br />
* Ibiam Chihurumnaya<br />
* Utkarsh Tiwari<br />
* Abhijit Patel<br />
* Julio Reyes</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Google_Code_In_2016&diff=99361Google Code In 20162016-11-11T18:24:36Z<p>Erilyth: /* This is a stub for 25+ example tasks new for GCI 2016. */</p>
<hr />
<div><noinclude>[[Category:Trac Reference]][[Category:Idea]]<br />
[[Category: GCI2015]]</noinclude><br />
<br />
This is the project page for the Sugar Labs application to [https://developers.google.com/open-source/gci/ Google Code In 2016]. Sugar Labs community members: please feel free to add tasks below. We'll do an edit before final applications are due the first week of November 2016.<br />
<br />
== Message to potential participants ==<br />
<br />
It is important that you obtain permission of your parents.<br />
<br />
Es importante que obtengas el permiso de tus padres para participar.<br />
<br />
https://developers.google.com/open-source/gci/resources/contest-rules<br />
<br />
Please see the Contest Rules for Eligibility and Registration process.<br />
<br />
https://developers.google.com/open-source/gci/resources/contest-rules<br />
<br />
'''Details regarding the required forms and paperwork are here: [[Google Code In 2015/Participate#Students]].'''<br />
<br />
Also, you will likely need to set up the Sugar development environment. See http://developer.sugarlabs.org/dev-environment.md.html for details. Further information about contributing to the project can be found here: http://developer.sugarlabs.org/<br />
<br />
Please don't hesitate to ask questions on our irc channel (#sugar on irc.freenode.net) or on the sugar-devel list: sugar-devel AT lists.sugarlabs DOT org<br />
<br />
== Why we are participating ==<br />
<br />
Sugar is written and maintained by volunteers, who range from seasoned professionals to children as young as 12-years of age. Children who have grown up with Sugar have transitioned from Sugar users to Sugar App developers to Sugar maintainers. They hang out on IRC with the global Sugar developer community and are full-fledged members of the Sugar development team. It is this latter group of children we hope will participate in and benefit from Google Code-in. Specifically we want to re-enforce the message that Sugar belongs to its users and that they have both ownership and the responsibility that ownership implies. Just as learning is not something done to you, but something you do, learning with Sugar ultimately means participating in the Sugar development process. At Sugar Labs, we are trying to bring the culture of Free Software into the culture of school. So the Code-in is not just an opportunity for us to get some tasks accomplished, it is quintessential to our overall mission.<br />
<br />
== Some background from GCI ==<br />
<br />
[See https://developers.google.com/open-source/gci/resources/getting-started]<br />
<br />
===Open Source Fundamentals ===<br />
<br />
You can contribute without being a coder!<br />
You do not have to be a coder to contribute to open source. There are many different skill sets needed to help an open source community thrive:<br />
;Documentation: If you are a good writer and enjoy attention to detail then you might want to contribute by writing or editing documentation. Documentation is a huge part of a successful open source project. Organizations need documentation to help attract new contributors as it helps them see what the codebase looks like and where things are and what the plan is for the project.<br />
;Research: An organization may need help crunching numbers or sorting through pages of documents to better understand what the users want or need. There are many different types of tasks that students could work on that are very important to the health of the project.<br />
;Outreach: If you have an outgoing personality and like being around and talking to people, take a look at the outreach tasks. Outreach tasks often include hosting meetups in your local community or creating a plan on how people around the globe can host a meetup about the project in their local communities.<br />
;Training: You could create a YouTube video discussing a new feature of the project or maybe some basics on what the project does so people who haven’t heard about it can understand the project and get involved.<br />
;User Interface: User interface can include many types of tasks including designing new aspects of a webpage or creating a new logo for the project. It may also include various accessibility opportunities to help make the project easier for people who are blind.<br />
;Other: If you have an idea that may help an organization, reach out to them and let them know! Sometimes the best task is one that the organization hasn’t even considered yet.<br />
=== Collaboration===<br />
Open source is not just about coding but working with other people to find the best solution. Being a part of the community is an essential part of success in Google Code-in. Mentors tell us every year that their best students were the ones who worked hard on their projects but also participated on IRC and helped answer questions other students had. Collaborate with the community and mentors on the #sugar channel in the irc.freenode.net network.<br />
<br />
=== Quality over Quantity === <br />
<br />
It’s not about being the student who completes the most tasks, that only gets you to the top 10 to be reviewed, it doesn’t mean you will be a grand prize winner. We have had quite a few students who completed the most tasks for their organization yet were not named as Grand Prize Winners because they did everything solo and didn’t get involved in the community or think about the health of the project as a whole, they just kept completing task after task like a machine. If you actively participate in the community then you not only feel the camaraderie that comes with working as a team but you become committed to making the project better for everyone.<br />
<br />
== Some basics about Sugar Labs ==<br />
<br />
For some basics about the project, see [http://people.sugarlabs.org/walter/docs/Learning-to-Change-the-World-Chapter-4.pdf Chapter 4 of Learning to Change the World].<br />
<br />
=== Getting started with coding ===<br />
<br />
Sugar development is in either Python or Javascript.<br />
<br />
* You will need knowledge of Python and GTK (See http://python-gtk-3-tutorial.readthedocs.org/en/latest/);<br />
* or Javascript/HTML5;<br />
* and then the basic of Sugar development (See http://www.flossmanuals.net/make-your-own-sugar-activities/);<br />
* and to have a Sugar development environment running (See http://developer.sugarlabs.org).<br />
<br />
Please note that you must run [http://legacy.python.org/dev/peps/pep-0008/#introduction pep8] and pyflakes on your code ''before'' submitting your patches.<br />
<br />
=== Getting started with GIT ===<br />
<br />
Some knowledge of git is important as your work will be submitted to our git repository (https://github.com/sugarlabs). The basic mechanism is a pull request (PR), which is detailed in [http://developer.sugarlabs.org/contributing.md.html].<br />
<br />
GitHub provides a tutorial (See https://try.github.io/levels/1/challenges/1), although there are many others as well.<br />
<br />
Note that our bug tracker is http:bugs.sugarlabs.org.<br />
<br />
=== Getting started with Sugarizer === <br />
<br />
Sugar Web Framework is the JavaScript Framework for Sugar [https://github.com/sugarlabs/sugar-docs/blob/master/web-architecture.md]. Sugarizer [http://sugarizer.org] is a subset of Sugar that allow runing activities developed with Sugar Web Framework on any web browser. Sugarizer is also available as Android, iOS, Firefox OS and Chrome Web App.<br />
<br />
== This is a stub for 25+ example tasks new for GCI 2016. ==<br />
<br />
# Investigate Google Fuzzing tool (Research)<br />
# Decimal places in Calculate activity (Code: Pyhton)<br />
# Music Blocks examples (Documentation/Training)<br />
# Space team activity (Code: Python)<br />
# Bugzilla clean up (QA)<br />
# Teach me how to draw activity (Code: Python)<br />
# Manage order of blocks in Turtle plugins (Code: Javascript)<br />
# Plugin manager for Turtle JS (Code: Javascript)<br />
# Refactor pitch-time matrix code (Code: Javascript)<br />
# Fix scrolling problem with pitch-time matrix (Code: Javascript)<br />
# Refactor Training activity to be non-specific to Australia (Code: Python)<br />
# Refactor Turtle graphics to adopt look of Javascript version (Code: Python)<br />
# Improvements to Lilypond interface (Code: Javascript)<br />
# Add drum icons in Music Blocks (Design)<br />
# Add more synths/sound fonts to Music Blocks (Research)<br />
# Add ABC import to Music Blocks (Code: Javascript)<br />
# Add ABC export to Music Blocks (Code: Javascript)<br />
# Add Lilypond import to Music Blocks (Code: Javascript)<br />
# Refactor Planet server for Turtle Blocks (Code: Python)<br />
# Research graphics caching in Turtle (Research)<br />
# Wiki cleanup (Documentation)<br />
# Make trash areas smaller on Turtle (Code: Javascript)<br />
# Write a Turtle plugin (Code: Javascript)<br />
# Write a Pinetrest plugin for the Sugar Journal (Code: Python)<br />
# Investigate CSound/Python version of Music Blocks (Code: Python)<br />
# Add synth lab widget to Music Blocks (Code: Javascript)<br />
# Backport a web plugin from Turtle Blocks JS to Python (Code: Python)<br />
# Turtle write directly to the canvas instead of using Easel (Code: Javascript)<br />
# Visualize turtle movements in Pitch-Time Matrix (Code: Javascript)<br />
# Visualize turtle pitch in Music Blocks project (Code: Music Blocks)<br />
# Visualize turtle pitch in Music Blocks widget (Code: Javascript)<br />
# Synonym-Antonym activity to classify them correctly (Code: Javascript)<br />
# Create a zoo activity - Differentiate between animals, birds, reptiles etc (Code: Javascript)<br />
# Laser mirror reflection game activity<br />
<br />
<!-- Begin comment out this section<br />
<br />
== Tasks ==<br />
'''Note:''' This is our preliminary list of tasks. We can add more as the contest progresses.<br />
<br />
Mentors: please feel free to add more tasks and/or add yourself as a potential mentor to an existing task.<br />
<br />
Tasks must fall within one of these five categories: [[#Documentation/Training]]; [[#Outreach/Research]]; [[#User Interface]]; [[#Quality Assurance]]; and [[#Code]].<br />
<br />
End of commented out section --><br />
<br />
===Beginner Tasks===<br />
We have several tasks that are targeting people new to Sugar and Sugar development. You are only allowed to complete two beginner tasks.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Install the Sugar development environment||Following the instruction at [http://developer.sugarlabs.org/dev-environment.md.html], set up the Sugar development environment. Submit a screen-shot of the development environment running to complete this task. You can get help on our irc channel should you run into any difficulties.|| 48 || all || beginner<br />
|-<br />
|Install Sugar in a virtual machine||If your intention is to focus on documentation and training or outreach, then you may want to install Sugar in a virtual machine. Following the instructions at [http://wiki.sugarlabs.org/go/Sugar_Creation_Kit#Tutorials][http://wiki.sugarlabs.org/go/Sugar_on_a_Stick/Virtual_machines][http://wiki.sugarlabs.org/go/Downloads#Virtual_Machines_on_all_platforms], set up the Sugar development environment. Submit a screen-shot of the development environment running to complete this task. You can get help on our irc channel should you run into any difficulties.|| 48 || all || beginner<br />
|-<br />
|Create an example program in Turtle Blocks||We distribute examples with the Turtle Blocks programming environment. Create your example -- some art, some geometry, some multimedia, a simple game -- to be included with the package. Deliverable is a Turtle Blocks project file to be reviewed by Sugar Labs designers and educators. (Use either the Python version bundled with Sugar or the Javascript version at [http://turtle.sugarlabs.org Turtle Blocks JS]) One source of inspiration might be [https://www.pinterest.com/walterbender/turtle-art/]. || 48 || all || beginner<br />
|-<br />
|Create an example program in Music Blocks||We distribute examples with the [http://walterbender.github.io/musicblocks Music Blocks] programming environment. Create your example -- some music (and art) -- to be included with the package. Deliverable is a Music Blocks project file to be reviewed by Sugar Labs designers and educators. || 48 || all || beginner<br />
|-<br />
|Create a simple machine in Physics||We distribute examples with the [http://activities.sugarlabs.org/en-US/sugar/addon/4193 Physics Activity]. Create a simple machine we can include in the examples collection -- some interesting mechanical device. Deliverable is a Physics activity project file to be reviewed by Sugar Labs designers and educators. || 48 || all || beginner<br />
|}<br />
<br />
===Documentation/Training===<br />
Tasks related to creating/editing documents and helping others learn more<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Update the Sugar Labs entry in Wikipedia|| The Sugar Labs entry in Wikipedia could use some TLC. Please bring it up to date. || 48 || Walter || Documentation<br />
|-<br />
|Update the Sugar Labs wiki page on git||The [[Activity Team/Git Tutorial]] is out of date: we have migrated to GitHub. Please update the page to reflect the GitHub workflow. See http://developer.sugarlabs.org/contributing.md.html for more details || 48 || Walter || Documentation<br />
|-<br />
|Turtle Blocks Programming Guide 1|| Add live examples missing from the [https://github.com/walterbender/turtleblocksjs/blob/master/guide/README.md Guide to Programming with Turtle Blocks]. || 48 || Walter || Documentation<br />
|-<br />
|Turtle Blocks Programming Guide 2|| Extend the [https://github.com/walterbender/turtleblocksjs/blob/master/guide/README.md Guide to Programming with Turtle Blocks] to include more examples. || 48 || Walter || Documentation<br />
|-<br />
|Music Blocks Programming Guide|| Extend the [https://github.com/walterbender/musicblocks/blob/master/guide/README.md Guide to Programming with Music Blocks] to include more examples. || 48 || Walter || Documentation<br />
|-<br />
|Turtle Blocks Classroom Guide||Write a guide on how to use Turtle Blocks in the classroom -- a manual for teachers who might want to engage in programming. Please consult with a classroom teacher when creating the guide.|| 96 || Walter || Documentation<br />
|-<br />
|Music Blocks Classroom Guide||Write a guide on how to use Music Blocks in the classroom -- a manual for teachers who might want to engage in programming with Music. Please consult with a music teacher when creating the guide.|| 96 || Walter || Documentation<br />
|-<br />
|Sugarizer Server API Documentation||Write a documentation for the REST API for Sugarizer Server. Include some GET/POST/DELETE sample inside || 48|| Lionel || Documentation<br />
|-<br />
|Sugarizer Server Collaboration Tutorial||Write a tutorial on how to connect a Sugarizer Client to a Sugarizer Server and how to use it to do Journal sharing and collaboration || 24 || Lionel || Documentation<br />
|-<br />
|Sugarizer wiki page||Write a Sugarizer page in the SugarLabs wiki || 24 || Lionel || Documentation<br />
|}<br />
<br />
For information about how to create help pages for activities <br />
<br />
http://wiki.sugarlabs.org/go/Activities/Help/Contribute<br />
<br />
https://github.com/godiard/help-activity/blob/master/source/restructuredtext.rst<br />
<br />
https://github.com/godiard/help-activity/blob/master/source/collaborating.rst<br />
<br />
===Outreach/Research===<br />
Tasks related to community management, outreach/marketing, or studying problems and recommending solutions<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Turtle Art Day||Organize a Turtle Art Day in your community. Details at [http://people.sugarlabs.org/walter/Guia_Ingles_10-08-2013.pdf]||96||Walter||Outreach<br />
|-<br />
|Promo Video||Create a 60 second promotional video on Sugar and its community.||96||Mariah||Outreach<br />
|-<br />
|Hangout Q&A||Host a Question and Answer (Q&A)/Information session about Sugar on Google Hangouts. Invite friends, family, peers, as well as academic and community leaders.||96||Mariah||Outreach<br />
|-<br />
|Local Lab Wiki||Create/update a "Local Lab" page for your area/country. Fill in the page with information on the Sugar community in your area. This could include contact information, mailing lists, events and any other information that may be relevant. ||96||Mariah||Research<br />
|-<br />
|How-To Guide||Create a guide for how to host your own DIY Sugar on a Stick party. The guide should include at least two promotional item designs (like a sticker, brochure, flyer). Feel free to change the name to something else. ||96||Mariah||Outreach<br />
|-<br />
|DIY Sugar on a Stick||Organize and host a Sugar on a Stick party where you show people how to make their own Sugar on a Stick. Then, hold a workshop on the basics of using Sugar. Take pictures to document the experience. Post a blog about it.||96||Mariah||Outreach<br />
|-<br />
|Potential Users||Gather information on who could benefit from using or knowing about Sugar. Look at non-profit organizations, academic institutions, the home-school community. Build a database including contact information, website URLS, social media profiles, and any other relevant information.||96||Mariah||Research<br />
|-<br />
|Sugar Tools & Resources||Find the resources that people are using throughout the world to learn about or teach Sugar Activities. This can include manuals, teacher guides, YouTube videos, blogs, etc. Document what type of resource it is, the URL for the resource, the target audience of the resource and whether it is up-to-date.||96||Mariah||Research<br />
|-<br />
|Introduce Yourself||Write a blog post about why you are participating in Google Code-In, what you hope to learn from the GCI and how Sugar Labs can help you. Include a picture. Share blog post through social media.||48||Mariah||Outreach<br />
|-<br />
|Interview a GCI Peer||Interview another Sugar Labs GCI participant. Ask them questions about how they are selecting/completing tasks, any successes/struggles they are having, etc. Post on participant blog. Share blog post through social media.||48||Mariah||Outreach<br />
|--<br />
|Interview an Educator||Find an educator who is using open-source educational software to teach. Interview the educator about their experience as an educator and why they are using open-source software to teach. Post about it on the blog, include a picture. Share the blog post through social media and with the educator.||48||Mariah||Outreach|<br />
|-<br />
|Review an Activity||Write a review about an Activity in Sugar. Explain how you use it, what kind of project you could do with it, any bugs it might have, etc. Post your review. The review can be a video review or a written review with screenshots. Share the blog post through social media.||48||Mariah||Outreach<br />
|-<br />
|Women in the Sugar Community||Create a 10-minute presentation celebrating at least three women within the Sugar community and/or the open-source community at large. Write a blog post about what you learned when making this presentation and include a link to the presentation.||48||Mariah||Outreach<br />
|-<br />
|Wrap-Up||Write a blog post about your experience as a GCI participant for Sugar Labs. Share your thoughts on what was successful and what can be improved for next year's participants. Feel free to include pictures, videos, links to work that you are most proud of. Share the post through social media.||48||Mariah||Outreach<br />
|}<br />
<br />
===User Interface===<br />
Tasks related to user experience research or user interface design and interaction<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Icon design for Music Blocks||The icons used for the main toolbar in Music Block don't "sing" to me. This task is to design better icons both in terms of expressing the intention of the button and visual engagement of the user. || 72 || Walter, Devin || UI, design<br />
|-<br />
|Classroom collaboration|| Sugar provides tools for sharing and collaborating among students, e.g., peer editing of texts, chat, group programming, etc. Survey the list of collaboration-enabled activities and categorize them by whether they are learning utilities, classroom management utilities, communication, games, etc. || 72 || Walter || UI, pedagogy<br />
|-<br />
|Classroom management 1|| Sugar provides only a few tools for classroom management, e.g., the Share With Teacher webservice. Survey classroom services that run either as web services or native in desktop environments.|| 72 || Walter || UI, pedagogy<br />
|-<br />
|Classroom management 2|| Sugar provides only a few tools for classroom management, e.g., the Share With Teacher webservice. Which of the results from the Classroom management 1 task would be useful to incorporate into the Sugar ecosystem? Evaluation should include s description of the service and a sketch of how the user interaction would work. || 72 || Walter || UI, pedagogy<br />
|-<br />
|Sugar on a small screen|| Sugar was originally designed as a desktop environment for small computers. But these days, many children have access to smart phones rather than computers. This task is to make some sketches as to how Sugar might be redesigned for a smart phone form-factor. A series of annotated sketches should be made as part of completing this task. || 72 || Walter || UI<br />
|-<br />
|Programming on a small screen|| We put an emphasis on programming in Sugar. One popular programming environment is Turtle Blocks. Recently we made a Javascript version that can run in a browser (and hence on a smart phone). How should the UI change to accommodate that form-factor? A series of annotated sketches should be made as part of completing this task. || 72 || Walter || UI<br />
|-<br />
|End-user customization||We try to encourage our users to re-imagine Sugar as they'd like it. Users can change the icon layout, the background screen, and the XO avatar. What else should be made easier to customize with minimal programming? || 72 || Walter || UI<br />
|-<br />
|Sugarizer marketing web page||Create a marketing web page to explain what is Sugarizer and replace the [http://sugarizer.org current one] || 40 || Lionel || UI<br />
|}<br />
<br />
===Quality Assurance===<br />
Tasks related to testing and ensuring code is of high quality.<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Behavior diff for Turtle Blocks JS|| [https://turtle.sugarlabs.org Turtle Blocks JS] is a Javascript port from the Python version of the activity. The goal of this task is to document any differences in behavior between the two versions.||72||Walter||QA<br />
|-<br />
|Unit tests for JS activities||We have no unit tests for our Javascript activities. This task is to investigate approaches to unit testing in Javascript||72||Walter||QA<br />
|-<br />
|Test Sugar on a Stick || Help test the latest Sugar on a Stick on Fedora (F24). See https://wiki.sugarlabs.org/go/Fedora_24#fedora_24, [http://dl.fedoraproject.org/pub/alt/unofficial/releases/24/ #fedora-qa (freenode IRC). Deliverable is a report of the major Sugar features, e.g., desktop, journal, collaboration, and the core activities, e.g., Write, Browse, Turtle, Chat, Speak, etc. || 48 || Satellit || QA, SoaS<br />
|-<br />
|fix f25 Soas|f25 Soas currently does not login to liveuser.|| see: https://bugzilla.redhat.com/show_bug.cgi?id=1363915, https://qa.fedoraproject.org/blockerbugs/milestone/25/final/buglist], Task is to fix this bug||72|| || QA<br />
|-<br />
|Interview a teacher|| Ultimately the quality of our work is determined by our end users. Interview a classroom teacher who is using Sugar and solicit feedback about what works, what doesn't. || 72 || Walter || QA<br />
|-<br />
|Interview a student|| Ultimately the quality of our work is determined by our end users. Interview a student who is using Sugar in school and solicit feedback about what works, what doesn't. || 72 || Walter || QA<br />
|}<br />
<br />
<!-- Begin comment out this section<br />
===Code===<br />
Tasks related to writing or refactoring code<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
| Turtle Confusion in Javascript || [http://activities.sugarlabs.org/en-US/sugar/addon/4450 Turtle Confusion] presents 40 shape challenges to the learner that must be completed using basic Logo-blocks. The challenges as based on Barry Newell's 1988 book, Turtle Confusion: Logo Puzzles and Riddles. This task is to implement Turtle Confusion within the framework of the [http://turtle.sugarlabs.org JavaScript version of Turtle Blocks].|| 72 || Walter || Code, JavaScript<br />
|-<br />
| Turtle Blocks JS: Loudness block doesn't work on Windows || [[https://github.com/walterbender/turtleblocksjs/issues/238] Issue 238 || 72 || Walter, Amit || Code, JavaScript<br />
|-<br />
| Turtle Blocks JS: Cannot import images on Android || [[https://github.com/walterbender/turtleblocksjs/issues/237] Issue 237 || 72 || Walter, Amit || Code, JavaScript<br />
|-<br />
| Turtle Blocks JS: Camera doesn't work on Android || [[https://github.com/walterbender/turtleblocksjs/issues/236] Issue 236 || 72 || Walter, Amit || Code, JavaScript<br />
|-<br />
| Music Blocks Android || [https://github.com/walterbender/musicblocks/issues/51 Issue 51] does Tonejs work on Android? is there an alternative? || 72 || Walter, Devin || Code, JavaScript<br />
|-<br />
| Music Blocks Safari download || [https://github.com/walterbender/musicblocks/issues/37 Issue 37] Safari does not "download" the .tb files, it just opens a new window with the code in it. || 72 || Walter, Devin || Code, JavaScript<br />
|}<br />
<br />
End of commented out section --><br />
<br />
<!--<br />
== Unsorted tasks ==<br />
=== Sugar enhancements from bugs.sugarlabs.org ===<br />
Each of these open tickets is potential task-worthy.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Ticket !! Description !! Type !! Component<br />
|-<br />
| [http://bugs.sugarlabs.org/ticket/1646 1646] || No way to force-close (kill) an activity || enhancement || Sugar<br />
|}<br />
<br />
=== Sugar bugs from bugs.sugarlabs.org ===<br />
Each of these open tickets is potential task-worthy.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Ticket !! Description !! Type !! Component<br />
|-<br />
| [http://bugs.sugarlabs.org/ticket/4307 4307] || clipboard.set_with_data/set_with_owner is not introspectable || defect || Sugar<br />
|}<br />
<br />
=== Activity enhancements from bugs.sugarlabs.org ===<br />
Each of these open tickets is potential task-worthy.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Ticket !! Description !! Component<br />
|-<br />
| [http://bugs.sugarlabs.org/ticket/758 758] || Port to new tube API || Read<br />
|}<br />
--><br />
<br />
== Mentors ==<br />
;NOTES TO MENTORS:<br />
:Please refer to [[Google Code In 2016/Participate#Mentors]] for details regarding enrolling as a mentor.<br />
:Please add yourself to the list below.<br />
:Feel free to add new tasks to the table above.<br />
<br />
Depending on the project, we will assign multiple mentors from our various development and support teams.<br />
<br />
* Walter Bender - also org admin for GCI<br />
* Sam Parkinson<br />
* Ignacio Rodriguez<br />
* Lionel Laské<br />
* Batchu Venkat Vishal<br />
* Ibiam Chihurumnaya<br />
* Utkarsh Tiwari<br />
* Abhijit Patel<br />
* Julio Reyes</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Google_Code_In_2016&diff=99355Google Code In 20162016-11-07T17:33:29Z<p>Erilyth: /* This is a stub for 25+ example tasks new for GCI 2016. */</p>
<hr />
<div><noinclude>[[Category:Trac Reference]][[Category:Idea]]<br />
[[Category: GCI2015]]</noinclude><br />
<br />
This is the project page for the Sugar Labs application to [https://developers.google.com/open-source/gci/ Google Code In 2016]. Sugar Labs community members: please feel free to add tasks below. We'll do an edit before final applications are due the first week of November 2016.<br />
<br />
== Message to potential participants ==<br />
<br />
It is important that you obtain permission of your parents.<br />
<br />
Es importante que obtengas el permiso de tus padres para participar.<br />
<br />
https://developers.google.com/open-source/gci/resources/contest-rules<br />
<br />
Please see the Contest Rules for Eligibility and Registration process.<br />
<br />
https://developers.google.com/open-source/gci/resources/contest-rules<br />
<br />
'''Details regarding the required forms and paperwork are here: [[Google Code In 2015/Participate#Students]].'''<br />
<br />
Also, you will likely need to set up the Sugar development environment. See http://developer.sugarlabs.org/dev-environment.md.html for details. Further information about contributing to the project can be found here: http://developer.sugarlabs.org/<br />
<br />
Please don't hesitate to ask questions on our irc channel (#sugar on irc.freenode.net) or on the sugar-devel list: sugar-devel AT lists.sugarlabs DOT org<br />
<br />
== Why we are participating ==<br />
<br />
Sugar is written and maintained by volunteers, who range from seasoned professionals to children as young as 12-years of age. Children who have grown up with Sugar have transitioned from Sugar users to Sugar App developers to Sugar maintainers. They hang out on IRC with the global Sugar developer community and are full-fledged members of the Sugar development team. It is this latter group of children we hope will participate in and benefit from Google Code-in. Specifically we want to re-enforce the message that Sugar belongs to its users and that they have both ownership and the responsibility that ownership implies. Just as learning is not something done to you, but something you do, learning with Sugar ultimately means participating in the Sugar development process. At Sugar Labs, we are trying to bring the culture of Free Software into the culture of school. So the Code-in is not just an opportunity for us to get some tasks accomplished, it is quintessential to our overall mission.<br />
<br />
== Some background from GCI ==<br />
<br />
[See https://developers.google.com/open-source/gci/resources/getting-started]<br />
<br />
===Open Source Fundamentals ===<br />
<br />
You can contribute without being a coder!<br />
You do not have to be a coder to contribute to open source. There are many different skill sets needed to help an open source community thrive:<br />
;Documentation: If you are a good writer and enjoy attention to detail then you might want to contribute by writing or editing documentation. Documentation is a huge part of a successful open source project. Organizations need documentation to help attract new contributors as it helps them see what the codebase looks like and where things are and what the plan is for the project.<br />
;Research: An organization may need help crunching numbers or sorting through pages of documents to better understand what the users want or need. There are many different types of tasks that students could work on that are very important to the health of the project.<br />
;Outreach: If you have an outgoing personality and like being around and talking to people, take a look at the outreach tasks. Outreach tasks often include hosting meetups in your local community or creating a plan on how people around the globe can host a meetup about the project in their local communities.<br />
;Training: You could create a YouTube video discussing a new feature of the project or maybe some basics on what the project does so people who haven’t heard about it can understand the project and get involved.<br />
;User Interface: User interface can include many types of tasks including designing new aspects of a webpage or creating a new logo for the project. It may also include various accessibility opportunities to help make the project easier for people who are blind.<br />
;Other: If you have an idea that may help an organization, reach out to them and let them know! Sometimes the best task is one that the organization hasn’t even considered yet.<br />
=== Collaboration===<br />
Open source is not just about coding but working with other people to find the best solution. Being a part of the community is an essential part of success in Google Code-in. Mentors tell us every year that their best students were the ones who worked hard on their projects but also participated on IRC and helped answer questions other students had. Collaborate with the community and mentors on the #sugar channel in the irc.freenode.net network.<br />
<br />
=== Quality over Quantity === <br />
<br />
It’s not about being the student who completes the most tasks, that only gets you to the top 10 to be reviewed, it doesn’t mean you will be a grand prize winner. We have had quite a few students who completed the most tasks for their organization yet were not named as Grand Prize Winners because they did everything solo and didn’t get involved in the community or think about the health of the project as a whole, they just kept completing task after task like a machine. If you actively participate in the community then you not only feel the camaraderie that comes with working as a team but you become committed to making the project better for everyone.<br />
<br />
== Some basics about Sugar Labs ==<br />
<br />
For some basics about the project, see [http://people.sugarlabs.org/walter/docs/Learning-to-Change-the-World-Chapter-4.pdf Chapter 4 of Learning to Change the World].<br />
<br />
=== Getting started with coding ===<br />
<br />
Sugar development is in either Python or Javascript.<br />
<br />
* You will need knowledge of Python and GTK (See http://python-gtk-3-tutorial.readthedocs.org/en/latest/);<br />
* or Javascript/HTML5;<br />
* and then the basic of Sugar development (See http://www.flossmanuals.net/make-your-own-sugar-activities/);<br />
* and to have a Sugar development environment running (See http://developer.sugarlabs.org).<br />
<br />
Please note that you must run [http://legacy.python.org/dev/peps/pep-0008/#introduction pep8] and pyflakes on your code ''before'' submitting your patches.<br />
<br />
=== Getting started with GIT ===<br />
<br />
Some knowledge of git is important as your work will be submitted to our git repository (https://github.com/sugarlabs). The basic mechanism is a pull request (PR), which is detailed in [http://developer.sugarlabs.org/contributing.md.html].<br />
<br />
GitHub provides a tutorial (See https://try.github.io/levels/1/challenges/1), although there are many others as well.<br />
<br />
Note that our bug tracker is http:bugs.sugarlabs.org.<br />
<br />
=== Getting started with Sugarizer === <br />
<br />
Sugar Web Framework is the JavaScript Framework for Sugar [https://github.com/sugarlabs/sugar-docs/blob/master/web-architecture.md]. Sugarizer [http://sugarizer.org] is a subset of Sugar that allow runing activities developed with Sugar Web Framework on any web browser. Sugarizer is also available as Android, iOS, Firefox OS and Chrome Web App.<br />
<br />
== This is a stub for 25+ example tasks new for GCI 2016. ==<br />
<br />
# Investigate Google Fuzzing tool (Research)<br />
# Decimal places in Calculate activity (Code: Pyhton)<br />
# Music Blocks examples (Documentation/Training)<br />
# Space team activity (Code: Python)<br />
# Bugzilla clean up (QA)<br />
# Teach me how to draw activity (Code: Python)<br />
# Manage order of blocks in Turtle plugins (Code: Javascript)<br />
# Plugin manager for Turtle JS (Code: Javascript)<br />
# Refactor pitch-time matrix code (Code: Javascript)<br />
# Fix scrolling problem with pitch-time matrix (Code: Javascript)<br />
# Refactor Training activity to be non-specific to Australia (Code: Python)<br />
# Refactor Turtle graphics to adopt look of Javascript version (Code: Python)<br />
# Improvements to Lilypond interface (Code: Javascript)<br />
# Add drum icons in Music Blocks (Design)<br />
# Add more synths/sound fonts to Music Blocks (Research)<br />
# Add ABC import to Music Blocks (Code: Javascript)<br />
# Add ABC export to Music Blocks (Code: Javascript)<br />
# Add Lilypond import to Music Blocks (Code: Javascript)<br />
# Refactor Planet server for Turtle Blocks (Code: Python)<br />
# Research graphics caching in Turtle (Research)<br />
# Wiki cleanup (Documentation)<br />
# Make trash areas smaller on Turtle (Code: Javascript)<br />
# Write a Turtle plugin (Code: Javascript)<br />
# Write a Pinetrest plugin for the Sugar Journal (Code: Python)<br />
# Investigate CSound/Python version of Music Blocks (Code: Python)<br />
# Add synth lab widget to Music Blocks (Code: Javascript)<br />
# Backport a web plugin from Turtle Blocks JS to Python (Code: Python)<br />
# Turtle write directly to the canvas instead of using Easel (Code: Javascript)<br />
# Visualize turtle movements in Pitch-Time Matrix (Code: Javascript)<br />
# Visualize turtle pitch in Music Blocks project (Code: Music Blocks)<br />
# Visualize turtle pitch in Music Blocks widget (Code: Javascript)<br />
# Synonym-Antonym activity to lassify them correctly (Code: Javascript)<br />
# Create a zoo activity - Differentiate between animals, birds, reptiles etc (Code: Javascript)<br />
# Laser mirror reflection game activity<br />
<br />
<!-- Begin comment out this section<br />
<br />
== Tasks ==<br />
'''Note:''' This is our preliminary list of tasks. We can add more as the contest progresses.<br />
<br />
Mentors: please feel free to add more tasks and/or add yourself as a potential mentor to an existing task.<br />
<br />
Tasks must fall within one of these five categories: [[#Documentation/Training]]; [[#Outreach/Research]]; [[#User Interface]]; [[#Quality Assurance]]; and [[#Code]].<br />
<br />
End of commented out section --><br />
<br />
===Beginner Tasks===<br />
We have several tasks that are targeting people new to Sugar and Sugar development. You are only allowed to complete two beginner tasks.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Install the Sugar development environment||Following the instruction at [http://developer.sugarlabs.org/dev-environment.md.html], set up the Sugar development environment. Submit a screen-shot of the development environment running to complete this task. You can get help on our irc channel should you run into any difficulties.|| 48 || all || beginner<br />
|-<br />
|Install Sugar in a virtual machine||If your intention is to focus on documentation and training or outreach, then you may want to install Sugar in a virtual machine. Following the instructions at [http://wiki.sugarlabs.org/go/Sugar_Creation_Kit#Tutorials][http://wiki.sugarlabs.org/go/Sugar_on_a_Stick/Virtual_machines][http://wiki.sugarlabs.org/go/Downloads#Virtual_Machines_on_all_platforms], set up the Sugar development environment. Submit a screen-shot of the development environment running to complete this task. You can get help on our irc channel should you run into any difficulties.|| 48 || all || beginner<br />
|-<br />
|Create an example program in Turtle Blocks||We distribute examples with the Turtle Blocks programming environment. Create your example -- some art, some geometry, some multimedia, a simple game -- to be included with the package. Deliverable is a Turtle Blocks project file to be reviewed by Sugar Labs designers and educators. (Use either the Python version bundled with Sugar or the Javascript version at [http://turtle.sugarlabs.org Turtle Blocks JS]) One source of inspiration might be [https://www.pinterest.com/walterbender/turtle-art/]. || 48 || all || beginner<br />
|-<br />
|Create an example program in Music Blocks||We distribute examples with the [http://walterbender.github.io/musicblocks Music Blocks] programming environment. Create your example -- some music (and art) -- to be included with the package. Deliverable is a Music Blocks project file to be reviewed by Sugar Labs designers and educators. || 48 || all || beginner<br />
|-<br />
|Create a simple machine in Physics||We distribute examples with the [http://activities.sugarlabs.org/en-US/sugar/addon/4193 Physics Activity]. Create a simple machine we can include in the examples collection -- some interesting mechanical device. Deliverable is a Physics activity project file to be reviewed by Sugar Labs designers and educators. || 48 || all || beginner<br />
|}<br />
<br />
===Documentation/Training===<br />
Tasks related to creating/editing documents and helping others learn more<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Update the Sugar Labs entry in Wikipedia|| The Sugar Labs entry in Wikipedia could use some TLC. Please bring it up to date. || 48 || Walter || Documentation<br />
|-<br />
|Update the Sugar Labs wiki page on git||The [[Activity Team/Git Tutorial]] is out of date: we have migrated to GitHub. Please update the page to reflect the GitHub workflow. See http://developer.sugarlabs.org/contributing.md.html for more details || 48 || Walter || Documentation<br />
|-<br />
|Turtle Blocks Programming Guide 1|| Add live examples missing from the [https://github.com/walterbender/turtleblocksjs/blob/master/guide/README.md Guide to Programming with Turtle Blocks]. || 48 || Walter || Documentation<br />
|-<br />
|Turtle Blocks Programming Guide 2|| Extend the [https://github.com/walterbender/turtleblocksjs/blob/master/guide/README.md Guide to Programming with Turtle Blocks] to include more examples. || 48 || Walter || Documentation<br />
|-<br />
|Music Blocks Programming Guide|| Extend the [https://github.com/walterbender/musicblocks/blob/master/guide/README.md Guide to Programming with Music Blocks] to include more examples. || 48 || Walter || Documentation<br />
|-<br />
|Turtle Blocks Classroom Guide||Write a guide on how to use Turtle Blocks in the classroom -- a manual for teachers who might want to engage in programming. Please consult with a classroom teacher when creating the guide.|| 96 || Walter || Documentation<br />
|-<br />
|Music Blocks Classroom Guide||Write a guide on how to use Music Blocks in the classroom -- a manual for teachers who might want to engage in programming with Music. Please consult with a music teacher when creating the guide.|| 96 || Walter || Documentation<br />
|-<br />
|Sugarizer Server API Documentation||Write a documentation for the REST API for Sugarizer Server. Include some GET/POST/DELETE sample inside || 48|| Lionel || Documentation<br />
|-<br />
|Sugarizer Server Collaboration Tutorial||Write a tutorial on how to connect a Sugarizer Client to a Sugarizer Server and how to use it to do Journal sharing and collaboration || 24 || Lionel || Documentation<br />
|-<br />
|Sugarizer wiki page||Write a Sugarizer page in the SugarLabs wiki || 24 || Lionel || Documentation<br />
|}<br />
<br />
For information about how to create help pages for activities <br />
<br />
http://wiki.sugarlabs.org/go/Activities/Help/Contribute<br />
<br />
https://github.com/godiard/help-activity/blob/master/source/restructuredtext.rst<br />
<br />
https://github.com/godiard/help-activity/blob/master/source/collaborating.rst<br />
<br />
===Outreach/Research===<br />
Tasks related to community management, outreach/marketing, or studying problems and recommending solutions<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Turtle Art Day||Organize a Turtle Art Day in your community. Details at [http://people.sugarlabs.org/walter/Guia_Ingles_10-08-2013.pdf]||96||Walter||Outreach<br />
|-<br />
|Promo Video||Create a 60 second promotional video on Sugar and its community.||96||Mariah||Outreach<br />
|-<br />
|Hangout Q&A||Host a Question and Answer (Q&A)/Information session about Sugar on Google Hangouts. Invite friends, family, peers, as well as academic and community leaders.||96||Mariah||Outreach<br />
|-<br />
|Local Lab Wiki||Create/update a "Local Lab" page for your area/country. Fill in the page with information on the Sugar community in your area. This could include contact information, mailing lists, events and any other information that may be relevant. ||96||Mariah||Research<br />
|-<br />
|How-To Guide||Create a guide for how to host your own DIY Sugar on a Stick party. The guide should include at least two promotional item designs (like a sticker, brochure, flyer). Feel free to change the name to something else. ||96||Mariah||Outreach<br />
|-<br />
|DIY Sugar on a Stick||Organize and host a Sugar on a Stick party where you show people how to make their own Sugar on a Stick. Then, hold a workshop on the basics of using Sugar. Take pictures to document the experience. Post a blog about it.||96||Mariah||Outreach<br />
|-<br />
|Potential Users||Gather information on who could benefit from using or knowing about Sugar. Look at non-profit organizations, academic institutions, the home-school community. Build a database including contact information, website URLS, social media profiles, and any other relevant information.||96||Mariah||Research<br />
|-<br />
|Sugar Tools & Resources||Find the resources that people are using throughout the world to learn about or teach Sugar Activities. This can include manuals, teacher guides, YouTube videos, blogs, etc. Document what type of resource it is, the URL for the resource, the target audience of the resource and whether it is up-to-date.||96||Mariah||Research<br />
|-<br />
|Introduce Yourself||Write a blog post about why you are participating in Google Code-In, what you hope to learn from the GCI and how Sugar Labs can help you. Include a picture. Share blog post through social media.||48||Mariah||Outreach<br />
|-<br />
|Interview a GCI Peer||Interview another Sugar Labs GCI participant. Ask them questions about how they are selecting/completing tasks, any successes/struggles they are having, etc. Post on participant blog. Share blog post through social media.||48||Mariah||Outreach<br />
|--<br />
|Interview an Educator||Find an educator who is using open-source educational software to teach. Interview the educator about their experience as an educator and why they are using open-source software to teach. Post about it on the blog, include a picture. Share the blog post through social media and with the educator.||48||Mariah||Outreach|<br />
|-<br />
|Review an Activity||Write a review about an Activity in Sugar. Explain how you use it, what kind of project you could do with it, any bugs it might have, etc. Post your review. The review can be a video review or a written review with screenshots. Share the blog post through social media.||48||Mariah||Outreach<br />
|-<br />
|Women in the Sugar Community||Create a 10-minute presentation celebrating at least three women within the Sugar community and/or the open-source community at large. Write a blog post about what you learned when making this presentation and include a link to the presentation.||48||Mariah||Outreach<br />
|-<br />
|Wrap-Up||Write a blog post about your experience as a GCI participant for Sugar Labs. Share your thoughts on what was successful and what can be improved for next year's participants. Feel free to include pictures, videos, links to work that you are most proud of. Share the post through social media.||48||Mariah||Outreach<br />
|}<br />
<br />
===User Interface===<br />
Tasks related to user experience research or user interface design and interaction<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Icon design for Music Blocks||The icons used for the main toolbar in Music Block don't "sing" to me. This task is to design better icons both in terms of expressing the intention of the button and visual engagement of the user. || 72 || Walter, Devin || UI, design<br />
|-<br />
|Classroom collaboration|| Sugar provides tools for sharing and collaborating among students, e.g., peer editing of texts, chat, group programming, etc. Survey the list of collaboration-enabled activities and categorize them by whether they are learning utilities, classroom management utilities, communication, games, etc. || 72 || Walter || UI, pedagogy<br />
|-<br />
|Classroom management 1|| Sugar provides only a few tools for classroom management, e.g., the Share With Teacher webservice. Survey classroom services that run either as web services or native in desktop environments.|| 72 || Walter || UI, pedagogy<br />
|-<br />
|Classroom management 2|| Sugar provides only a few tools for classroom management, e.g., the Share With Teacher webservice. Which of the results from the Classroom management 1 task would be useful to incorporate into the Sugar ecosystem? Evaluation should include s description of the service and a sketch of how the user interaction would work. || 72 || Walter || UI, pedagogy<br />
|-<br />
|Sugar on a small screen|| Sugar was originally designed as a desktop environment for small computers. But these days, many children have access to smart phones rather than computers. This task is to make some sketches as to how Sugar might be redesigned for a smart phone form-factor. A series of annotated sketches should be made as part of completing this task. || 72 || Walter || UI<br />
|-<br />
|Programming on a small screen|| We put an emphasis on programming in Sugar. One popular programming environment is Turtle Blocks. Recently we made a Javascript version that can run in a browser (and hence on a smart phone). How should the UI change to accommodate that form-factor? A series of annotated sketches should be made as part of completing this task. || 72 || Walter || UI<br />
|-<br />
|End-user customization||We try to encourage our users to re-imagine Sugar as they'd like it. Users can change the icon layout, the background screen, and the XO avatar. What else should be made easier to customize with minimal programming? || 72 || Walter || UI<br />
|-<br />
|Sugarizer marketing web page||Create a marketing web page to explain what is Sugarizer and replace the [http://sugarizer.org current one] || 40 || Lionel || UI<br />
|}<br />
<br />
===Quality Assurance===<br />
Tasks related to testing and ensuring code is of high quality.<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Behavior diff for Turtle Blocks JS|| [https://turtle.sugarlabs.org Turtle Blocks JS] is a Javascript port from the Python version of the activity. The goal of this task is to document any differences in behavior between the two versions.||72||Walter||QA<br />
|-<br />
|Unit tests for JS activities||We have no unit tests for our Javascript activities. This task is to investigate approaches to unit testing in Javascript||72||Walter||QA<br />
|-<br />
|Test Sugar on a Stick || Help test the latest Sugar on a Stick on Fedora (F24). See https://wiki.sugarlabs.org/go/Fedora_24#fedora_24, [http://dl.fedoraproject.org/pub/alt/unofficial/releases/24/ #fedora-qa (freenode IRC). Deliverable is a report of the major Sugar features, e.g., desktop, journal, collaboration, and the core activities, e.g., Write, Browse, Turtle, Chat, Speak, etc. || 48 || Satellit || QA, SoaS<br />
|-<br />
|fix f25 Soas|f25 Soas currently does not login to liveuser.|| see: https://bugzilla.redhat.com/show_bug.cgi?id=1363915, https://qa.fedoraproject.org/blockerbugs/milestone/25/final/buglist], Task is to fix this bug||72|| || QA<br />
|-<br />
|Interview a teacher|| Ultimately the quality of our work is determined by our end users. Interview a classroom teacher who is using Sugar and solicit feedback about what works, what doesn't. || 72 || Walter || QA<br />
|-<br />
|Interview a student|| Ultimately the quality of our work is determined by our end users. Interview a student who is using Sugar in school and solicit feedback about what works, what doesn't. || 72 || Walter || QA<br />
|}<br />
<br />
<!-- Begin comment out this section<br />
===Code===<br />
Tasks related to writing or refactoring code<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
| Turtle Confusion in Javascript || [http://activities.sugarlabs.org/en-US/sugar/addon/4450 Turtle Confusion] presents 40 shape challenges to the learner that must be completed using basic Logo-blocks. The challenges as based on Barry Newell's 1988 book, Turtle Confusion: Logo Puzzles and Riddles. This task is to implement Turtle Confusion within the framework of the [http://turtle.sugarlabs.org JavaScript version of Turtle Blocks].|| 72 || Walter || Code, JavaScript<br />
|-<br />
| Turtle Blocks JS: Loudness block doesn't work on Windows || [[https://github.com/walterbender/turtleblocksjs/issues/238] Issue 238 || 72 || Walter, Amit || Code, JavaScript<br />
|-<br />
| Turtle Blocks JS: Cannot import images on Android || [[https://github.com/walterbender/turtleblocksjs/issues/237] Issue 237 || 72 || Walter, Amit || Code, JavaScript<br />
|-<br />
| Turtle Blocks JS: Camera doesn't work on Android || [[https://github.com/walterbender/turtleblocksjs/issues/236] Issue 236 || 72 || Walter, Amit || Code, JavaScript<br />
|-<br />
| Music Blocks Android || [https://github.com/walterbender/musicblocks/issues/51 Issue 51] does Tonejs work on Android? is there an alternative? || 72 || Walter, Devin || Code, JavaScript<br />
|-<br />
| Music Blocks Safari download || [https://github.com/walterbender/musicblocks/issues/37 Issue 37] Safari does not "download" the .tb files, it just opens a new window with the code in it. || 72 || Walter, Devin || Code, JavaScript<br />
|}<br />
<br />
End of commented out section --><br />
<br />
<!--<br />
== Unsorted tasks ==<br />
=== Sugar enhancements from bugs.sugarlabs.org ===<br />
Each of these open tickets is potential task-worthy.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Ticket !! Description !! Type !! Component<br />
|-<br />
| [http://bugs.sugarlabs.org/ticket/1646 1646] || No way to force-close (kill) an activity || enhancement || Sugar<br />
|}<br />
<br />
=== Sugar bugs from bugs.sugarlabs.org ===<br />
Each of these open tickets is potential task-worthy.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Ticket !! Description !! Type !! Component<br />
|-<br />
| [http://bugs.sugarlabs.org/ticket/4307 4307] || clipboard.set_with_data/set_with_owner is not introspectable || defect || Sugar<br />
|}<br />
<br />
=== Activity enhancements from bugs.sugarlabs.org ===<br />
Each of these open tickets is potential task-worthy.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Ticket !! Description !! Component<br />
|-<br />
| [http://bugs.sugarlabs.org/ticket/758 758] || Port to new tube API || Read<br />
|}<br />
--><br />
<br />
== Mentors ==<br />
;NOTES TO MENTORS:<br />
:Please refer to [[Google Code In 2016/Participate#Mentors]] for details regarding enrolling as a mentor.<br />
:Please add yourself to the list below.<br />
:Feel free to add new tasks to the table above.<br />
<br />
Depending on the project, we will assign multiple mentors from our various development and support teams.<br />
<br />
* Walter Bender - also org admin for GCI<br />
* Sam Parkinson<br />
* Ignacio Rodriguez<br />
* Lionel Laské<br />
* Batchu Venkat Vishal<br />
* Ibiam Chihurumnaya<br />
* Utkarsh Tiwari<br />
* Abhijit Patel</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Google_Code_In_2016&diff=99354Google Code In 20162016-11-07T17:29:00Z<p>Erilyth: /* This is a stub for 25+ example tasks new for GCI 2016. */</p>
<hr />
<div><noinclude>[[Category:Trac Reference]][[Category:Idea]]<br />
[[Category: GCI2015]]</noinclude><br />
<br />
This is the project page for the Sugar Labs application to [https://developers.google.com/open-source/gci/ Google Code In 2016]. Sugar Labs community members: please feel free to add tasks below. We'll do an edit before final applications are due the first week of November 2016.<br />
<br />
== Message to potential participants ==<br />
<br />
It is important that you obtain permission of your parents.<br />
<br />
Es importante que obtengas el permiso de tus padres para participar.<br />
<br />
https://developers.google.com/open-source/gci/resources/contest-rules<br />
<br />
Please see the Contest Rules for Eligibility and Registration process.<br />
<br />
https://developers.google.com/open-source/gci/resources/contest-rules<br />
<br />
'''Details regarding the required forms and paperwork are here: [[Google Code In 2015/Participate#Students]].'''<br />
<br />
Also, you will likely need to set up the Sugar development environment. See http://developer.sugarlabs.org/dev-environment.md.html for details. Further information about contributing to the project can be found here: http://developer.sugarlabs.org/<br />
<br />
Please don't hesitate to ask questions on our irc channel (#sugar on irc.freenode.net) or on the sugar-devel list: sugar-devel AT lists.sugarlabs DOT org<br />
<br />
== Why we are participating ==<br />
<br />
Sugar is written and maintained by volunteers, who range from seasoned professionals to children as young as 12-years of age. Children who have grown up with Sugar have transitioned from Sugar users to Sugar App developers to Sugar maintainers. They hang out on IRC with the global Sugar developer community and are full-fledged members of the Sugar development team. It is this latter group of children we hope will participate in and benefit from Google Code-in. Specifically we want to re-enforce the message that Sugar belongs to its users and that they have both ownership and the responsibility that ownership implies. Just as learning is not something done to you, but something you do, learning with Sugar ultimately means participating in the Sugar development process. At Sugar Labs, we are trying to bring the culture of Free Software into the culture of school. So the Code-in is not just an opportunity for us to get some tasks accomplished, it is quintessential to our overall mission.<br />
<br />
== Some background from GCI ==<br />
<br />
[See https://developers.google.com/open-source/gci/resources/getting-started]<br />
<br />
===Open Source Fundamentals ===<br />
<br />
You can contribute without being a coder!<br />
You do not have to be a coder to contribute to open source. There are many different skill sets needed to help an open source community thrive:<br />
;Documentation: If you are a good writer and enjoy attention to detail then you might want to contribute by writing or editing documentation. Documentation is a huge part of a successful open source project. Organizations need documentation to help attract new contributors as it helps them see what the codebase looks like and where things are and what the plan is for the project.<br />
;Research: An organization may need help crunching numbers or sorting through pages of documents to better understand what the users want or need. There are many different types of tasks that students could work on that are very important to the health of the project.<br />
;Outreach: If you have an outgoing personality and like being around and talking to people, take a look at the outreach tasks. Outreach tasks often include hosting meetups in your local community or creating a plan on how people around the globe can host a meetup about the project in their local communities.<br />
;Training: You could create a YouTube video discussing a new feature of the project or maybe some basics on what the project does so people who haven’t heard about it can understand the project and get involved.<br />
;User Interface: User interface can include many types of tasks including designing new aspects of a webpage or creating a new logo for the project. It may also include various accessibility opportunities to help make the project easier for people who are blind.<br />
;Other: If you have an idea that may help an organization, reach out to them and let them know! Sometimes the best task is one that the organization hasn’t even considered yet.<br />
=== Collaboration===<br />
Open source is not just about coding but working with other people to find the best solution. Being a part of the community is an essential part of success in Google Code-in. Mentors tell us every year that their best students were the ones who worked hard on their projects but also participated on IRC and helped answer questions other students had. Collaborate with the community and mentors on the #sugar channel in the irc.freenode.net network.<br />
<br />
=== Quality over Quantity === <br />
<br />
It’s not about being the student who completes the most tasks, that only gets you to the top 10 to be reviewed, it doesn’t mean you will be a grand prize winner. We have had quite a few students who completed the most tasks for their organization yet were not named as Grand Prize Winners because they did everything solo and didn’t get involved in the community or think about the health of the project as a whole, they just kept completing task after task like a machine. If you actively participate in the community then you not only feel the camaraderie that comes with working as a team but you become committed to making the project better for everyone.<br />
<br />
== Some basics about Sugar Labs ==<br />
<br />
For some basics about the project, see [http://people.sugarlabs.org/walter/docs/Learning-to-Change-the-World-Chapter-4.pdf Chapter 4 of Learning to Change the World].<br />
<br />
=== Getting started with coding ===<br />
<br />
Sugar development is in either Python or Javascript.<br />
<br />
* You will need knowledge of Python and GTK (See http://python-gtk-3-tutorial.readthedocs.org/en/latest/);<br />
* or Javascript/HTML5;<br />
* and then the basic of Sugar development (See http://www.flossmanuals.net/make-your-own-sugar-activities/);<br />
* and to have a Sugar development environment running (See http://developer.sugarlabs.org).<br />
<br />
Please note that you must run [http://legacy.python.org/dev/peps/pep-0008/#introduction pep8] and pyflakes on your code ''before'' submitting your patches.<br />
<br />
=== Getting started with GIT ===<br />
<br />
Some knowledge of git is important as your work will be submitted to our git repository (https://github.com/sugarlabs). The basic mechanism is a pull request (PR), which is detailed in [http://developer.sugarlabs.org/contributing.md.html].<br />
<br />
GitHub provides a tutorial (See https://try.github.io/levels/1/challenges/1), although there are many others as well.<br />
<br />
Note that our bug tracker is http:bugs.sugarlabs.org.<br />
<br />
=== Getting started with Sugarizer === <br />
<br />
Sugar Web Framework is the JavaScript Framework for Sugar [https://github.com/sugarlabs/sugar-docs/blob/master/web-architecture.md]. Sugarizer [http://sugarizer.org] is a subset of Sugar that allow runing activities developed with Sugar Web Framework on any web browser. Sugarizer is also available as Android, iOS, Firefox OS and Chrome Web App.<br />
<br />
== This is a stub for 25+ example tasks new for GCI 2016. ==<br />
<br />
# Investigate Google Fuzzing tool (Research)<br />
# Decimal places in Calculate activity (Code: Pyhton)<br />
# Music Blocks examples (Documentation/Training)<br />
# Space team activity (Code: Python)<br />
# Bugzilla clean up (QA)<br />
# Teach me how to draw activity (Code: Python)<br />
# Manage order of blocks in Turtle plugins (Code: Javascript)<br />
# Plugin manager for Turtle JS (Code: Javascript)<br />
# Refactor pitch-time matrix code (Code: Javascript)<br />
# Fix scrolling problem with pitch-time matrix (Code: Javascript)<br />
# Refactor Training activity to be non-specific to Australia (Code: Python)<br />
# Refactor Turtle graphics to adopt look of Javascript version (Code: Python)<br />
# Improvements to Lilypond interface (Code: Javascript)<br />
# Add drum icons in Music Blocks (Design)<br />
# Add more synths/sound fonts to Music Blocks (Research)<br />
# Add ABC import to Music Blocks (Code: Javascript)<br />
# Add ABC export to Music Blocks (Code: Javascript)<br />
# Add Lilypond import to Music Blocks (Code: Javascript)<br />
# Refactor Planet server for Turtle Blocks (Code: Python)<br />
# Research graphics caching in Turtle (Research)<br />
# Wiki cleanup (Documentation)<br />
# Make trash areas smaller on Turtle (Code: Javascript)<br />
# Write a Turtle plugin (Code: Javascript)<br />
# Write a Pinetrest plugin for the Sugar Journal (Code: Python)<br />
# Investigate CSound/Python version of Music Blocks (Code: Python)<br />
# Add synth lab widget to Music Blocks (Code: Javascript)<br />
# Backport a web plugin from Turtle Blocks JS to Python (Code: Python)<br />
# Turtle write directly to the canvas instead of using Easel (Code: Javascript)<br />
# Visualize turtle movements in Pitch-Time Matrix (Code: Javascript)<br />
# Visualize turtle pitch in Music Blocks project (Code: Music Blocks)<br />
# Visualize turtle pitch in Music Blocks widget (Code: Javascript)<br />
# Synonym-Antonym activity to lassify them correctly (Code: Javascript)<br />
# Create a zoo activity - Differentiate between animals, birds, reptiles etc (Code: Javascript)<br />
<br />
<!-- Begin comment out this section<br />
<br />
== Tasks ==<br />
'''Note:''' This is our preliminary list of tasks. We can add more as the contest progresses.<br />
<br />
Mentors: please feel free to add more tasks and/or add yourself as a potential mentor to an existing task.<br />
<br />
Tasks must fall within one of these five categories: [[#Documentation/Training]]; [[#Outreach/Research]]; [[#User Interface]]; [[#Quality Assurance]]; and [[#Code]].<br />
<br />
End of commented out section --><br />
<br />
===Beginner Tasks===<br />
We have several tasks that are targeting people new to Sugar and Sugar development. You are only allowed to complete two beginner tasks.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Install the Sugar development environment||Following the instruction at [http://developer.sugarlabs.org/dev-environment.md.html], set up the Sugar development environment. Submit a screen-shot of the development environment running to complete this task. You can get help on our irc channel should you run into any difficulties.|| 48 || all || beginner<br />
|-<br />
|Install Sugar in a virtual machine||If your intention is to focus on documentation and training or outreach, then you may want to install Sugar in a virtual machine. Following the instructions at [http://wiki.sugarlabs.org/go/Sugar_Creation_Kit#Tutorials][http://wiki.sugarlabs.org/go/Sugar_on_a_Stick/Virtual_machines][http://wiki.sugarlabs.org/go/Downloads#Virtual_Machines_on_all_platforms], set up the Sugar development environment. Submit a screen-shot of the development environment running to complete this task. You can get help on our irc channel should you run into any difficulties.|| 48 || all || beginner<br />
|-<br />
|Create an example program in Turtle Blocks||We distribute examples with the Turtle Blocks programming environment. Create your example -- some art, some geometry, some multimedia, a simple game -- to be included with the package. Deliverable is a Turtle Blocks project file to be reviewed by Sugar Labs designers and educators. (Use either the Python version bundled with Sugar or the Javascript version at [http://turtle.sugarlabs.org Turtle Blocks JS]) One source of inspiration might be [https://www.pinterest.com/walterbender/turtle-art/]. || 48 || all || beginner<br />
|-<br />
|Create an example program in Music Blocks||We distribute examples with the [http://walterbender.github.io/musicblocks Music Blocks] programming environment. Create your example -- some music (and art) -- to be included with the package. Deliverable is a Music Blocks project file to be reviewed by Sugar Labs designers and educators. || 48 || all || beginner<br />
|-<br />
|Create a simple machine in Physics||We distribute examples with the [http://activities.sugarlabs.org/en-US/sugar/addon/4193 Physics Activity]. Create a simple machine we can include in the examples collection -- some interesting mechanical device. Deliverable is a Physics activity project file to be reviewed by Sugar Labs designers and educators. || 48 || all || beginner<br />
|}<br />
<br />
===Documentation/Training===<br />
Tasks related to creating/editing documents and helping others learn more<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Update the Sugar Labs entry in Wikipedia|| The Sugar Labs entry in Wikipedia could use some TLC. Please bring it up to date. || 48 || Walter || Documentation<br />
|-<br />
|Update the Sugar Labs wiki page on git||The [[Activity Team/Git Tutorial]] is out of date: we have migrated to GitHub. Please update the page to reflect the GitHub workflow. See http://developer.sugarlabs.org/contributing.md.html for more details || 48 || Walter || Documentation<br />
|-<br />
|Turtle Blocks Programming Guide 1|| Add live examples missing from the [https://github.com/walterbender/turtleblocksjs/blob/master/guide/README.md Guide to Programming with Turtle Blocks]. || 48 || Walter || Documentation<br />
|-<br />
|Turtle Blocks Programming Guide 2|| Extend the [https://github.com/walterbender/turtleblocksjs/blob/master/guide/README.md Guide to Programming with Turtle Blocks] to include more examples. || 48 || Walter || Documentation<br />
|-<br />
|Music Blocks Programming Guide|| Extend the [https://github.com/walterbender/musicblocks/blob/master/guide/README.md Guide to Programming with Music Blocks] to include more examples. || 48 || Walter || Documentation<br />
|-<br />
|Turtle Blocks Classroom Guide||Write a guide on how to use Turtle Blocks in the classroom -- a manual for teachers who might want to engage in programming. Please consult with a classroom teacher when creating the guide.|| 96 || Walter || Documentation<br />
|-<br />
|Music Blocks Classroom Guide||Write a guide on how to use Music Blocks in the classroom -- a manual for teachers who might want to engage in programming with Music. Please consult with a music teacher when creating the guide.|| 96 || Walter || Documentation<br />
|-<br />
|Sugarizer Server API Documentation||Write a documentation for the REST API for Sugarizer Server. Include some GET/POST/DELETE sample inside || 48|| Lionel || Documentation<br />
|-<br />
|Sugarizer Server Collaboration Tutorial||Write a tutorial on how to connect a Sugarizer Client to a Sugarizer Server and how to use it to do Journal sharing and collaboration || 24 || Lionel || Documentation<br />
|-<br />
|Sugarizer wiki page||Write a Sugarizer page in the SugarLabs wiki || 24 || Lionel || Documentation<br />
|}<br />
<br />
For information about how to create help pages for activities <br />
<br />
http://wiki.sugarlabs.org/go/Activities/Help/Contribute<br />
<br />
https://github.com/godiard/help-activity/blob/master/source/restructuredtext.rst<br />
<br />
https://github.com/godiard/help-activity/blob/master/source/collaborating.rst<br />
<br />
===Outreach/Research===<br />
Tasks related to community management, outreach/marketing, or studying problems and recommending solutions<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Turtle Art Day||Organize a Turtle Art Day in your community. Details at [http://people.sugarlabs.org/walter/Guia_Ingles_10-08-2013.pdf]||96||Walter||Outreach<br />
|-<br />
|Promo Video||Create a 60 second promotional video on Sugar and its community.||96||Mariah||Outreach<br />
|-<br />
|Hangout Q&A||Host a Question and Answer (Q&A)/Information session about Sugar on Google Hangouts. Invite friends, family, peers, as well as academic and community leaders.||96||Mariah||Outreach<br />
|-<br />
|Local Lab Wiki||Create/update a "Local Lab" page for your area/country. Fill in the page with information on the Sugar community in your area. This could include contact information, mailing lists, events and any other information that may be relevant. ||96||Mariah||Research<br />
|-<br />
|How-To Guide||Create a guide for how to host your own DIY Sugar on a Stick party. The guide should include at least two promotional item designs (like a sticker, brochure, flyer). Feel free to change the name to something else. ||96||Mariah||Outreach<br />
|-<br />
|DIY Sugar on a Stick||Organize and host a Sugar on a Stick party where you show people how to make their own Sugar on a Stick. Then, hold a workshop on the basics of using Sugar. Take pictures to document the experience. Post a blog about it.||96||Mariah||Outreach<br />
|-<br />
|Potential Users||Gather information on who could benefit from using or knowing about Sugar. Look at non-profit organizations, academic institutions, the home-school community. Build a database including contact information, website URLS, social media profiles, and any other relevant information.||96||Mariah||Research<br />
|-<br />
|Sugar Tools & Resources||Find the resources that people are using throughout the world to learn about or teach Sugar Activities. This can include manuals, teacher guides, YouTube videos, blogs, etc. Document what type of resource it is, the URL for the resource, the target audience of the resource and whether it is up-to-date.||96||Mariah||Research<br />
|-<br />
|Introduce Yourself||Write a blog post about why you are participating in Google Code-In, what you hope to learn from the GCI and how Sugar Labs can help you. Include a picture. Share blog post through social media.||48||Mariah||Outreach<br />
|-<br />
|Interview a GCI Peer||Interview another Sugar Labs GCI participant. Ask them questions about how they are selecting/completing tasks, any successes/struggles they are having, etc. Post on participant blog. Share blog post through social media.||48||Mariah||Outreach<br />
|--<br />
|Interview an Educator||Find an educator who is using open-source educational software to teach. Interview the educator about their experience as an educator and why they are using open-source software to teach. Post about it on the blog, include a picture. Share the blog post through social media and with the educator.||48||Mariah||Outreach|<br />
|-<br />
|Review an Activity||Write a review about an Activity in Sugar. Explain how you use it, what kind of project you could do with it, any bugs it might have, etc. Post your review. The review can be a video review or a written review with screenshots. Share the blog post through social media.||48||Mariah||Outreach<br />
|-<br />
|Women in the Sugar Community||Create a 10-minute presentation celebrating at least three women within the Sugar community and/or the open-source community at large. Write a blog post about what you learned when making this presentation and include a link to the presentation.||48||Mariah||Outreach<br />
|-<br />
|Wrap-Up||Write a blog post about your experience as a GCI participant for Sugar Labs. Share your thoughts on what was successful and what can be improved for next year's participants. Feel free to include pictures, videos, links to work that you are most proud of. Share the post through social media.||48||Mariah||Outreach<br />
|}<br />
<br />
===User Interface===<br />
Tasks related to user experience research or user interface design and interaction<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Icon design for Music Blocks||The icons used for the main toolbar in Music Block don't "sing" to me. This task is to design better icons both in terms of expressing the intention of the button and visual engagement of the user. || 72 || Walter, Devin || UI, design<br />
|-<br />
|Classroom collaboration|| Sugar provides tools for sharing and collaborating among students, e.g., peer editing of texts, chat, group programming, etc. Survey the list of collaboration-enabled activities and categorize them by whether they are learning utilities, classroom management utilities, communication, games, etc. || 72 || Walter || UI, pedagogy<br />
|-<br />
|Classroom management 1|| Sugar provides only a few tools for classroom management, e.g., the Share With Teacher webservice. Survey classroom services that run either as web services or native in desktop environments.|| 72 || Walter || UI, pedagogy<br />
|-<br />
|Classroom management 2|| Sugar provides only a few tools for classroom management, e.g., the Share With Teacher webservice. Which of the results from the Classroom management 1 task would be useful to incorporate into the Sugar ecosystem? Evaluation should include s description of the service and a sketch of how the user interaction would work. || 72 || Walter || UI, pedagogy<br />
|-<br />
|Sugar on a small screen|| Sugar was originally designed as a desktop environment for small computers. But these days, many children have access to smart phones rather than computers. This task is to make some sketches as to how Sugar might be redesigned for a smart phone form-factor. A series of annotated sketches should be made as part of completing this task. || 72 || Walter || UI<br />
|-<br />
|Programming on a small screen|| We put an emphasis on programming in Sugar. One popular programming environment is Turtle Blocks. Recently we made a Javascript version that can run in a browser (and hence on a smart phone). How should the UI change to accommodate that form-factor? A series of annotated sketches should be made as part of completing this task. || 72 || Walter || UI<br />
|-<br />
|End-user customization||We try to encourage our users to re-imagine Sugar as they'd like it. Users can change the icon layout, the background screen, and the XO avatar. What else should be made easier to customize with minimal programming? || 72 || Walter || UI<br />
|-<br />
|Sugarizer marketing web page||Create a marketing web page to explain what is Sugarizer and replace the [http://sugarizer.org current one] || 40 || Lionel || UI<br />
|}<br />
<br />
===Quality Assurance===<br />
Tasks related to testing and ensuring code is of high quality.<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Behavior diff for Turtle Blocks JS|| [https://turtle.sugarlabs.org Turtle Blocks JS] is a Javascript port from the Python version of the activity. The goal of this task is to document any differences in behavior between the two versions.||72||Walter||QA<br />
|-<br />
|Unit tests for JS activities||We have no unit tests for our Javascript activities. This task is to investigate approaches to unit testing in Javascript||72||Walter||QA<br />
|-<br />
|Test Sugar on a Stick || Help test the latest Sugar on a Stick on Fedora (F24). See https://wiki.sugarlabs.org/go/Fedora_24#fedora_24, [http://dl.fedoraproject.org/pub/alt/unofficial/releases/24/ #fedora-qa (freenode IRC). Deliverable is a report of the major Sugar features, e.g., desktop, journal, collaboration, and the core activities, e.g., Write, Browse, Turtle, Chat, Speak, etc. || 48 || Satellit || QA, SoaS<br />
|-<br />
|fix f25 Soas|f25 Soas currently does not login to liveuser.|| see: https://bugzilla.redhat.com/show_bug.cgi?id=1363915, https://qa.fedoraproject.org/blockerbugs/milestone/25/final/buglist], Task is to fix this bug||72|| || QA<br />
|-<br />
|Interview a teacher|| Ultimately the quality of our work is determined by our end users. Interview a classroom teacher who is using Sugar and solicit feedback about what works, what doesn't. || 72 || Walter || QA<br />
|-<br />
|Interview a student|| Ultimately the quality of our work is determined by our end users. Interview a student who is using Sugar in school and solicit feedback about what works, what doesn't. || 72 || Walter || QA<br />
|}<br />
<br />
<!-- Begin comment out this section<br />
===Code===<br />
Tasks related to writing or refactoring code<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
| Turtle Confusion in Javascript || [http://activities.sugarlabs.org/en-US/sugar/addon/4450 Turtle Confusion] presents 40 shape challenges to the learner that must be completed using basic Logo-blocks. The challenges as based on Barry Newell's 1988 book, Turtle Confusion: Logo Puzzles and Riddles. This task is to implement Turtle Confusion within the framework of the [http://turtle.sugarlabs.org JavaScript version of Turtle Blocks].|| 72 || Walter || Code, JavaScript<br />
|-<br />
| Turtle Blocks JS: Loudness block doesn't work on Windows || [[https://github.com/walterbender/turtleblocksjs/issues/238] Issue 238 || 72 || Walter, Amit || Code, JavaScript<br />
|-<br />
| Turtle Blocks JS: Cannot import images on Android || [[https://github.com/walterbender/turtleblocksjs/issues/237] Issue 237 || 72 || Walter, Amit || Code, JavaScript<br />
|-<br />
| Turtle Blocks JS: Camera doesn't work on Android || [[https://github.com/walterbender/turtleblocksjs/issues/236] Issue 236 || 72 || Walter, Amit || Code, JavaScript<br />
|-<br />
| Music Blocks Android || [https://github.com/walterbender/musicblocks/issues/51 Issue 51] does Tonejs work on Android? is there an alternative? || 72 || Walter, Devin || Code, JavaScript<br />
|-<br />
| Music Blocks Safari download || [https://github.com/walterbender/musicblocks/issues/37 Issue 37] Safari does not "download" the .tb files, it just opens a new window with the code in it. || 72 || Walter, Devin || Code, JavaScript<br />
|}<br />
<br />
End of commented out section --><br />
<br />
<!--<br />
== Unsorted tasks ==<br />
=== Sugar enhancements from bugs.sugarlabs.org ===<br />
Each of these open tickets is potential task-worthy.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Ticket !! Description !! Type !! Component<br />
|-<br />
| [http://bugs.sugarlabs.org/ticket/1646 1646] || No way to force-close (kill) an activity || enhancement || Sugar<br />
|}<br />
<br />
=== Sugar bugs from bugs.sugarlabs.org ===<br />
Each of these open tickets is potential task-worthy.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Ticket !! Description !! Type !! Component<br />
|-<br />
| [http://bugs.sugarlabs.org/ticket/4307 4307] || clipboard.set_with_data/set_with_owner is not introspectable || defect || Sugar<br />
|}<br />
<br />
=== Activity enhancements from bugs.sugarlabs.org ===<br />
Each of these open tickets is potential task-worthy.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Ticket !! Description !! Component<br />
|-<br />
| [http://bugs.sugarlabs.org/ticket/758 758] || Port to new tube API || Read<br />
|}<br />
--><br />
<br />
== Mentors ==<br />
;NOTES TO MENTORS:<br />
:Please refer to [[Google Code In 2016/Participate#Mentors]] for details regarding enrolling as a mentor.<br />
:Please add yourself to the list below.<br />
:Feel free to add new tasks to the table above.<br />
<br />
Depending on the project, we will assign multiple mentors from our various development and support teams.<br />
<br />
* Walter Bender - also org admin for GCI<br />
* Sam Parkinson<br />
* Ignacio Rodriguez<br />
* Lionel Laské<br />
* Batchu Venkat Vishal<br />
* Ibiam Chihurumnaya<br />
* Utkarsh Tiwari<br />
* Abhijit Patel</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Google_Code_In_2016&diff=99353Google Code In 20162016-11-07T17:22:55Z<p>Erilyth: Add animal,bird,reptile activity suggestion</p>
<hr />
<div><noinclude>[[Category:Trac Reference]][[Category:Idea]]<br />
[[Category: GCI2015]]</noinclude><br />
<br />
This is the project page for the Sugar Labs application to [https://developers.google.com/open-source/gci/ Google Code In 2016]. Sugar Labs community members: please feel free to add tasks below. We'll do an edit before final applications are due the first week of November 2016.<br />
<br />
== Message to potential participants ==<br />
<br />
It is important that you obtain permission of your parents.<br />
<br />
Es importante que obtengas el permiso de tus padres para participar.<br />
<br />
https://developers.google.com/open-source/gci/resources/contest-rules<br />
<br />
Please see the Contest Rules for Eligibility and Registration process.<br />
<br />
https://developers.google.com/open-source/gci/resources/contest-rules<br />
<br />
'''Details regarding the required forms and paperwork are here: [[Google Code In 2015/Participate#Students]].'''<br />
<br />
Also, you will likely need to set up the Sugar development environment. See http://developer.sugarlabs.org/dev-environment.md.html for details. Further information about contributing to the project can be found here: http://developer.sugarlabs.org/<br />
<br />
Please don't hesitate to ask questions on our irc channel (#sugar on irc.freenode.net) or on the sugar-devel list: sugar-devel AT lists.sugarlabs DOT org<br />
<br />
== Why we are participating ==<br />
<br />
Sugar is written and maintained by volunteers, who range from seasoned professionals to children as young as 12-years of age. Children who have grown up with Sugar have transitioned from Sugar users to Sugar App developers to Sugar maintainers. They hang out on IRC with the global Sugar developer community and are full-fledged members of the Sugar development team. It is this latter group of children we hope will participate in and benefit from Google Code-in. Specifically we want to re-enforce the message that Sugar belongs to its users and that they have both ownership and the responsibility that ownership implies. Just as learning is not something done to you, but something you do, learning with Sugar ultimately means participating in the Sugar development process. At Sugar Labs, we are trying to bring the culture of Free Software into the culture of school. So the Code-in is not just an opportunity for us to get some tasks accomplished, it is quintessential to our overall mission.<br />
<br />
== Some background from GCI ==<br />
<br />
[See https://developers.google.com/open-source/gci/resources/getting-started]<br />
<br />
===Open Source Fundamentals ===<br />
<br />
You can contribute without being a coder!<br />
You do not have to be a coder to contribute to open source. There are many different skill sets needed to help an open source community thrive:<br />
;Documentation: If you are a good writer and enjoy attention to detail then you might want to contribute by writing or editing documentation. Documentation is a huge part of a successful open source project. Organizations need documentation to help attract new contributors as it helps them see what the codebase looks like and where things are and what the plan is for the project.<br />
;Research: An organization may need help crunching numbers or sorting through pages of documents to better understand what the users want or need. There are many different types of tasks that students could work on that are very important to the health of the project.<br />
;Outreach: If you have an outgoing personality and like being around and talking to people, take a look at the outreach tasks. Outreach tasks often include hosting meetups in your local community or creating a plan on how people around the globe can host a meetup about the project in their local communities.<br />
;Training: You could create a YouTube video discussing a new feature of the project or maybe some basics on what the project does so people who haven’t heard about it can understand the project and get involved.<br />
;User Interface: User interface can include many types of tasks including designing new aspects of a webpage or creating a new logo for the project. It may also include various accessibility opportunities to help make the project easier for people who are blind.<br />
;Other: If you have an idea that may help an organization, reach out to them and let them know! Sometimes the best task is one that the organization hasn’t even considered yet.<br />
=== Collaboration===<br />
Open source is not just about coding but working with other people to find the best solution. Being a part of the community is an essential part of success in Google Code-in. Mentors tell us every year that their best students were the ones who worked hard on their projects but also participated on IRC and helped answer questions other students had. Collaborate with the community and mentors on the #sugar channel in the irc.freenode.net network.<br />
<br />
=== Quality over Quantity === <br />
<br />
It’s not about being the student who completes the most tasks, that only gets you to the top 10 to be reviewed, it doesn’t mean you will be a grand prize winner. We have had quite a few students who completed the most tasks for their organization yet were not named as Grand Prize Winners because they did everything solo and didn’t get involved in the community or think about the health of the project as a whole, they just kept completing task after task like a machine. If you actively participate in the community then you not only feel the camaraderie that comes with working as a team but you become committed to making the project better for everyone.<br />
<br />
== Some basics about Sugar Labs ==<br />
<br />
For some basics about the project, see [http://people.sugarlabs.org/walter/docs/Learning-to-Change-the-World-Chapter-4.pdf Chapter 4 of Learning to Change the World].<br />
<br />
=== Getting started with coding ===<br />
<br />
Sugar development is in either Python or Javascript.<br />
<br />
* You will need knowledge of Python and GTK (See http://python-gtk-3-tutorial.readthedocs.org/en/latest/);<br />
* or Javascript/HTML5;<br />
* and then the basic of Sugar development (See http://www.flossmanuals.net/make-your-own-sugar-activities/);<br />
* and to have a Sugar development environment running (See http://developer.sugarlabs.org).<br />
<br />
Please note that you must run [http://legacy.python.org/dev/peps/pep-0008/#introduction pep8] and pyflakes on your code ''before'' submitting your patches.<br />
<br />
=== Getting started with GIT ===<br />
<br />
Some knowledge of git is important as your work will be submitted to our git repository (https://github.com/sugarlabs). The basic mechanism is a pull request (PR), which is detailed in [http://developer.sugarlabs.org/contributing.md.html].<br />
<br />
GitHub provides a tutorial (See https://try.github.io/levels/1/challenges/1), although there are many others as well.<br />
<br />
Note that our bug tracker is http:bugs.sugarlabs.org.<br />
<br />
=== Getting started with Sugarizer === <br />
<br />
Sugar Web Framework is the JavaScript Framework for Sugar [https://github.com/sugarlabs/sugar-docs/blob/master/web-architecture.md]. Sugarizer [http://sugarizer.org] is a subset of Sugar that allow runing activities developed with Sugar Web Framework on any web browser. Sugarizer is also available as Android, iOS, Firefox OS and Chrome Web App.<br />
<br />
== This is a stub for 25+ example tasks new for GCI 2016. ==<br />
<br />
# Investigate Google Fuzzing tool (Research)<br />
# Decimal places in Calculate activity (Code: Pyhton)<br />
# Music Blocks examples (Documentation/Training)<br />
# Space team activity (Code: Python)<br />
# Bugzilla clean up (QA)<br />
# Teach me how to draw activity (Code: Python)<br />
# Manage order of blocks in Turtle plugins (Code: Javascript)<br />
# Plugin manager for Turtle JS (Code: Javascript)<br />
# Refactor pitch-time matrix code (Code: Javascript)<br />
# Fix scrolling problem with pitch-time matrix (Code: Javascript)<br />
# Refactor Training activity to be non-specific to Australia (Code: Python)<br />
# Refactor Turtle graphics to adopt look of Javascript version (Code: Python)<br />
# Improvements to Lilypond interface (Code: Javascript)<br />
# Add drum icons in Music Blocks (Design)<br />
# Add more synths/sound fonts to Music Blocks (Research)<br />
# Add ABC import to Music Blocks (Code: Javascript)<br />
# Add ABC export to Music Blocks (Code: Javascript)<br />
# Add Lilypond import to Music Blocks (Code: Javascript)<br />
# Refactor Planet server for Turtle Blocks (Code: Python)<br />
# Research graphics caching in Turtle (Research)<br />
# Wiki cleanup (Documentation)<br />
# Make trash areas smaller on Turtle (Code: Javascript)<br />
# Write a Turtle plugin (Code: Javascript)<br />
# Write a Pinetrest plugin for the Sugar Journal (Code: Python)<br />
# Investigate CSound/Python version of Music Blocks (Code: Python)<br />
# Add synth lab widget to Music Blocks (Code: Javascript)<br />
# Backport a web plugin from Turtle Blocks JS to Python (Code: Python)<br />
# Turtle write directly to the canvas instead of using Easel (Code: Javascript)<br />
# Visualize turtle movements in Pitch-Time Matrix (Code: Javascript)<br />
# Visualize turtle pitch in Music Blocks project (Code: Music Blocks)<br />
# Visualize turtle pitch in Music Blocks widget (Code: Javascript)<br />
# Synonym-Antonym activity to lassify them correctly (Code: Javascript)<br />
# Animal, bird, reptile identification activity (Code: Python)<br />
<br />
<!-- Begin comment out this section<br />
<br />
== Tasks ==<br />
'''Note:''' This is our preliminary list of tasks. We can add more as the contest progresses.<br />
<br />
Mentors: please feel free to add more tasks and/or add yourself as a potential mentor to an existing task.<br />
<br />
Tasks must fall within one of these five categories: [[#Documentation/Training]]; [[#Outreach/Research]]; [[#User Interface]]; [[#Quality Assurance]]; and [[#Code]].<br />
<br />
End of commented out section --><br />
<br />
===Beginner Tasks===<br />
We have several tasks that are targeting people new to Sugar and Sugar development. You are only allowed to complete two beginner tasks.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Install the Sugar development environment||Following the instruction at [http://developer.sugarlabs.org/dev-environment.md.html], set up the Sugar development environment. Submit a screen-shot of the development environment running to complete this task. You can get help on our irc channel should you run into any difficulties.|| 48 || all || beginner<br />
|-<br />
|Install Sugar in a virtual machine||If your intention is to focus on documentation and training or outreach, then you may want to install Sugar in a virtual machine. Following the instructions at [http://wiki.sugarlabs.org/go/Sugar_Creation_Kit#Tutorials][http://wiki.sugarlabs.org/go/Sugar_on_a_Stick/Virtual_machines][http://wiki.sugarlabs.org/go/Downloads#Virtual_Machines_on_all_platforms], set up the Sugar development environment. Submit a screen-shot of the development environment running to complete this task. You can get help on our irc channel should you run into any difficulties.|| 48 || all || beginner<br />
|-<br />
|Create an example program in Turtle Blocks||We distribute examples with the Turtle Blocks programming environment. Create your example -- some art, some geometry, some multimedia, a simple game -- to be included with the package. Deliverable is a Turtle Blocks project file to be reviewed by Sugar Labs designers and educators. (Use either the Python version bundled with Sugar or the Javascript version at [http://turtle.sugarlabs.org Turtle Blocks JS]) One source of inspiration might be [https://www.pinterest.com/walterbender/turtle-art/]. || 48 || all || beginner<br />
|-<br />
|Create an example program in Music Blocks||We distribute examples with the [http://walterbender.github.io/musicblocks Music Blocks] programming environment. Create your example -- some music (and art) -- to be included with the package. Deliverable is a Music Blocks project file to be reviewed by Sugar Labs designers and educators. || 48 || all || beginner<br />
|-<br />
|Create a simple machine in Physics||We distribute examples with the [http://activities.sugarlabs.org/en-US/sugar/addon/4193 Physics Activity]. Create a simple machine we can include in the examples collection -- some interesting mechanical device. Deliverable is a Physics activity project file to be reviewed by Sugar Labs designers and educators. || 48 || all || beginner<br />
|}<br />
<br />
===Documentation/Training===<br />
Tasks related to creating/editing documents and helping others learn more<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Update the Sugar Labs entry in Wikipedia|| The Sugar Labs entry in Wikipedia could use some TLC. Please bring it up to date. || 48 || Walter || Documentation<br />
|-<br />
|Update the Sugar Labs wiki page on git||The [[Activity Team/Git Tutorial]] is out of date: we have migrated to GitHub. Please update the page to reflect the GitHub workflow. See http://developer.sugarlabs.org/contributing.md.html for more details || 48 || Walter || Documentation<br />
|-<br />
|Turtle Blocks Programming Guide 1|| Add live examples missing from the [https://github.com/walterbender/turtleblocksjs/blob/master/guide/README.md Guide to Programming with Turtle Blocks]. || 48 || Walter || Documentation<br />
|-<br />
|Turtle Blocks Programming Guide 2|| Extend the [https://github.com/walterbender/turtleblocksjs/blob/master/guide/README.md Guide to Programming with Turtle Blocks] to include more examples. || 48 || Walter || Documentation<br />
|-<br />
|Music Blocks Programming Guide|| Extend the [https://github.com/walterbender/musicblocks/blob/master/guide/README.md Guide to Programming with Music Blocks] to include more examples. || 48 || Walter || Documentation<br />
|-<br />
|Turtle Blocks Classroom Guide||Write a guide on how to use Turtle Blocks in the classroom -- a manual for teachers who might want to engage in programming. Please consult with a classroom teacher when creating the guide.|| 96 || Walter || Documentation<br />
|-<br />
|Music Blocks Classroom Guide||Write a guide on how to use Music Blocks in the classroom -- a manual for teachers who might want to engage in programming with Music. Please consult with a music teacher when creating the guide.|| 96 || Walter || Documentation<br />
|-<br />
|Sugarizer Server API Documentation||Write a documentation for the REST API for Sugarizer Server. Include some GET/POST/DELETE sample inside || 48|| Lionel || Documentation<br />
|-<br />
|Sugarizer Server Collaboration Tutorial||Write a tutorial on how to connect a Sugarizer Client to a Sugarizer Server and how to use it to do Journal sharing and collaboration || 24 || Lionel || Documentation<br />
|-<br />
|Sugarizer wiki page||Write a Sugarizer page in the SugarLabs wiki || 24 || Lionel || Documentation<br />
|}<br />
<br />
For information about how to create help pages for activities <br />
<br />
http://wiki.sugarlabs.org/go/Activities/Help/Contribute<br />
<br />
https://github.com/godiard/help-activity/blob/master/source/restructuredtext.rst<br />
<br />
https://github.com/godiard/help-activity/blob/master/source/collaborating.rst<br />
<br />
===Outreach/Research===<br />
Tasks related to community management, outreach/marketing, or studying problems and recommending solutions<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Turtle Art Day||Organize a Turtle Art Day in your community. Details at [http://people.sugarlabs.org/walter/Guia_Ingles_10-08-2013.pdf]||96||Walter||Outreach<br />
|-<br />
|Promo Video||Create a 60 second promotional video on Sugar and its community.||96||Mariah||Outreach<br />
|-<br />
|Hangout Q&A||Host a Question and Answer (Q&A)/Information session about Sugar on Google Hangouts. Invite friends, family, peers, as well as academic and community leaders.||96||Mariah||Outreach<br />
|-<br />
|Local Lab Wiki||Create/update a "Local Lab" page for your area/country. Fill in the page with information on the Sugar community in your area. This could include contact information, mailing lists, events and any other information that may be relevant. ||96||Mariah||Research<br />
|-<br />
|How-To Guide||Create a guide for how to host your own DIY Sugar on a Stick party. The guide should include at least two promotional item designs (like a sticker, brochure, flyer). Feel free to change the name to something else. ||96||Mariah||Outreach<br />
|-<br />
|DIY Sugar on a Stick||Organize and host a Sugar on a Stick party where you show people how to make their own Sugar on a Stick. Then, hold a workshop on the basics of using Sugar. Take pictures to document the experience. Post a blog about it.||96||Mariah||Outreach<br />
|-<br />
|Potential Users||Gather information on who could benefit from using or knowing about Sugar. Look at non-profit organizations, academic institutions, the home-school community. Build a database including contact information, website URLS, social media profiles, and any other relevant information.||96||Mariah||Research<br />
|-<br />
|Sugar Tools & Resources||Find the resources that people are using throughout the world to learn about or teach Sugar Activities. This can include manuals, teacher guides, YouTube videos, blogs, etc. Document what type of resource it is, the URL for the resource, the target audience of the resource and whether it is up-to-date.||96||Mariah||Research<br />
|-<br />
|Introduce Yourself||Write a blog post about why you are participating in Google Code-In, what you hope to learn from the GCI and how Sugar Labs can help you. Include a picture. Share blog post through social media.||48||Mariah||Outreach<br />
|-<br />
|Interview a GCI Peer||Interview another Sugar Labs GCI participant. Ask them questions about how they are selecting/completing tasks, any successes/struggles they are having, etc. Post on participant blog. Share blog post through social media.||48||Mariah||Outreach<br />
|--<br />
|Interview an Educator||Find an educator who is using open-source educational software to teach. Interview the educator about their experience as an educator and why they are using open-source software to teach. Post about it on the blog, include a picture. Share the blog post through social media and with the educator.||48||Mariah||Outreach|<br />
|-<br />
|Review an Activity||Write a review about an Activity in Sugar. Explain how you use it, what kind of project you could do with it, any bugs it might have, etc. Post your review. The review can be a video review or a written review with screenshots. Share the blog post through social media.||48||Mariah||Outreach<br />
|-<br />
|Women in the Sugar Community||Create a 10-minute presentation celebrating at least three women within the Sugar community and/or the open-source community at large. Write a blog post about what you learned when making this presentation and include a link to the presentation.||48||Mariah||Outreach<br />
|-<br />
|Wrap-Up||Write a blog post about your experience as a GCI participant for Sugar Labs. Share your thoughts on what was successful and what can be improved for next year's participants. Feel free to include pictures, videos, links to work that you are most proud of. Share the post through social media.||48||Mariah||Outreach<br />
|}<br />
<br />
===User Interface===<br />
Tasks related to user experience research or user interface design and interaction<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Icon design for Music Blocks||The icons used for the main toolbar in Music Block don't "sing" to me. This task is to design better icons both in terms of expressing the intention of the button and visual engagement of the user. || 72 || Walter, Devin || UI, design<br />
|-<br />
|Classroom collaboration|| Sugar provides tools for sharing and collaborating among students, e.g., peer editing of texts, chat, group programming, etc. Survey the list of collaboration-enabled activities and categorize them by whether they are learning utilities, classroom management utilities, communication, games, etc. || 72 || Walter || UI, pedagogy<br />
|-<br />
|Classroom management 1|| Sugar provides only a few tools for classroom management, e.g., the Share With Teacher webservice. Survey classroom services that run either as web services or native in desktop environments.|| 72 || Walter || UI, pedagogy<br />
|-<br />
|Classroom management 2|| Sugar provides only a few tools for classroom management, e.g., the Share With Teacher webservice. Which of the results from the Classroom management 1 task would be useful to incorporate into the Sugar ecosystem? Evaluation should include s description of the service and a sketch of how the user interaction would work. || 72 || Walter || UI, pedagogy<br />
|-<br />
|Sugar on a small screen|| Sugar was originally designed as a desktop environment for small computers. But these days, many children have access to smart phones rather than computers. This task is to make some sketches as to how Sugar might be redesigned for a smart phone form-factor. A series of annotated sketches should be made as part of completing this task. || 72 || Walter || UI<br />
|-<br />
|Programming on a small screen|| We put an emphasis on programming in Sugar. One popular programming environment is Turtle Blocks. Recently we made a Javascript version that can run in a browser (and hence on a smart phone). How should the UI change to accommodate that form-factor? A series of annotated sketches should be made as part of completing this task. || 72 || Walter || UI<br />
|-<br />
|End-user customization||We try to encourage our users to re-imagine Sugar as they'd like it. Users can change the icon layout, the background screen, and the XO avatar. What else should be made easier to customize with minimal programming? || 72 || Walter || UI<br />
|-<br />
|Sugarizer marketing web page||Create a marketing web page to explain what is Sugarizer and replace the [http://sugarizer.org current one] || 40 || Lionel || UI<br />
|}<br />
<br />
===Quality Assurance===<br />
Tasks related to testing and ensuring code is of high quality.<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Behavior diff for Turtle Blocks JS|| [https://turtle.sugarlabs.org Turtle Blocks JS] is a Javascript port from the Python version of the activity. The goal of this task is to document any differences in behavior between the two versions.||72||Walter||QA<br />
|-<br />
|Unit tests for JS activities||We have no unit tests for our Javascript activities. This task is to investigate approaches to unit testing in Javascript||72||Walter||QA<br />
|-<br />
|Test Sugar on a Stick || Help test the latest Sugar on a Stick on Fedora (F24). See https://wiki.sugarlabs.org/go/Fedora_24#fedora_24, [http://dl.fedoraproject.org/pub/alt/unofficial/releases/24/ #fedora-qa (freenode IRC). Deliverable is a report of the major Sugar features, e.g., desktop, journal, collaboration, and the core activities, e.g., Write, Browse, Turtle, Chat, Speak, etc. || 48 || Satellit || QA, SoaS<br />
|-<br />
|fix f25 Soas|f25 Soas currently does not login to liveuser.|| see: https://bugzilla.redhat.com/show_bug.cgi?id=1363915, https://qa.fedoraproject.org/blockerbugs/milestone/25/final/buglist], Task is to fix this bug||72|| || QA<br />
|-<br />
|Interview a teacher|| Ultimately the quality of our work is determined by our end users. Interview a classroom teacher who is using Sugar and solicit feedback about what works, what doesn't. || 72 || Walter || QA<br />
|-<br />
|Interview a student|| Ultimately the quality of our work is determined by our end users. Interview a student who is using Sugar in school and solicit feedback about what works, what doesn't. || 72 || Walter || QA<br />
|}<br />
<br />
<!-- Begin comment out this section<br />
===Code===<br />
Tasks related to writing or refactoring code<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
| Turtle Confusion in Javascript || [http://activities.sugarlabs.org/en-US/sugar/addon/4450 Turtle Confusion] presents 40 shape challenges to the learner that must be completed using basic Logo-blocks. The challenges as based on Barry Newell's 1988 book, Turtle Confusion: Logo Puzzles and Riddles. This task is to implement Turtle Confusion within the framework of the [http://turtle.sugarlabs.org JavaScript version of Turtle Blocks].|| 72 || Walter || Code, JavaScript<br />
|-<br />
| Turtle Blocks JS: Loudness block doesn't work on Windows || [[https://github.com/walterbender/turtleblocksjs/issues/238] Issue 238 || 72 || Walter, Amit || Code, JavaScript<br />
|-<br />
| Turtle Blocks JS: Cannot import images on Android || [[https://github.com/walterbender/turtleblocksjs/issues/237] Issue 237 || 72 || Walter, Amit || Code, JavaScript<br />
|-<br />
| Turtle Blocks JS: Camera doesn't work on Android || [[https://github.com/walterbender/turtleblocksjs/issues/236] Issue 236 || 72 || Walter, Amit || Code, JavaScript<br />
|-<br />
| Music Blocks Android || [https://github.com/walterbender/musicblocks/issues/51 Issue 51] does Tonejs work on Android? is there an alternative? || 72 || Walter, Devin || Code, JavaScript<br />
|-<br />
| Music Blocks Safari download || [https://github.com/walterbender/musicblocks/issues/37 Issue 37] Safari does not "download" the .tb files, it just opens a new window with the code in it. || 72 || Walter, Devin || Code, JavaScript<br />
|}<br />
<br />
End of commented out section --><br />
<br />
<!--<br />
== Unsorted tasks ==<br />
=== Sugar enhancements from bugs.sugarlabs.org ===<br />
Each of these open tickets is potential task-worthy.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Ticket !! Description !! Type !! Component<br />
|-<br />
| [http://bugs.sugarlabs.org/ticket/1646 1646] || No way to force-close (kill) an activity || enhancement || Sugar<br />
|}<br />
<br />
=== Sugar bugs from bugs.sugarlabs.org ===<br />
Each of these open tickets is potential task-worthy.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Ticket !! Description !! Type !! Component<br />
|-<br />
| [http://bugs.sugarlabs.org/ticket/4307 4307] || clipboard.set_with_data/set_with_owner is not introspectable || defect || Sugar<br />
|}<br />
<br />
=== Activity enhancements from bugs.sugarlabs.org ===<br />
Each of these open tickets is potential task-worthy.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Ticket !! Description !! Component<br />
|-<br />
| [http://bugs.sugarlabs.org/ticket/758 758] || Port to new tube API || Read<br />
|}<br />
--><br />
<br />
== Mentors ==<br />
;NOTES TO MENTORS:<br />
:Please refer to [[Google Code In 2016/Participate#Mentors]] for details regarding enrolling as a mentor.<br />
:Please add yourself to the list below.<br />
:Feel free to add new tasks to the table above.<br />
<br />
Depending on the project, we will assign multiple mentors from our various development and support teams.<br />
<br />
* Walter Bender - also org admin for GCI<br />
* Sam Parkinson<br />
* Ignacio Rodriguez<br />
* Lionel Laské<br />
* Batchu Venkat Vishal<br />
* Ibiam Chihurumnaya<br />
* Utkarsh Tiwari<br />
* Abhijit Patel</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Google_Code_In_2016&diff=99352Google Code In 20162016-11-07T17:19:40Z<p>Erilyth: Add Synonym-Antonym activity</p>
<hr />
<div><noinclude>[[Category:Trac Reference]][[Category:Idea]]<br />
[[Category: GCI2015]]</noinclude><br />
<br />
This is the project page for the Sugar Labs application to [https://developers.google.com/open-source/gci/ Google Code In 2016]. Sugar Labs community members: please feel free to add tasks below. We'll do an edit before final applications are due the first week of November 2016.<br />
<br />
== Message to potential participants ==<br />
<br />
It is important that you obtain permission of your parents.<br />
<br />
Es importante que obtengas el permiso de tus padres para participar.<br />
<br />
https://developers.google.com/open-source/gci/resources/contest-rules<br />
<br />
Please see the Contest Rules for Eligibility and Registration process.<br />
<br />
https://developers.google.com/open-source/gci/resources/contest-rules<br />
<br />
'''Details regarding the required forms and paperwork are here: [[Google Code In 2015/Participate#Students]].'''<br />
<br />
Also, you will likely need to set up the Sugar development environment. See http://developer.sugarlabs.org/dev-environment.md.html for details. Further information about contributing to the project can be found here: http://developer.sugarlabs.org/<br />
<br />
Please don't hesitate to ask questions on our irc channel (#sugar on irc.freenode.net) or on the sugar-devel list: sugar-devel AT lists.sugarlabs DOT org<br />
<br />
== Why we are participating ==<br />
<br />
Sugar is written and maintained by volunteers, who range from seasoned professionals to children as young as 12-years of age. Children who have grown up with Sugar have transitioned from Sugar users to Sugar App developers to Sugar maintainers. They hang out on IRC with the global Sugar developer community and are full-fledged members of the Sugar development team. It is this latter group of children we hope will participate in and benefit from Google Code-in. Specifically we want to re-enforce the message that Sugar belongs to its users and that they have both ownership and the responsibility that ownership implies. Just as learning is not something done to you, but something you do, learning with Sugar ultimately means participating in the Sugar development process. At Sugar Labs, we are trying to bring the culture of Free Software into the culture of school. So the Code-in is not just an opportunity for us to get some tasks accomplished, it is quintessential to our overall mission.<br />
<br />
== Some background from GCI ==<br />
<br />
[See https://developers.google.com/open-source/gci/resources/getting-started]<br />
<br />
===Open Source Fundamentals ===<br />
<br />
You can contribute without being a coder!<br />
You do not have to be a coder to contribute to open source. There are many different skill sets needed to help an open source community thrive:<br />
;Documentation: If you are a good writer and enjoy attention to detail then you might want to contribute by writing or editing documentation. Documentation is a huge part of a successful open source project. Organizations need documentation to help attract new contributors as it helps them see what the codebase looks like and where things are and what the plan is for the project.<br />
;Research: An organization may need help crunching numbers or sorting through pages of documents to better understand what the users want or need. There are many different types of tasks that students could work on that are very important to the health of the project.<br />
;Outreach: If you have an outgoing personality and like being around and talking to people, take a look at the outreach tasks. Outreach tasks often include hosting meetups in your local community or creating a plan on how people around the globe can host a meetup about the project in their local communities.<br />
;Training: You could create a YouTube video discussing a new feature of the project or maybe some basics on what the project does so people who haven’t heard about it can understand the project and get involved.<br />
;User Interface: User interface can include many types of tasks including designing new aspects of a webpage or creating a new logo for the project. It may also include various accessibility opportunities to help make the project easier for people who are blind.<br />
;Other: If you have an idea that may help an organization, reach out to them and let them know! Sometimes the best task is one that the organization hasn’t even considered yet.<br />
=== Collaboration===<br />
Open source is not just about coding but working with other people to find the best solution. Being a part of the community is an essential part of success in Google Code-in. Mentors tell us every year that their best students were the ones who worked hard on their projects but also participated on IRC and helped answer questions other students had. Collaborate with the community and mentors on the #sugar channel in the irc.freenode.net network.<br />
<br />
=== Quality over Quantity === <br />
<br />
It’s not about being the student who completes the most tasks, that only gets you to the top 10 to be reviewed, it doesn’t mean you will be a grand prize winner. We have had quite a few students who completed the most tasks for their organization yet were not named as Grand Prize Winners because they did everything solo and didn’t get involved in the community or think about the health of the project as a whole, they just kept completing task after task like a machine. If you actively participate in the community then you not only feel the camaraderie that comes with working as a team but you become committed to making the project better for everyone.<br />
<br />
== Some basics about Sugar Labs ==<br />
<br />
For some basics about the project, see [http://people.sugarlabs.org/walter/docs/Learning-to-Change-the-World-Chapter-4.pdf Chapter 4 of Learning to Change the World].<br />
<br />
=== Getting started with coding ===<br />
<br />
Sugar development is in either Python or Javascript.<br />
<br />
* You will need knowledge of Python and GTK (See http://python-gtk-3-tutorial.readthedocs.org/en/latest/);<br />
* or Javascript/HTML5;<br />
* and then the basic of Sugar development (See http://www.flossmanuals.net/make-your-own-sugar-activities/);<br />
* and to have a Sugar development environment running (See http://developer.sugarlabs.org).<br />
<br />
Please note that you must run [http://legacy.python.org/dev/peps/pep-0008/#introduction pep8] and pyflakes on your code ''before'' submitting your patches.<br />
<br />
=== Getting started with GIT ===<br />
<br />
Some knowledge of git is important as your work will be submitted to our git repository (https://github.com/sugarlabs). The basic mechanism is a pull request (PR), which is detailed in [http://developer.sugarlabs.org/contributing.md.html].<br />
<br />
GitHub provides a tutorial (See https://try.github.io/levels/1/challenges/1), although there are many others as well.<br />
<br />
Note that our bug tracker is http:bugs.sugarlabs.org.<br />
<br />
=== Getting started with Sugarizer === <br />
<br />
Sugar Web Framework is the JavaScript Framework for Sugar [https://github.com/sugarlabs/sugar-docs/blob/master/web-architecture.md]. Sugarizer [http://sugarizer.org] is a subset of Sugar that allow runing activities developed with Sugar Web Framework on any web browser. Sugarizer is also available as Android, iOS, Firefox OS and Chrome Web App.<br />
<br />
== This is a stub for 25+ example tasks new for GCI 2016. ==<br />
<br />
# Investigate Google Fuzzing tool (Research)<br />
# Decimal places in Calculate activity (Code: Pyhton)<br />
# Music Blocks examples (Documentation/Training)<br />
# Space team activity (Code: Python)<br />
# Bugzilla clean up (QA)<br />
# Teach me how to draw activity (Code: Python)<br />
# Manage order of blocks in Turtle plugins (Code: Javascript)<br />
# Plugin manager for Turtle JS (Code: Javascript)<br />
# Refactor pitch-time matrix code (Code: Javascript)<br />
# Fix scrolling problem with pitch-time matrix (Code: Javascript)<br />
# Refactor Training activity to be non-specific to Australia (Code: Python)<br />
# Refactor Turtle graphics to adopt look of Javascript version (Code: Python)<br />
# Improvements to Lilypond interface (Code: Javascript)<br />
# Add drum icons in Music Blocks (Design)<br />
# Add more synths/sound fonts to Music Blocks (Research)<br />
# Add ABC import to Music Blocks (Code: Javascript)<br />
# Add ABC export to Music Blocks (Code: Javascript)<br />
# Add Lilypond import to Music Blocks (Code: Javascript)<br />
# Refactor Planet server for Turtle Blocks (Code: Python)<br />
# Research graphics caching in Turtle (Research)<br />
# Wiki cleanup (Documentation)<br />
# Make trash areas smaller on Turtle (Code: Javascript)<br />
# Write a Turtle plugin (Code: Javascript)<br />
# Write a Pinetrest plugin for the Sugar Journal (Code: Python)<br />
# Investigate CSound/Python version of Music Blocks (Code: Python)<br />
# Add synth lab widget to Music Blocks (Code: Javascript)<br />
# Backport a web plugin from Turtle Blocks JS to Python (Code: Python)<br />
# Turtle write directly to the canvas instead of using Easel (Code: Javascript)<br />
# Visualize turtle movements in Pitch-Time Matrix (Code: Javascript)<br />
# Visualize turtle pitch in Music Blocks project (Code: Music Blocks)<br />
# Visualize turtle pitch in Music Blocks widget (Code: Javascript)<br />
# Synonym-Antonym activity classify them correctly (Code: Javascript)<br />
<br />
<!-- Begin comment out this section<br />
<br />
== Tasks ==<br />
'''Note:''' This is our preliminary list of tasks. We can add more as the contest progresses.<br />
<br />
Mentors: please feel free to add more tasks and/or add yourself as a potential mentor to an existing task.<br />
<br />
Tasks must fall within one of these five categories: [[#Documentation/Training]]; [[#Outreach/Research]]; [[#User Interface]]; [[#Quality Assurance]]; and [[#Code]].<br />
<br />
End of commented out section --><br />
<br />
===Beginner Tasks===<br />
We have several tasks that are targeting people new to Sugar and Sugar development. You are only allowed to complete two beginner tasks.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Install the Sugar development environment||Following the instruction at [http://developer.sugarlabs.org/dev-environment.md.html], set up the Sugar development environment. Submit a screen-shot of the development environment running to complete this task. You can get help on our irc channel should you run into any difficulties.|| 48 || all || beginner<br />
|-<br />
|Install Sugar in a virtual machine||If your intention is to focus on documentation and training or outreach, then you may want to install Sugar in a virtual machine. Following the instructions at [http://wiki.sugarlabs.org/go/Sugar_Creation_Kit#Tutorials][http://wiki.sugarlabs.org/go/Sugar_on_a_Stick/Virtual_machines][http://wiki.sugarlabs.org/go/Downloads#Virtual_Machines_on_all_platforms], set up the Sugar development environment. Submit a screen-shot of the development environment running to complete this task. You can get help on our irc channel should you run into any difficulties.|| 48 || all || beginner<br />
|-<br />
|Create an example program in Turtle Blocks||We distribute examples with the Turtle Blocks programming environment. Create your example -- some art, some geometry, some multimedia, a simple game -- to be included with the package. Deliverable is a Turtle Blocks project file to be reviewed by Sugar Labs designers and educators. (Use either the Python version bundled with Sugar or the Javascript version at [http://turtle.sugarlabs.org Turtle Blocks JS]) One source of inspiration might be [https://www.pinterest.com/walterbender/turtle-art/]. || 48 || all || beginner<br />
|-<br />
|Create an example program in Music Blocks||We distribute examples with the [http://walterbender.github.io/musicblocks Music Blocks] programming environment. Create your example -- some music (and art) -- to be included with the package. Deliverable is a Music Blocks project file to be reviewed by Sugar Labs designers and educators. || 48 || all || beginner<br />
|-<br />
|Create a simple machine in Physics||We distribute examples with the [http://activities.sugarlabs.org/en-US/sugar/addon/4193 Physics Activity]. Create a simple machine we can include in the examples collection -- some interesting mechanical device. Deliverable is a Physics activity project file to be reviewed by Sugar Labs designers and educators. || 48 || all || beginner<br />
|}<br />
<br />
===Documentation/Training===<br />
Tasks related to creating/editing documents and helping others learn more<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Update the Sugar Labs entry in Wikipedia|| The Sugar Labs entry in Wikipedia could use some TLC. Please bring it up to date. || 48 || Walter || Documentation<br />
|-<br />
|Update the Sugar Labs wiki page on git||The [[Activity Team/Git Tutorial]] is out of date: we have migrated to GitHub. Please update the page to reflect the GitHub workflow. See http://developer.sugarlabs.org/contributing.md.html for more details || 48 || Walter || Documentation<br />
|-<br />
|Turtle Blocks Programming Guide 1|| Add live examples missing from the [https://github.com/walterbender/turtleblocksjs/blob/master/guide/README.md Guide to Programming with Turtle Blocks]. || 48 || Walter || Documentation<br />
|-<br />
|Turtle Blocks Programming Guide 2|| Extend the [https://github.com/walterbender/turtleblocksjs/blob/master/guide/README.md Guide to Programming with Turtle Blocks] to include more examples. || 48 || Walter || Documentation<br />
|-<br />
|Music Blocks Programming Guide|| Extend the [https://github.com/walterbender/musicblocks/blob/master/guide/README.md Guide to Programming with Music Blocks] to include more examples. || 48 || Walter || Documentation<br />
|-<br />
|Turtle Blocks Classroom Guide||Write a guide on how to use Turtle Blocks in the classroom -- a manual for teachers who might want to engage in programming. Please consult with a classroom teacher when creating the guide.|| 96 || Walter || Documentation<br />
|-<br />
|Music Blocks Classroom Guide||Write a guide on how to use Music Blocks in the classroom -- a manual for teachers who might want to engage in programming with Music. Please consult with a music teacher when creating the guide.|| 96 || Walter || Documentation<br />
|-<br />
|Sugarizer Server API Documentation||Write a documentation for the REST API for Sugarizer Server. Include some GET/POST/DELETE sample inside || 48|| Lionel || Documentation<br />
|-<br />
|Sugarizer Server Collaboration Tutorial||Write a tutorial on how to connect a Sugarizer Client to a Sugarizer Server and how to use it to do Journal sharing and collaboration || 24 || Lionel || Documentation<br />
|-<br />
|Sugarizer wiki page||Write a Sugarizer page in the SugarLabs wiki || 24 || Lionel || Documentation<br />
|}<br />
<br />
For information about how to create help pages for activities <br />
<br />
http://wiki.sugarlabs.org/go/Activities/Help/Contribute<br />
<br />
https://github.com/godiard/help-activity/blob/master/source/restructuredtext.rst<br />
<br />
https://github.com/godiard/help-activity/blob/master/source/collaborating.rst<br />
<br />
===Outreach/Research===<br />
Tasks related to community management, outreach/marketing, or studying problems and recommending solutions<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Turtle Art Day||Organize a Turtle Art Day in your community. Details at [http://people.sugarlabs.org/walter/Guia_Ingles_10-08-2013.pdf]||96||Walter||Outreach<br />
|-<br />
|Promo Video||Create a 60 second promotional video on Sugar and its community.||96||Mariah||Outreach<br />
|-<br />
|Hangout Q&A||Host a Question and Answer (Q&A)/Information session about Sugar on Google Hangouts. Invite friends, family, peers, as well as academic and community leaders.||96||Mariah||Outreach<br />
|-<br />
|Local Lab Wiki||Create/update a "Local Lab" page for your area/country. Fill in the page with information on the Sugar community in your area. This could include contact information, mailing lists, events and any other information that may be relevant. ||96||Mariah||Research<br />
|-<br />
|How-To Guide||Create a guide for how to host your own DIY Sugar on a Stick party. The guide should include at least two promotional item designs (like a sticker, brochure, flyer). Feel free to change the name to something else. ||96||Mariah||Outreach<br />
|-<br />
|DIY Sugar on a Stick||Organize and host a Sugar on a Stick party where you show people how to make their own Sugar on a Stick. Then, hold a workshop on the basics of using Sugar. Take pictures to document the experience. Post a blog about it.||96||Mariah||Outreach<br />
|-<br />
|Potential Users||Gather information on who could benefit from using or knowing about Sugar. Look at non-profit organizations, academic institutions, the home-school community. Build a database including contact information, website URLS, social media profiles, and any other relevant information.||96||Mariah||Research<br />
|-<br />
|Sugar Tools & Resources||Find the resources that people are using throughout the world to learn about or teach Sugar Activities. This can include manuals, teacher guides, YouTube videos, blogs, etc. Document what type of resource it is, the URL for the resource, the target audience of the resource and whether it is up-to-date.||96||Mariah||Research<br />
|-<br />
|Introduce Yourself||Write a blog post about why you are participating in Google Code-In, what you hope to learn from the GCI and how Sugar Labs can help you. Include a picture. Share blog post through social media.||48||Mariah||Outreach<br />
|-<br />
|Interview a GCI Peer||Interview another Sugar Labs GCI participant. Ask them questions about how they are selecting/completing tasks, any successes/struggles they are having, etc. Post on participant blog. Share blog post through social media.||48||Mariah||Outreach<br />
|--<br />
|Interview an Educator||Find an educator who is using open-source educational software to teach. Interview the educator about their experience as an educator and why they are using open-source software to teach. Post about it on the blog, include a picture. Share the blog post through social media and with the educator.||48||Mariah||Outreach|<br />
|-<br />
|Review an Activity||Write a review about an Activity in Sugar. Explain how you use it, what kind of project you could do with it, any bugs it might have, etc. Post your review. The review can be a video review or a written review with screenshots. Share the blog post through social media.||48||Mariah||Outreach<br />
|-<br />
|Women in the Sugar Community||Create a 10-minute presentation celebrating at least three women within the Sugar community and/or the open-source community at large. Write a blog post about what you learned when making this presentation and include a link to the presentation.||48||Mariah||Outreach<br />
|-<br />
|Wrap-Up||Write a blog post about your experience as a GCI participant for Sugar Labs. Share your thoughts on what was successful and what can be improved for next year's participants. Feel free to include pictures, videos, links to work that you are most proud of. Share the post through social media.||48||Mariah||Outreach<br />
|}<br />
<br />
===User Interface===<br />
Tasks related to user experience research or user interface design and interaction<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Icon design for Music Blocks||The icons used for the main toolbar in Music Block don't "sing" to me. This task is to design better icons both in terms of expressing the intention of the button and visual engagement of the user. || 72 || Walter, Devin || UI, design<br />
|-<br />
|Classroom collaboration|| Sugar provides tools for sharing and collaborating among students, e.g., peer editing of texts, chat, group programming, etc. Survey the list of collaboration-enabled activities and categorize them by whether they are learning utilities, classroom management utilities, communication, games, etc. || 72 || Walter || UI, pedagogy<br />
|-<br />
|Classroom management 1|| Sugar provides only a few tools for classroom management, e.g., the Share With Teacher webservice. Survey classroom services that run either as web services or native in desktop environments.|| 72 || Walter || UI, pedagogy<br />
|-<br />
|Classroom management 2|| Sugar provides only a few tools for classroom management, e.g., the Share With Teacher webservice. Which of the results from the Classroom management 1 task would be useful to incorporate into the Sugar ecosystem? Evaluation should include s description of the service and a sketch of how the user interaction would work. || 72 || Walter || UI, pedagogy<br />
|-<br />
|Sugar on a small screen|| Sugar was originally designed as a desktop environment for small computers. But these days, many children have access to smart phones rather than computers. This task is to make some sketches as to how Sugar might be redesigned for a smart phone form-factor. A series of annotated sketches should be made as part of completing this task. || 72 || Walter || UI<br />
|-<br />
|Programming on a small screen|| We put an emphasis on programming in Sugar. One popular programming environment is Turtle Blocks. Recently we made a Javascript version that can run in a browser (and hence on a smart phone). How should the UI change to accommodate that form-factor? A series of annotated sketches should be made as part of completing this task. || 72 || Walter || UI<br />
|-<br />
|End-user customization||We try to encourage our users to re-imagine Sugar as they'd like it. Users can change the icon layout, the background screen, and the XO avatar. What else should be made easier to customize with minimal programming? || 72 || Walter || UI<br />
|-<br />
|Sugarizer marketing web page||Create a marketing web page to explain what is Sugarizer and replace the [http://sugarizer.org current one] || 40 || Lionel || UI<br />
|}<br />
<br />
===Quality Assurance===<br />
Tasks related to testing and ensuring code is of high quality.<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Behavior diff for Turtle Blocks JS|| [https://turtle.sugarlabs.org Turtle Blocks JS] is a Javascript port from the Python version of the activity. The goal of this task is to document any differences in behavior between the two versions.||72||Walter||QA<br />
|-<br />
|Unit tests for JS activities||We have no unit tests for our Javascript activities. This task is to investigate approaches to unit testing in Javascript||72||Walter||QA<br />
|-<br />
|Test Sugar on a Stick || Help test the latest Sugar on a Stick on Fedora (F24). See https://wiki.sugarlabs.org/go/Fedora_24#fedora_24, [http://dl.fedoraproject.org/pub/alt/unofficial/releases/24/ #fedora-qa (freenode IRC). Deliverable is a report of the major Sugar features, e.g., desktop, journal, collaboration, and the core activities, e.g., Write, Browse, Turtle, Chat, Speak, etc. || 48 || Satellit || QA, SoaS<br />
|-<br />
|fix f25 Soas|f25 Soas currently does not login to liveuser.|| see: https://bugzilla.redhat.com/show_bug.cgi?id=1363915, https://qa.fedoraproject.org/blockerbugs/milestone/25/final/buglist], Task is to fix this bug||72|| || QA<br />
|-<br />
|Interview a teacher|| Ultimately the quality of our work is determined by our end users. Interview a classroom teacher who is using Sugar and solicit feedback about what works, what doesn't. || 72 || Walter || QA<br />
|-<br />
|Interview a student|| Ultimately the quality of our work is determined by our end users. Interview a student who is using Sugar in school and solicit feedback about what works, what doesn't. || 72 || Walter || QA<br />
|}<br />
<br />
<!-- Begin comment out this section<br />
===Code===<br />
Tasks related to writing or refactoring code<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
| Turtle Confusion in Javascript || [http://activities.sugarlabs.org/en-US/sugar/addon/4450 Turtle Confusion] presents 40 shape challenges to the learner that must be completed using basic Logo-blocks. The challenges as based on Barry Newell's 1988 book, Turtle Confusion: Logo Puzzles and Riddles. This task is to implement Turtle Confusion within the framework of the [http://turtle.sugarlabs.org JavaScript version of Turtle Blocks].|| 72 || Walter || Code, JavaScript<br />
|-<br />
| Turtle Blocks JS: Loudness block doesn't work on Windows || [[https://github.com/walterbender/turtleblocksjs/issues/238] Issue 238 || 72 || Walter, Amit || Code, JavaScript<br />
|-<br />
| Turtle Blocks JS: Cannot import images on Android || [[https://github.com/walterbender/turtleblocksjs/issues/237] Issue 237 || 72 || Walter, Amit || Code, JavaScript<br />
|-<br />
| Turtle Blocks JS: Camera doesn't work on Android || [[https://github.com/walterbender/turtleblocksjs/issues/236] Issue 236 || 72 || Walter, Amit || Code, JavaScript<br />
|-<br />
| Music Blocks Android || [https://github.com/walterbender/musicblocks/issues/51 Issue 51] does Tonejs work on Android? is there an alternative? || 72 || Walter, Devin || Code, JavaScript<br />
|-<br />
| Music Blocks Safari download || [https://github.com/walterbender/musicblocks/issues/37 Issue 37] Safari does not "download" the .tb files, it just opens a new window with the code in it. || 72 || Walter, Devin || Code, JavaScript<br />
|}<br />
<br />
End of commented out section --><br />
<br />
<!--<br />
== Unsorted tasks ==<br />
=== Sugar enhancements from bugs.sugarlabs.org ===<br />
Each of these open tickets is potential task-worthy.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Ticket !! Description !! Type !! Component<br />
|-<br />
| [http://bugs.sugarlabs.org/ticket/1646 1646] || No way to force-close (kill) an activity || enhancement || Sugar<br />
|}<br />
<br />
=== Sugar bugs from bugs.sugarlabs.org ===<br />
Each of these open tickets is potential task-worthy.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Ticket !! Description !! Type !! Component<br />
|-<br />
| [http://bugs.sugarlabs.org/ticket/4307 4307] || clipboard.set_with_data/set_with_owner is not introspectable || defect || Sugar<br />
|}<br />
<br />
=== Activity enhancements from bugs.sugarlabs.org ===<br />
Each of these open tickets is potential task-worthy.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Ticket !! Description !! Component<br />
|-<br />
| [http://bugs.sugarlabs.org/ticket/758 758] || Port to new tube API || Read<br />
|}<br />
--><br />
<br />
== Mentors ==<br />
;NOTES TO MENTORS:<br />
:Please refer to [[Google Code In 2016/Participate#Mentors]] for details regarding enrolling as a mentor.<br />
:Please add yourself to the list below.<br />
:Feel free to add new tasks to the table above.<br />
<br />
Depending on the project, we will assign multiple mentors from our various development and support teams.<br />
<br />
* Walter Bender - also org admin for GCI<br />
* Sam Parkinson<br />
* Ignacio Rodriguez<br />
* Lionel Laské<br />
* Batchu Venkat Vishal<br />
* Ibiam Chihurumnaya<br />
* Utkarsh Tiwari<br />
* Abhijit Patel</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Google_Code_In_2016&diff=99321Google Code In 20162016-10-27T19:59:03Z<p>Erilyth: /* Mentors */</p>
<hr />
<div><noinclude>[[Category:Trac Reference]][[Category:Idea]]<br />
[[Category: GCI2015]]</noinclude><br />
<br />
This is the project page for the Sugar Labs application to [https://developers.google.com/open-source/gci/ Google Code In 2016]. Sugar Labs community members: please feel free to add tasks below. We'll do an edit before final applications are due the first week of November 2016.<br />
<br />
== Message to potential participants ==<br />
<br />
It is important that you obtain permission of your parents.<br />
<br />
Es importante que obtengas el permiso de tus padres para participar.<br />
<br />
https://developers.google.com/open-source/gci/resources/contest-rules<br />
<br />
Please see the Contest Rules for Eligibility and Registration process.<br />
<br />
https://developers.google.com/open-source/gci/resources/contest-rules<br />
<br />
'''Details regarding the required forms and paperwork are here: [[Google Code In 2015/Participate#Students]].'''<br />
<br />
Also, you will likely need to set up the Sugar development environment. See http://developer.sugarlabs.org/dev-environment.md.html for details. Further information about contributing to the project can be found here: http://developer.sugarlabs.org/<br />
<br />
Please don't hesitate to ask questions on our irc channel (#sugar on irc.freenode.net) or on the sugar-devel list: sugar-devel AT lists.sugarlabs DOT org<br />
<br />
== Why we are participating ==<br />
<br />
Sugar is written and maintained by volunteers, who range from seasoned professionals to children as young as 12-years of age. Children who have grown up with Sugar have transitioned from Sugar users to Sugar App developers to Sugar maintainers. They hang out on IRC with the global Sugar developer community and are full-fledged members of the Sugar development team. It is this latter group of children we hope will participate in and benefit from Google Code-in. Specifically we want to re-enforce the message that Sugar belongs to its users and that they have both ownership and the responsibility that ownership implies. Just as learning is not something done to you, but something you do, learning with Sugar ultimately means participating in the Sugar development process. At Sugar Labs, we are trying to bring the culture of Free Software into the culture of school. So the Code-in is not just an opportunity for us to get some tasks accomplished, it is quintessential to our overall mission.<br />
<br />
== Some background from GCI ==<br />
<br />
[See https://developers.google.com/open-source/gci/resources/getting-started]<br />
<br />
===Open Source Fundamentals ===<br />
<br />
You can contribute without being a coder!<br />
You do not have to be a coder to contribute to open source. There are many different skill sets needed to help an open source community thrive:<br />
;Documentation: If you are a good writer and enjoy attention to detail then you might want to contribute by writing or editing documentation. Documentation is a huge part of a successful open source project. Organizations need documentation to help attract new contributors as it helps them see what the codebase looks like and where things are and what the plan is for the project.<br />
;Research: An organization may need help crunching numbers or sorting through pages of documents to better understand what the users want or need. There are many different types of tasks that students could work on that are very important to the health of the project.<br />
;Outreach: If you have an outgoing personality and like being around and talking to people, take a look at the outreach tasks. Outreach tasks often include hosting meetups in your local community or creating a plan on how people around the globe can host a meetup about the project in their local communities.<br />
;Training: You could create a YouTube video discussing a new feature of the project or maybe some basics on what the project does so people who haven’t heard about it can understand the project and get involved.<br />
;User Interface: User interface can include many types of tasks including designing new aspects of a webpage or creating a new logo for the project. It may also include various accessibility opportunities to help make the project easier for people who are blind.<br />
;Other: If you have an idea that may help an organization, reach out to them and let them know! Sometimes the best task is one that the organization hasn’t even considered yet.<br />
=== Collaboration===<br />
Open source is not just about coding but working with other people to find the best solution. Being a part of the community is an essential part of success in Google Code-in. Mentors tell us every year that their best students were the ones who worked hard on their projects but also participated on IRC and helped answer questions other students had. Collaborate with the community and mentors on the #sugar channel in the irc.freenode.net network.<br />
<br />
=== Quality over Quantity === <br />
<br />
It’s not about being the student who completes the most tasks, that only gets you to the top 10 to be reviewed, it doesn’t mean you will be a grand prize winner. We have had quite a few students who completed the most tasks for their organization yet were not named as Grand Prize Winners because they did everything solo and didn’t get involved in the community or think about the health of the project as a whole, they just kept completing task after task like a machine. If you actively participate in the community then you not only feel the camaraderie that comes with working as a team but you become committed to making the project better for everyone.<br />
<br />
== Some basics about Sugar Labs ==<br />
<br />
For some basics about the project, see [http://people.sugarlabs.org/walter/docs/Learning-to-Change-the-World-Chapter-4.pdf Chapter 4 of Learning to Change the World].<br />
<br />
=== Getting started with coding ===<br />
<br />
Sugar development is in either Python or Javascript.<br />
<br />
* You will need knowledge of Python and GTK (See http://python-gtk-3-tutorial.readthedocs.org/en/latest/);<br />
* or Javascript/HTML5;<br />
* and then the basic of Sugar development (See http://www.flossmanuals.net/make-your-own-sugar-activities/);<br />
* and to have a Sugar development environment running (See http://developer.sugarlabs.org).<br />
<br />
Please note that you must run [http://legacy.python.org/dev/peps/pep-0008/#introduction pep8] and pyflakes on your code ''before'' submitting your patches.<br />
<br />
=== Getting started with GIT ===<br />
<br />
Some knowledge of git is important as your work will be submitted to our git repository (https://github.com/sugarlabs). The basic mechanism is a pull request (PR), which is detailed in [http://developer.sugarlabs.org/contributing.md.html].<br />
<br />
GitHub provides a tutorial (See https://try.github.io/levels/1/challenges/1), although there are many others as well.<br />
<br />
Note that our bug tracker is http:bugs.sugarlabs.org.<br />
<br />
=== Getting started with Sugarizer === <br />
<br />
Sugar Web Framework is the JavaScript Framework for Sugar [https://github.com/sugarlabs/sugar-docs/blob/master/web-architecture.md]. Sugarizer [http://sugarizer.org] is a subset of Sugar that allow runing activities developed with Sugar Web Framework on any web browser. Sugarizer is also available as Android, iOS, Firefox OS and Chrome Web App.<br />
<br />
<br />
== This is a stub for tasks for GCI 2016. ==<br />
<br />
* Fuzzing tool<br />
* Decimal places in Calculate activity<br />
* Music Blocks examples<br />
* Space team activity<br />
* Bugzilla clean up<br />
* Teach me how to draw activity<br />
* Manage order of blocks in Turtle plugins<br />
<br />
<!-- Begin comment out this section<br />
<br />
== Tasks ==<br />
'''Note:''' This is our preliminary list of tasks. We can add more as the contest progresses.<br />
<br />
Mentors: please feel free to add more tasks and/or add yourself as a potential mentor to an existing task.<br />
<br />
Tasks must fall within one of these five categories: [[#Documentation/Training]]; [[#Outreach/Research]]; [[#User Interface]]; [[#Quality Assurance]]; and [[#Code]].<br />
<br />
===Beginner Tasks===<br />
We have several tasks that are targeting people new to Sugar and Sugar development. You are only allowed to complete two beginner tasks.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Install the Sugar development environment||Following the instruction at [http://developer.sugarlabs.org/dev-environment.md.html], set up the Sugar development environment. Submit a screen-shot of the development environment running to complete this task. You can get help on our irc channel should you run into any difficulties.|| 48 || all || beginner<br />
|-<br />
|Install Sugar in a virtual machine||If your intention is to focus on documentation and training or outreach, then you may want to install Sugar in a virtual machine. Following the instructions at [http://wiki.sugarlabs.org/go/Sugar_Creation_Kit#Tutorials][http://wiki.sugarlabs.org/go/Sugar_on_a_Stick/Virtual_machines][http://wiki.sugarlabs.org/go/Downloads#Virtual_Machines_on_all_platforms], set up the Sugar development environment. Submit a screen-shot of the development environment running to complete this task. You can get help on our irc channel should you run into any difficulties.|| 48 || all || beginner<br />
|-<br />
|Create an example program in Turtle Blocks||We distribute examples with the Turtle Blocks programming environment. Create your example -- some art, some geometry, some multimedia, a simple game -- to be included with the package. Deliverable is a Turtle Blocks project file to be reviewed by Sugar Labs designers and educators. (Use either the Python version bundled with Sugar or the Javascript version at [http://turtle.sugarlabs.org Turtle Blocks JS]) One source of inspiration might be [https://www.pinterest.com/walterbender/turtle-art/]. || 48 || all || beginner<br />
|-<br />
|Create an example program in Music Blocks||We distribute examples with the [http://walterbender.github.io/musicblocks Music Blocks] programming environment. Create your example -- some music (and art) -- to be included with the package. Deliverable is a Music Blocks project file to be reviewed by Sugar Labs designers and educators. || 48 || all || beginner<br />
|-<br />
|Create a simple machine in Physics||We distribute examples with the [http://activities.sugarlabs.org/en-US/sugar/addon/4193 Physics Activity]. Create a simple machine we can include in the examples collection -- some interesting mechanical device. Deliverable is a Physics activity project file to be reviewed by Sugar Labs designers and educators. || 48 || all || beginner<br />
|}<br />
<br />
===Documentation/Training===<br />
Tasks related to creating/editing documents and helping others learn more<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Update the Sugar Labs entry in Wikipedia|| The Sugar Labs entry in Wikipedia could use some TLC. Please bring it up to date. || 48 || Walter || Documentation<br />
|-<br />
|Update the Sugar Labs wiki page on git||The [[Activity Team/Git Tutorial]] is out of date: we have migrated to GitHub. Please update the page to reflect the GitHub workflow. See http://developer.sugarlabs.org/contributing.md.html for more details || 48 || Walter || Documentation<br />
|-<br />
|Turtle Blocks Programming Guide 1|| Add live examples missing from the [https://github.com/walterbender/turtleblocksjs/blob/master/guide/README.md Guide to Programming with Turtle Blocks]. || 48 || Walter || Documentation<br />
|-<br />
|Turtle Blocks Programming Guide 2|| Extend the [https://github.com/walterbender/turtleblocksjs/blob/master/guide/README.md Guide to Programming with Turtle Blocks] to include more examples. || 48 || Walter || Documentation<br />
|-<br />
|Music Blocks Programming Guide|| Extend the [https://github.com/walterbender/musicblocks/blob/master/guide/README.md Guide to Programming with Music Blocks] to include more examples. || 48 || Walter || Documentation<br />
|-<br />
|Turtle Blocks Classroom Guide||Write a guide on how to use Turtle Blocks in the classroom -- a manual for teachers who might want to engage in programming. Please consult with a classroom teacher when creating the guide.|| 96 || Walter || Documentation<br />
|-<br />
|Music Blocks Classroom Guide||Write a guide on how to use Music Blocks in the classroom -- a manual for teachers who might want to engage in programming with Music. Please consult with a music teacher when creating the guide.|| 96 || Walter || Documentation<br />
|-<br />
|Sugarizer Server API Documentation||Write a documentation for the REST API for Sugarizer Server. Include some GET/POST/DELETE sample inside || 48|| Lionel || Documentation<br />
|-<br />
|Sugarizer Server Collaboration Tutorial||Write a tutorial on how to connect a Sugarizer Client to a Sugarizer Server and how to use it to do Journal sharing and collaboration || 24 || Lionel || Documentation<br />
|-<br />
|Sugarizer wiki page||Write a Sugarizer page in the SugarLabs wiki || 24 || Lionel || Documentation<br />
|}<br />
<br />
For information about how to create help pages for activities <br />
<br />
http://wiki.sugarlabs.org/go/Activities/Help/Contribute<br />
<br />
https://github.com/godiard/help-activity/blob/master/source/restructuredtext.rst<br />
<br />
https://github.com/godiard/help-activity/blob/master/source/collaborating.rst<br />
<br />
===Outreach/Research===<br />
Tasks related to community management, outreach/marketing, or studying problems and recommending solutions<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Turtle Art Day||Organize a Turtle Art Day in your community. Details at [http://people.sugarlabs.org/walter/Guia_Ingles_10-08-2013.pdf]||96||Walter||Outreach<br />
|-<br />
|Promo Video||Create a 60 second promotional video on Sugar and its community.||96||Mariah||Outreach<br />
|-<br />
|Hangout Q&A||Host a Question and Answer (Q&A)/Information session about Sugar on Google Hangouts. Invite friends, family, peers, as well as academic and community leaders.||96||Mariah||Outreach<br />
|-<br />
|Local Lab Wiki||Create/update a "Local Lab" page for your area/country. Fill in the page with information on the Sugar community in your area. This could include contact information, mailing lists, events and any other information that may be relevant. ||96||Mariah||Research<br />
|-<br />
|How-To Guide||Create a guide for how to host your own DIY Sugar on a Stick party. The guide should include at least two promotional item designs (like a sticker, brochure, flyer). Feel free to change the name to something else. ||96||Mariah||Outreach<br />
|-<br />
|DIY Sugar on a Stick||Organize and host a Sugar on a Stick party where you show people how to make their own Sugar on a Stick. Then, hold a workshop on the basics of using Sugar. Take pictures to document the experience. Post a blog about it.||96||Mariah||Outreach<br />
|-<br />
|Potential Users||Gather information on who could benefit from using or knowing about Sugar. Look at non-profit organizations, academic institutions, the home-school community. Build a database including contact information, website URLS, social media profiles, and any other relevant information.||96||Mariah||Research<br />
|-<br />
|Sugar Tools & Resources||Find the resources that people are using throughout the world to learn about or teach Sugar Activities. This can include manuals, teacher guides, YouTube videos, blogs, etc. Document what type of resource it is, the URL for the resource, the target audience of the resource and whether it is up-to-date.||96||Mariah||Research<br />
|-<br />
|Introduce Yourself||Write a blog post about why you are participating in Google Code-In, what you hope to learn from the GCI and how Sugar Labs can help you. Include a picture. Share blog post through social media.||48||Mariah||Outreach<br />
|-<br />
|Interview a GCI Peer||Interview another Sugar Labs GCI participant. Ask them questions about how they are selecting/completing tasks, any successes/struggles they are having, etc. Post on participant blog. Share blog post through social media.||48||Mariah||Outreach<br />
|--<br />
|Interview an Educator||Find an educator who is using open-source educational software to teach. Interview the educator about their experience as an educator and why they are using open-source software to teach. Post about it on the blog, include a picture. Share the blog post through social media and with the educator.||48||Mariah||Outreach|<br />
|-<br />
|Review an Activity||Write a review about an Activity in Sugar. Explain how you use it, what kind of project you could do with it, any bugs it might have, etc. Post your review. The review can be a video review or a written review with screenshots. Share the blog post through social media.||48||Mariah||Outreach<br />
|-<br />
|Women in the Sugar Community||Create a 10-minute presentation celebrating at least three women within the Sugar community and/or the open-source community at large. Write a blog post about what you learned when making this presentation and include a link to the presentation.||48||Mariah||Outreach<br />
|-<br />
|Wrap-Up||Write a blog post about your experience as a GCI participant for Sugar Labs. Share your thoughts on what was successful and what can be improved for next year's participants. Feel free to include pictures, videos, links to work that you are most proud of. Share the post through social media.||48||Mariah||Outreach<br />
|}<br />
<br />
===User Interface===<br />
Tasks related to user experience research or user interface design and interaction<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Icon design for Music Blocks||The icons used for the main toolbar in Music Block don't "sing" to me. This task is to design better icons both in terms of expressing the intention of the button and visual engagement of the user. || 72 || Walter, Devin || UI, design<br />
|-<br />
|Classroom collaboration|| Sugar provides tools for sharing and collaborating among students, e.g., peer editing of texts, chat, group programming, etc. Survey the list of collaboration-enabled activities and categorize them by whether they are learning utilities, classroom management utilities, communication, games, etc. || 72 || Walter || UI, pedagogy<br />
|-<br />
|Classroom management 1|| Sugar provides only a few tools for classroom management, e.g., the Share With Teacher webservice. Survey classroom services that run either as web services or native in desktop environments.|| 72 || Walter || UI, pedagogy<br />
|-<br />
|Classroom management 2|| Sugar provides only a few tools for classroom management, e.g., the Share With Teacher webservice. Which of the results from the Classroom management 1 task would be useful to incorporate into the Sugar ecosystem? Evaluation should include s description of the service and a sketch of how the user interaction would work. || 72 || Walter || UI, pedagogy<br />
|-<br />
|Sugar on a small screen|| Sugar was originally designed as a desktop environment for small computers. But these days, many children have access to smart phones rather than computers. This task is to make some sketches as to how Sugar might be redesigned for a smart phone form-factor. A series of annotated sketches should be made as part of completing this task. || 72 || Walter || UI<br />
|-<br />
|Programming on a small screen|| We put an emphasis on programming in Sugar. One popular programming environment is Turtle Blocks. Recently we made a Javascript version that can run in a browser (and hence on a smart phone). How should the UI change to accommodate that form-factor? A series of annotated sketches should be made as part of completing this task. || 72 || Walter || UI<br />
|-<br />
|End-user customization||We try to encourage our users to re-imagine Sugar as they'd like it. Users can change the icon layout, the background screen, and the XO avatar. What else should be made easier to customize with minimal programming? || 72 || Walter || UI<br />
|-<br />
|Sugarizer marketing web page||Create a marketing web page to explain what is Sugarizer and replace the [http://sugarizer.org current one] || 40 || Lionel || UI<br />
|}<br />
<br />
===Quality Assurance===<br />
Tasks related to testing and ensuring code is of high quality.<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
|Behavior diff for Turtle Blocks JS|| [https://turtle.sugarlabs.org Turtle Blocks JS] is a Javascript port from the Python version of the activity. The goal of this task is to document any differences in behavior between the two versions.||72||Walter||QA<br />
|-<br />
|Unit tests for JS activities||We have no unit tests for our Javascript activities. This task is to investigate approaches to unit testing in Javascript||72||Walter||QA<br />
|-<br />
|Test Sugar on a Stick || Help test the latest Sugar on a Stick on Fedora (F21). See [http://dl.fedoraproject.org/pub/alt/stage/21_Beta_RC4/], [https://fedoraproject.org/wiki/Test_Results:Fedora_21_Beta_RC4_Desktop#Sugar_.28non-blocking.2C_all_arches.29] #fedora-qa (freenode IRC). Deliverable is a report of the major Sugar features, e.g., desktop, journal, collaboration, and the core activities, e.g., Write, Browse, Turtle, Chat, Speak, etc. || 48 || Satellit || QA, SoaS<br />
|-<br />
|Interview a teacher|| Ultimately the quality of our work is determined by our end users. Interview a classroom teacher who is using Sugar and solicit feedback about what works, what doesn't. || 72 || Walter || QA<br />
|-<br />
|Interview a student|| Ultimately the quality of our work is determined by our end users. Interview a student who is using Sugar in school and solicit feedback about what works, what doesn't. || 72 || Walter || QA<br />
|}<br />
<br />
===Code===<br />
Tasks related to writing or refactoring code<br />
<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Title !! Description !! Hours !! Mentor !! Tag<br />
|-<br />
| Turtle Confusion in Javascript || [http://activities.sugarlabs.org/en-US/sugar/addon/4450 Turtle Confusion] presents 40 shape challenges to the learner that must be completed using basic Logo-blocks. The challenges as based on Barry Newell's 1988 book, Turtle Confusion: Logo Puzzles and Riddles. This task is to implement Turtle Confusion within the framework of the [http://turtle.sugarlabs.org JavaScript version of Turtle Blocks].|| 72 || Walter || Code, JavaScript<br />
|-<br />
| Turtle Blocks JS: Loudness block doesn't work on Windows || [[https://github.com/walterbender/turtleblocksjs/issues/238] Issue 238 || 72 || Walter, Amit || Code, JavaScript<br />
|-<br />
| Turtle Blocks JS: Cannot import images on Android || [[https://github.com/walterbender/turtleblocksjs/issues/237] Issue 237 || 72 || Walter, Amit || Code, JavaScript<br />
|-<br />
| Turtle Blocks JS: Camera doesn't work on Android || [[https://github.com/walterbender/turtleblocksjs/issues/236] Issue 236 || 72 || Walter, Amit || Code, JavaScript<br />
|-<br />
| Music Blocks Android || [https://github.com/walterbender/musicblocks/issues/51 Issue 51] does Tonejs work on Android? is there an alternative? || 72 || Walter, Devin || Code, JavaScript<br />
|-<br />
| Music Blocks Safari download || [https://github.com/walterbender/musicblocks/issues/37 Issue 37] Safari does not "download" the .tb files, it just opens a new window with the code in it. || 72 || Walter, Devin || Code, JavaScript<br />
|}<br />
<br />
End of commented out section --><br />
<br />
<!--<br />
== Unsorted tasks ==<br />
=== Sugar enhancements from bugs.sugarlabs.org ===<br />
Each of these open tickets is potential task-worthy.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Ticket !! Description !! Type !! Component<br />
|-<br />
| [http://bugs.sugarlabs.org/ticket/1646 1646] || No way to force-close (kill) an activity || enhancement || Sugar<br />
|}<br />
<br />
=== Sugar bugs from bugs.sugarlabs.org ===<br />
Each of these open tickets is potential task-worthy.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Ticket !! Description !! Type !! Component<br />
|-<br />
| [http://bugs.sugarlabs.org/ticket/4307 4307] || clipboard.set_with_data/set_with_owner is not introspectable || defect || Sugar<br />
|}<br />
<br />
=== Activity enhancements from bugs.sugarlabs.org ===<br />
Each of these open tickets is potential task-worthy.<br />
{| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;"<br />
|-style="background:#787878; color: white;"<br />
!Ticket !! Description !! Component<br />
|-<br />
| [http://bugs.sugarlabs.org/ticket/758 758] || Port to new tube API || Read<br />
|}<br />
--><br />
<br />
== Mentors ==<br />
;NOTES TO MENTORS:<br />
:Please refer to [[Google Code In 2016/Participate#Mentors]] for details regarding enrolling as a mentor.<br />
:Please add yourself to the list below.<br />
:Feel free to add new tasks to the table above.<br />
<br />
Depending on the project, we will assign multiple mentors from our various development and support teams.<br />
<br />
* Walter Bender - also org admin for GCI<br />
* Sam Parkinson<br />
* Ignacio Rodriguez<br />
* Lionel Laské<br />
* Batchu Venkat Vishal</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Google_Code_In_2016&diff=99316Google Code In 20162016-10-25T18:47:54Z<p>Erilyth: Add a project idea</p>
<hr />
<div>This is a stub for creating a landing page for GCI 2016.<br />
<br />
----<br />
<br />
project ideas:<br />
<br />
* Fuzzing tool<br />
* Decimal places in Calculate activity<br />
* Music Blocks examples<br />
* Space team activity<br />
* Bugzilla clean up<br />
* Teach me how to draw activity</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/SugarizerActivitySet&diff=97378Summer of Code/2016/SugarizerActivitySet2016-03-23T05:54:59Z<p>Erilyth: /* About your project */</p>
<hr />
<div>Sugarizer Activity Set<br />
<br />
== About You ==<br />
<br />
'''What is your name?'''<br />
<br />
My name is Batchu Venkat Vishal, I am a 2nd-year undergrad student from [http://www.iiit.ac.in/ International Institute of Information Technology Hyderabad] (IIITH)<br />
<br />
<br />
'''What is your email address?'''<br />
<br />
[mailto:vishal.batchu@students.iiit.ac.in vishal.batchu@students.iiit.ac.in]<br />
<br />
Alternate, [mailto:vishalvenkat71@gmail.com vishalvenkat71@gmail.com]<br />
<br />
<br />
'''What is your Sugar Labs wiki username?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your IRC nickname on irc.freenode.net?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)'''<br />
<br />
My native language is Telugu, I am fluent in English and speak a bit of Hindi.<br />
<br />
<br />
'''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.)'''<br />
<br />
I'm located in Hyderabad (Telangana), India.<br />
<br />
I'm planning to work 12:00 UTC - 18:00 UTC on Monday, Tuesday, Wednesday, Thursday, Friday and Saturday and 8:00 UTC - 19:00 UTC on Sundays.<br />
<br />
<br />
'''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?'''<br />
<br />
I am new to open source, but I have contributed to some open source organizations which were founded in my college ( [https://felicity.iiit.ac.in/ College Fest Website] ([https://github.com/felicity-iiith/ https://github.com/felicity-iiith/]), [http://osdg.iiit.ac.in/ College OSDG website] ([https://github.com/OSDG-IIITH https://github.com/OSDG-IIITH]) ). Sugar Labs and OLPC have amazed me, I have always wanted to do something which would help others learn especially when I think of all the kids out there who are unable to get a quality education. When I stumbled upon SugarLabs I knew it was the way in which I could use my knowledge and help spread educational tools to millions of others out there. Open source is the best way to get exposure and collaborate with lots of others just like us, and get to know about their views and what others think. It's a means by which I can make a difference in the society.<br />
<br />
== About your project ==<br />
<br />
<br />
<br />
'''What is the name of your project?'''<br />
<br />
Sugarizer Activity Set<br />
<br />
<br />
'''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? What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; 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 (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.'''<br />
<br />
The project is a full rewriting of a few Sugar apps which will be ported to Sugar Web:<br />
# Moon - Moon is a Lunar phase activity, including upcoming Lunar eclipse information and simulated visual effect during an eclipse.<br />
# Speak - Speak is a talking face for Sugar. It can respond to a wider range of queries from the user.<br />
# Fototoon - Fototoon lets users add comic effects and allows the creation of a collage to their pictures.<br />
(and more if time permits)<br />
<br />
<br />
These activities will be ported using the Sugar Web Framework in order to reach a much larger audience. The Sugarizer/Web apps are available to a lot of children since they are supported by any Web Browser or an XO. This would enable every child to have access and use these activities at their convenience. Children should be able to have the same learning capabilities no matter what platform they are using to run the activities which can be achieved with Sugarizer.<br />
<br />
<br />
The main technologies that will be used are HTML5 and Javascript. Understanding Python source code will be required to understand the current versions of the activities so that the activities created on Sugar Web for the Sugarizer should have similar features to the ones right now.<br />
<br />
<br />
'''A few problems I might face during the implementation in javascript:'''<br />
* Storage of data (audio, images) on the Sugar Web platform.<br />
* Compatibility and adaptability with devices of different sizes(phones, tablets etc) and also touch screen capabilities, if they can be used effectively.<br />
* Browser portability and compatibility.<br />
<br />
<br />
<br />
<br />
<br />
'''Libraries in consideration and methods of implementation:'''<br />
<br />
Here are some of the libraries I am considering to use for the project to ease the development process. This is not a static list and can change as and when I am implementing the features of the activities.<br />
# [https://github.com/kripken/speak.js/ speak.js] or [http://www.masswerk.at/mespeak/ mespeak.js] for text to speech generation in javascript for the ‘Speak’ activity. (GNU GENERAL PUBLIC License)<br />
# Google Translate to generate the audio for given text, also to be used with the ‘Speak’ activity. (This requires us to be online while using the activity but the speech synthesized is of a higher quality).<br />
# [https://github.com/desandro/masonry masonry.js] for clean and simple grid layouts for the ‘Fototoon’ activity. (MIT License)<br />
# [https://github.com/hammerjs/hammer.js hammer.js][https://github.com/hammerjs/hammer.js ]for recognizing and using touch gestures and multi-touch gestures (if needed). (MIT License)<br />
# [https://github.com/desandro/draggabilly draggabilly.js] for simple draggable interfaces for the ‘Fototoon’ activity.<br />
<br />
Some standard JS libraries I am considering to use:<br />
<br />
# [https://jquery.com/ jquery] for a lot of added functionality to javascript<br />
# [https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API canvas] to make drawing a lot simpler on javascript<br />
<br />
<br />
These are some libraries that I will look into in order to accelerate the development. I will use an Agile development process also including some iteration and incremental implementation. <br />
<br />
I have downloaded the Moon, Speak and Fototoon xo files and have used them thoroughly to analyze and understand what are the features that each of them provides which I will be implementing. I will try my best to keep the look and feel of the activities to be as similar as possible to the current implementations.<br />
<br />
<br />
'''My timeline:'''<br />
<br />
<br />
<br />
{| style="border-spacing:0;"<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Week'''<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Work Scheduled'''<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 0<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
* Setup a basic MVC architecture in javascript which can be used by the activities (If needed).<br />
* Compatibility checks of libraries with different devices.<br />
* Setup sample codes using the libraries which can be used in the activities as and when needed.<br />
* Take a look at how touch screen capabilities can improve the user experience on mobile devices.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 1 - 19 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Basic UI for the face with eyeballs following the cursor.<br />
* Basic text to speech conversion and use a suitable library for the ‘Type something to hear it’ mode.<br />
* Pitch, rate and language features.<br />
* Number of eyes feature.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 2 - 25 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Mouth motion for the face.<br />
* ‘Ask the robot’ mode and add some basic AI to respond to users.<br />
* Add the ‘Voice Chat / Chat ’ mode. (basic)<br />
* Add types of eyes which the user can select.<br />
* Add types of mouths which the user can select.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 3 - 1 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* ‘Set face from photo’ feature.<br />
* Improve the AI which runs on the ‘Ask the robot’ mode.<br />
* Improve ‘Chat’ mode and make it functional.<br />
<br />
<br />
<br />
<br />
<br />
FotoToon Activity:<br />
* Image upload from journal/local machine.<br />
* Basic box globe(chat box) addition feature and movement lines, enable them to be dragged in the image.<br />
* Full-screen mode.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 4 - 8 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Save as image option.<br />
<br />
* Add other types of globes.<br />
* Add text customization features for text within the different globes.<br />
* Rotation of globes.<br />
* Deletion of globes.<br />
* Add background image for activity.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 5 - 15 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Reordering of images.<br />
* Slideshow and slideshow with timing modes to view the pictures.<br />
* Save as pdf and movie options.<br />
<br />
<br />
<br />
<br />
<br />
Moon Activity:<br />
* Basic UI and moon image.<br />
* Grid view overlay for the image.<br />
* Display information regarding the current state of the moon.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 6 - 22 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity:<br />
* Shade parts of the moon depending on the day.<br />
<br />
* Toggle hemisphere views.<br />
* Save as image option to save the current state of the moon.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Midterm Evaluations<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 7 - 29 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to evaluations:<br />
* Depending on the evaluations improve/fix bugs on the activities etc.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 8 - 6 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity testing and reviews:<br />
* Get detailed feedback on the Speak activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 9 - 13 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity testing and reviews:<br />
* Get detailed feedback on the FotoToon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 10 - 20 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity testing and reviews:<br />
* Get detailed feedback on the Moon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 11 - 27 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities testing:<br />
* Ensure the documentation is done properly.<br />
* Do a final test of all the activities.<br />
* Relax a bit as well :)<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 12 - 3 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities review and evaluation from the Sugar community:<br />
* Ask other members who use these activities on Sugar to review this on Sugarizer and ensure they are satisfied with their experience.<br />
* Start working on a 4th activity if there is time<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 13 - 10 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to reviews:<br />
* If anything needs to be done after the reviews, I will do it.<br />
* Continue working on a 4th activity if there is time<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 14 - 17 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Final Activity checks:<br />
* Ensure everything works properly and I am ready to submit my project to google.<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Final Evaluations - 21 August<br />
<br />
|}<br />
<br />
<br />
'''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.'''<br />
<br />
I have a strong passion for programming and feel content when I code. I never leave work unattended or halfway through since I feel that not starting the work at all is a lot better than leaving it halfway. I do quite well in other areas as well, my GPA is 9.8/10. I often like to spend time talking to others about their experiences developing something or working for an organization since it helps me learn more about others and how I can improve my ways.<br />
<br />
I don’t have any other commitments this summer apart from this, so spending around 6 hrs a day won’t be a problem at all. I often like to take up leadership and responsibility of work that needs to be done as part of college when we work in groups and always finish work on time or earlier if possible.<br />
<br />
I have started developing the Speak activity in JS and have got the basic features such as eye motion, mouth motion, number of eyes, text to speech, automated bot responses (AIML based) etc working. This is just a starting prototype kind of thing which I will build up on during my project and make it work as similar to the original Speak activity as possible. Here is a link to the [http://speak-activity-sugarizer.bitballoon.com/ demo].<br />
<br />
I have also fixed quite a few bugs and added some features to Sugar, so I am quite familiar with the development environment used for developing on Sugar and Sugar-Web. I have also tried to make a simple activity on sugar for testing purposes, it's the [http://activities.sugarlabs.org/en-US/sugar/addon/4785 Simon Says game]. I have worked both with python based activities in Sugar and also with Sugar-Web based projects (musicblocks etc) which is what this project needs in order to port python based activities to web-based activities to be used with Sugarizer.<br />
<br />
<br />
'''Projects I have worked on:'''<br />
# [https://trendspace.pythonanywhere.com/ Trendspace] '''- A shopping website made using the web2py framework.<br />
# [https://github.com/erilyth/OpenGL-C- Cannon Game] '''- A 2D cannon shooter game made entirely using OpenGL and C++.<br />
# [https://github.com/erilyth/OpenGL-3D Adventure Game] '''- A 3D survival game made using OpenGL and C++ with models created using Blender.<br />
# [https://github.com/erilyth/DonkeyKong-Pygame Donkey Kong] '''- A 2D version of the Donkey Kong game made using Pygame.<br />
# [https://github.com/erilyth/Tangram-Game Tangram Game] '''- A version of Tangram(Block Puzzle) developed using Cocos2D-JS targeting mobile devices mainly.<br />
# [https://github.com/Achilles-96/File-sharing-client File Transfer Protocol] '''- A simple file sharing client using which we can share files, check validity using hashes and index based searching. It uses the TCP and UDP (handling losses) protocols for transfer.<br />
# [https://github.com/erilyth/First-Person-Shooter-Unity- FPS Shooter] '''- A 3D basic first person shooter game made using Unity in C#.<br />
# [https://github.com/erilyth/Box-Stacking-Game Box Stacking Game] '''- A simple click and drag box stacking game made using Unity in C#.<br />
<br />
<br />
<br />
<br />
<br />
I have also worked on a lot of other smaller projects and also do competitive programming, you can take a look at my [https://github.com/erilyth github profile] and [http://codeforces.com/profile/Erilyth codeforces profile].<br />
<br />
<br />
Here are some screenshots of the games I developed,<br />
* Cannon Game:<br />
[[File:Cannongame-vishal.png|800px]]<br />
<br />
* Adventure Game:<br />
[[File:Adventure1-vishal.png|800px]]<br />
<br />
* Donkey Kong:<br />
[[File:Dokneykong-vishal.png|800px]]<br />
<br />
* Tangram Game:<br />
[[File:Tangram2.jpg|800px]]<br />
<br />
* Box Stacking Game:<br />
[[File:BoxStacking.png|800px]]<br />
<br />
* First Person Shooter:<br />
[[File:FirstPersonShooter2.png|800px]]<br />
<br />
I use [http://erilyth.github.io/ my website] and my blog to share my projects ([https://github.com/erilyth/My-Website https://github.com/erilyth/My-Website]). I have used Node.js along with Angular.js to develop the website.<br />
<br />
<br />
I often try to follow the principles of “'''DIY'''” (Do It Yourself) and have also worked with electronics and made a few simple robots in the past. My profile on [http://www.instructables.com/member/vishalapr/ instructables.com].<br />
<br />
Some of the projects I have made,<br />
# [http://goo.gl/5z48UJ POV Display]<br />
# [http://goo.gl/xEdT4C Wall Avoiding Robot]<br />
<br />
== You and the community ==<br />
<br />
'''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.'''<br />
<br />
<br />
'''My answer:'''<br />
<br />
A lot more students and teachers around the world would get access to &nbsp;some of the best activities on sugar. These activities can then be used on any device which would make them a lot more handy and useful. Some of the most popular apps on Sugar would now be available to use on any Sugarizer device so they can use them wherever they want at their convenience. This would help students learn at their own pace anywhere they want as long as they have a Sugarizer enabled device. Using the Moon activity sitting outside watching the moon during the night and analyzing it, using the Speak, Fototoon activities to learn while travelling etc will allow users to have a much more thorough and immerse experience of using these activities.<br />
<br />
<br />
'''Lionel Laské:'''<br />
<br />
Activities in the Sugarizer Activity Set are 3 of most famous Sugar activities. It's very important to have a full experience of Sugar on any device that these activities must be available into Sugar-Web. Plus these activities was proven during deployment to be very attractive for children using Sugar and at least Speak and Fototoon allow them to express their creativity.<br />
<br />
<br />
'''Walter Bender:'''<br />
<br />
Speak and Fototoons are nice examples of tools that let encourage exploration of narrative. It is central to our pedagogy that we engage learners in constructing and expressing.<br />
<br />
<br />
'''What will you do if you get stuck on your project and your mentor isn't around?'''<br />
<br />
I will try to see if I can figure it out myself, using the internet (Google, Stackoverflow, Quora etc) or use some books. If this doesn’t help then I will try to seek help from the Sugar community on the IRC or send a mail on the developer mailing list. I would also ask my friends here who have great amounts of knowledge on a wide variety of topics and they could help me sort the problem out.<br />
<br />
<br />
'''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?'''<br />
<br />
I have a blog set up accessible from [http://erilyth.github.io/ my website], [http://vishalbatchu.blog.com/ my blog]. I will be updating the status of the project and anything else related to Sugar over there every week. I will use the IRC to get reviews on my work by others and also learn what I need to improve from others. I will document my code properly and use appropriate commit messages (git) so others can take a look at my work easily. If required, I will also create pages on the Sugar Wiki.<br />
<br />
== Miscellaneous ==<br />
<br />
'''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". '''<br />
<br />
[[File:Sugar-vishal.png|800px]]<br />
<br />
<br />
'''Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.'''&nbsp;&nbsp;&nbsp; <br />
* Add a CollabWrapper based Text Editor to Sugar: [https://github.com/samdroid-apps/collabwrapper/pull/1 https://github.com/samdroid-apps/collabwrapper/pull/1] '''Merged'''<br />
* Add export matrix feature to Music Blocks: [https://github.com/walterbender/musicblocks/pull/97 https://github.com/walterbender/musicblocks/pull/97] '''Merged'''<br />
* Collaboration Refactoring in Story: [https://github.com/walterbender/story/pull/4 https://github.com/walterbender/story/pull/4] '''Merged'''<br />
* Save and Load file buttons in Music Blocks: [https://github.com/walterbender/musicblocks/pull/115 https://github.com/walterbender/musicblocks/pull/115] '''Merged'''<br />
* Notification drag to act like a clipboard entry: [https://github.com/sugarlabs/sugar/pull/633/files https://github.com/sugarlabs/sugar/pull/633/files] '''Merged'''<br />
* Add icon hover effects: [https://github.com/llaske/sugarizer/pull/32 https://github.com/llaske/sugarizer/pull/32] '''Merged'''<br />
<br />
And a lot more minor bug fixes and feature requests, [https://github.com/search?p=1&q=is%3Apr+author%3Aerilyth+is%3Aclosed+&type=Issues&utf8=%E2%9C%93 My contributions to SugarLabs]<br />
<br />
<br />
'''If you plan to work on Sugar-Web projects we want to be sure that you're familiar with web technologies, so:'''<br />
* '''Clone the'''[https://github.com/llaske/Sugarizer ][https://github.com/llaske/Sugarizer Sugarizer repository]<br />
* '''Using instructions'''[https://github.com/llaske/Sugarizer#create-your-own-activity ][https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity'''<br />
* '''Send us a screenshot of your new activity executed in Sugarizer'''<br />
<br />
[[File:Sugarizer-vishal.png|800px]]<br />
<br />
<br />
'''Describe a great learning experience you had as a child.'''<br />
<br />
When I was younger I always used to have a negative feeling towards teachers. I used to make fun of them and felt that they come to teach only because they don’t have anywhere else to go. I guess I got these feelings since I didn’t like it when they yelled at us (of course for our own mistakes, but I didn’t realize that then). One day I was called up to teach something to the entire class, it was a topic that I was fairly familiar with so I went up there and started teaching. This is when everything changed, I felt a huge amount of joy and excitement. I realized that teaching is not a profession that is chosen because there is nothing else to choose but because it is probably one of the best things to do! From that point on I have always respected teachers and have always loved to share my knowledge with others, just like teachers do.<br />
<br />
<br />
'''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?'''<br />
<br />
Nope, everything is just fine!<br />
[[Category:2016 GSoC applications]]</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/SugarizerActivitySet&diff=97377Summer of Code/2016/SugarizerActivitySet2016-03-23T05:49:55Z<p>Erilyth: /* About your project */</p>
<hr />
<div>Sugarizer Activity Set<br />
<br />
== About You ==<br />
<br />
'''What is your name?'''<br />
<br />
My name is Batchu Venkat Vishal, I am a 2nd-year undergrad student from [http://www.iiit.ac.in/ International Institute of Information Technology Hyderabad] (IIITH)<br />
<br />
<br />
'''What is your email address?'''<br />
<br />
[mailto:vishal.batchu@students.iiit.ac.in vishal.batchu@students.iiit.ac.in]<br />
<br />
Alternate, [mailto:vishalvenkat71@gmail.com vishalvenkat71@gmail.com]<br />
<br />
<br />
'''What is your Sugar Labs wiki username?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your IRC nickname on irc.freenode.net?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)'''<br />
<br />
My native language is Telugu, I am fluent in English and speak a bit of Hindi.<br />
<br />
<br />
'''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.)'''<br />
<br />
I'm located in Hyderabad (Telangana), India.<br />
<br />
I'm planning to work 12:00 UTC - 18:00 UTC on Monday, Tuesday, Wednesday, Thursday, Friday and Saturday and 8:00 UTC - 19:00 UTC on Sundays.<br />
<br />
<br />
'''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?'''<br />
<br />
I am new to open source, but I have contributed to some open source organizations which were founded in my college ( [https://felicity.iiit.ac.in/ College Fest Website] ([https://github.com/felicity-iiith/ https://github.com/felicity-iiith/]), [http://osdg.iiit.ac.in/ College OSDG website] ([https://github.com/OSDG-IIITH https://github.com/OSDG-IIITH]) ). Sugar Labs and OLPC have amazed me, I have always wanted to do something which would help others learn especially when I think of all the kids out there who are unable to get a quality education. When I stumbled upon SugarLabs I knew it was the way in which I could use my knowledge and help spread educational tools to millions of others out there. Open source is the best way to get exposure and collaborate with lots of others just like us, and get to know about their views and what others think. It's a means by which I can make a difference in the society.<br />
<br />
== About your project ==<br />
<br />
<br />
<br />
'''What is the name of your project?'''<br />
<br />
Sugarizer Activity Set<br />
<br />
<br />
'''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? What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; 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 (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.'''<br />
<br />
The project is a full rewriting of a few Sugar apps which will be ported to Sugar Web:<br />
# Moon - Moon is a Lunar phase activity, including upcoming Lunar eclipse information and simulated visual effect during an eclipse.<br />
# Speak - Speak is a talking face for Sugar. It can respond to a wider range of queries from the user.<br />
# Fototoon - Fototoon lets users add comic effects and allows the creation of a collage to their pictures.<br />
(and more if time permits)<br />
<br />
<br />
These activities will be ported using the Sugar Web Framework in order to reach a much larger audience. The Sugarizer/Web apps are available to a lot of children since they are supported by any Web Browser or an XO. This would enable every child to have access and use these activities at their convenience. Children should be able to have the same learning capabilities no matter what platform they are using to run the activities which can be achieved with Sugarizer.<br />
<br />
<br />
The main technologies that will be used are HTML5 and Javascript. Understanding Python source code will be required to understand the current versions of the activities so that the activities created on Sugar Web for the Sugarizer should have similar features to the ones right now.<br />
<br />
<br />
'''A few problems I might face during the implementation in javascript:'''<br />
* Storage of data (audio, images) on the Sugar Web platform.<br />
* Compatibility and adaptability with devices of different sizes(phones, tablets etc) and also touch screen capabilities, if they can be used effectively.<br />
* Browser portability and compatibility.<br />
<br />
<br />
<br />
<br />
<br />
'''Libraries in consideration and methods of implementation:'''<br />
<br />
Here are some of the libraries I am considering to use for the project to ease the development process. This is not a static list and can change as and when I am implementing the features of the activities.<br />
# [https://github.com/kripken/speak.js/ speak.js] or [http://www.masswerk.at/mespeak/ mespeak.js] for text to speech generation in javascript for the ‘Speak’ activity. (GNU GENERAL PUBLIC License)<br />
# Google Translate to generate the audio for given text, also to be used with the ‘Speak’ activity. (This requires us to be online while using the activity but the speech synthesized is of a higher quality).<br />
# [https://github.com/desandro/masonry masonry.js] for clean and simple grid layouts for the ‘Fototoon’ activity. (MIT License)<br />
# [https://github.com/hammerjs/hammer.js hammer.js][https://github.com/hammerjs/hammer.js ]for recognizing and using touch gestures and multi-touch gestures (if needed). (MIT License)<br />
# [https://github.com/desandro/draggabilly draggabilly.js] for simple draggable interfaces for the ‘Fototoon’ activity.<br />
<br />
Some standard JS libraries I am considering to use with all of these activities are:<br />
<br />
# [https://jquery.com/ jquery] for a lot of added functionality to javascript<br />
# [https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API canvas] to make drawing a lot simpler on javascript<br />
<br />
<br />
These are some libraries that I will look into in order to accelerate the development. I will use an Agile development process also including some iteration and incremental implementation. <br />
<br />
I have downloaded the Moon, Speak and Fototoon xo files and have used them thoroughly to analyze and understand what are the features that each of them provides which I will be implementing. I will try my best to keep the look and feel of the activities to be as similar as possible to the current implementations.<br />
<br />
<br />
'''My timeline:'''<br />
<br />
<br />
<br />
{| style="border-spacing:0;"<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Week'''<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Work Scheduled'''<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 0<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
* Setup a basic MVC architecture in javascript which can be used by the activities (If needed).<br />
* Compatibility checks of libraries with different devices.<br />
* Setup sample codes using the libraries which can be used in the activities as and when needed.<br />
* Take a look at how touch screen capabilities can improve the user experience on mobile devices.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 1 - 19 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Basic UI for the face with eyeballs following the cursor.<br />
* Basic text to speech conversion and use a suitable library for the ‘Type something to hear it’ mode.<br />
* Pitch, rate and language features.<br />
* Number of eyes feature.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 2 - 25 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Mouth motion for the face.<br />
* ‘Ask the robot’ mode and add some basic AI to respond to users.<br />
* Add the ‘Voice Chat / Chat ’ mode. (basic)<br />
* Add types of eyes which the user can select.<br />
* Add types of mouths which the user can select.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 3 - 1 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* ‘Set face from photo’ feature.<br />
* Improve the AI which runs on the ‘Ask the robot’ mode.<br />
* Improve ‘Chat’ mode and make it functional.<br />
<br />
<br />
<br />
<br />
<br />
FotoToon Activity:<br />
* Image upload from journal/local machine.<br />
* Basic box globe(chat box) addition feature and movement lines, enable them to be dragged in the image.<br />
* Full-screen mode.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 4 - 8 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Save as image option.<br />
<br />
* Add other types of globes.<br />
* Add text customization features for text within the different globes.<br />
* Rotation of globes.<br />
* Deletion of globes.<br />
* Add background image for activity.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 5 - 15 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Reordering of images.<br />
* Slideshow and slideshow with timing modes to view the pictures.<br />
* Save as pdf and movie options.<br />
<br />
<br />
<br />
<br />
<br />
Moon Activity:<br />
* Basic UI and moon image.<br />
* Grid view overlay for the image.<br />
* Display information regarding the current state of the moon.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 6 - 22 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity:<br />
* Shade parts of the moon depending on the day.<br />
<br />
* Toggle hemisphere views.<br />
* Save as image option to save the current state of the moon.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Midterm Evaluations<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 7 - 29 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to evaluations:<br />
* Depending on the evaluations improve/fix bugs on the activities etc.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 8 - 6 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity testing and reviews:<br />
* Get detailed feedback on the Speak activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 9 - 13 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity testing and reviews:<br />
* Get detailed feedback on the FotoToon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 10 - 20 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity testing and reviews:<br />
* Get detailed feedback on the Moon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 11 - 27 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities testing:<br />
* Ensure the documentation is done properly.<br />
* Do a final test of all the activities.<br />
* Relax a bit as well :)<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 12 - 3 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities review and evaluation from the Sugar community:<br />
* Ask other members who use these activities on Sugar to review this on Sugarizer and ensure they are satisfied with their experience.<br />
* Start working on a 4th activity if there is time<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 13 - 10 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to reviews:<br />
* If anything needs to be done after the reviews, I will do it.<br />
* Continue working on a 4th activity if there is time<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 14 - 17 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Final Activity checks:<br />
* Ensure everything works properly and I am ready to submit my project to google.<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Final Evaluations - 21 August<br />
<br />
|}<br />
<br />
<br />
'''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.'''<br />
<br />
I have a strong passion for programming and feel content when I code. I never leave work unattended or halfway through since I feel that not starting the work at all is a lot better than leaving it halfway. I do quite well in other areas as well, my GPA is 9.8/10. I often like to spend time talking to others about their experiences developing something or working for an organization since it helps me learn more about others and how I can improve my ways.<br />
<br />
I don’t have any other commitments this summer apart from this, so spending around 6 hrs a day won’t be a problem at all. I often like to take up leadership and responsibility of work that needs to be done as part of college when we work in groups and always finish work on time or earlier if possible.<br />
<br />
I have started developing the Speak activity in JS and have got the basic features such as eye motion, mouth motion, number of eyes, text to speech, automated bot responses (AIML based) etc working. This is just a starting prototype kind of thing which I will build up on during my project and make it work as similar to the original Speak activity as possible. Here is a link to the [http://speak-activity-sugarizer.bitballoon.com/ demo].<br />
<br />
I have also fixed quite a few bugs and added some features to Sugar, so I am quite familiar with the development environment used for developing on Sugar and Sugar-Web. I have also tried to make a simple activity on sugar for testing purposes, it's the [http://activities.sugarlabs.org/en-US/sugar/addon/4785 Simon Says game]. I have worked both with python based activities in Sugar and also with Sugar-Web based projects (musicblocks etc) which is what this project needs in order to port python based activities to web-based activities to be used with Sugarizer.<br />
<br />
<br />
'''Projects I have worked on:'''<br />
# [https://trendspace.pythonanywhere.com/ Trendspace] '''- A shopping website made using the web2py framework.<br />
# [https://github.com/erilyth/OpenGL-C- Cannon Game] '''- A 2D cannon shooter game made entirely using OpenGL and C++.<br />
# [https://github.com/erilyth/OpenGL-3D Adventure Game] '''- A 3D survival game made using OpenGL and C++ with models created using Blender.<br />
# [https://github.com/erilyth/DonkeyKong-Pygame Donkey Kong] '''- A 2D version of the Donkey Kong game made using Pygame.<br />
# [https://github.com/erilyth/Tangram-Game Tangram Game] '''- A version of Tangram(Block Puzzle) developed using Cocos2D-JS targeting mobile devices mainly.<br />
# [https://github.com/Achilles-96/File-sharing-client File Transfer Protocol] '''- A simple file sharing client using which we can share files, check validity using hashes and index based searching. It uses the TCP and UDP (handling losses) protocols for transfer.<br />
# [https://github.com/erilyth/First-Person-Shooter-Unity- FPS Shooter] '''- A 3D basic first person shooter game made using Unity in C#.<br />
# [https://github.com/erilyth/Box-Stacking-Game Box Stacking Game] '''- A simple click and drag box stacking game made using Unity in C#.<br />
<br />
<br />
<br />
<br />
<br />
I have also worked on a lot of other smaller projects and also do competitive programming, you can take a look at my [https://github.com/erilyth github profile] and [http://codeforces.com/profile/Erilyth codeforces profile].<br />
<br />
<br />
Here are some screenshots of the games I developed,<br />
* Cannon Game:<br />
[[File:Cannongame-vishal.png|800px]]<br />
<br />
* Adventure Game:<br />
[[File:Adventure1-vishal.png|800px]]<br />
<br />
* Donkey Kong:<br />
[[File:Dokneykong-vishal.png|800px]]<br />
<br />
* Tangram Game:<br />
[[File:Tangram2.jpg|800px]]<br />
<br />
* Box Stacking Game:<br />
[[File:BoxStacking.png|800px]]<br />
<br />
* First Person Shooter:<br />
[[File:FirstPersonShooter2.png|800px]]<br />
<br />
I use [http://erilyth.github.io/ my website] and my blog to share my projects ([https://github.com/erilyth/My-Website https://github.com/erilyth/My-Website]). I have used Node.js along with Angular.js to develop the website.<br />
<br />
<br />
I often try to follow the principles of “'''DIY'''” (Do It Yourself) and have also worked with electronics and made a few simple robots in the past. My profile on [http://www.instructables.com/member/vishalapr/ instructables.com].<br />
<br />
Some of the projects I have made,<br />
# [http://goo.gl/5z48UJ POV Display]<br />
# [http://goo.gl/xEdT4C Wall Avoiding Robot]<br />
<br />
== You and the community ==<br />
<br />
'''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.'''<br />
<br />
<br />
'''My answer:'''<br />
<br />
A lot more students and teachers around the world would get access to &nbsp;some of the best activities on sugar. These activities can then be used on any device which would make them a lot more handy and useful. Some of the most popular apps on Sugar would now be available to use on any Sugarizer device so they can use them wherever they want at their convenience. This would help students learn at their own pace anywhere they want as long as they have a Sugarizer enabled device. Using the Moon activity sitting outside watching the moon during the night and analyzing it, using the Speak, Fototoon activities to learn while travelling etc will allow users to have a much more thorough and immerse experience of using these activities.<br />
<br />
<br />
'''Lionel Laské:'''<br />
<br />
Activities in the Sugarizer Activity Set are 3 of most famous Sugar activities. It's very important to have a full experience of Sugar on any device that these activities must be available into Sugar-Web. Plus these activities was proven during deployment to be very attractive for children using Sugar and at least Speak and Fototoon allow them to express their creativity.<br />
<br />
<br />
'''Walter Bender:'''<br />
<br />
Speak and Fototoons are nice examples of tools that let encourage exploration of narrative. It is central to our pedagogy that we engage learners in constructing and expressing.<br />
<br />
<br />
'''What will you do if you get stuck on your project and your mentor isn't around?'''<br />
<br />
I will try to see if I can figure it out myself, using the internet (Google, Stackoverflow, Quora etc) or use some books. If this doesn’t help then I will try to seek help from the Sugar community on the IRC or send a mail on the developer mailing list. I would also ask my friends here who have great amounts of knowledge on a wide variety of topics and they could help me sort the problem out.<br />
<br />
<br />
'''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?'''<br />
<br />
I have a blog set up accessible from [http://erilyth.github.io/ my website], [http://vishalbatchu.blog.com/ my blog]. I will be updating the status of the project and anything else related to Sugar over there every week. I will use the IRC to get reviews on my work by others and also learn what I need to improve from others. I will document my code properly and use appropriate commit messages (git) so others can take a look at my work easily. If required, I will also create pages on the Sugar Wiki.<br />
<br />
== Miscellaneous ==<br />
<br />
'''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". '''<br />
<br />
[[File:Sugar-vishal.png|800px]]<br />
<br />
<br />
'''Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.'''&nbsp;&nbsp;&nbsp; <br />
* Add a CollabWrapper based Text Editor to Sugar: [https://github.com/samdroid-apps/collabwrapper/pull/1 https://github.com/samdroid-apps/collabwrapper/pull/1] '''Merged'''<br />
* Add export matrix feature to Music Blocks: [https://github.com/walterbender/musicblocks/pull/97 https://github.com/walterbender/musicblocks/pull/97] '''Merged'''<br />
* Collaboration Refactoring in Story: [https://github.com/walterbender/story/pull/4 https://github.com/walterbender/story/pull/4] '''Merged'''<br />
* Save and Load file buttons in Music Blocks: [https://github.com/walterbender/musicblocks/pull/115 https://github.com/walterbender/musicblocks/pull/115] '''Merged'''<br />
* Notification drag to act like a clipboard entry: [https://github.com/sugarlabs/sugar/pull/633/files https://github.com/sugarlabs/sugar/pull/633/files] '''Merged'''<br />
* Add icon hover effects: [https://github.com/llaske/sugarizer/pull/32 https://github.com/llaske/sugarizer/pull/32] '''Merged'''<br />
<br />
And a lot more minor bug fixes and feature requests, [https://github.com/search?p=1&q=is%3Apr+author%3Aerilyth+is%3Aclosed+&type=Issues&utf8=%E2%9C%93 My contributions to SugarLabs]<br />
<br />
<br />
'''If you plan to work on Sugar-Web projects we want to be sure that you're familiar with web technologies, so:'''<br />
* '''Clone the'''[https://github.com/llaske/Sugarizer ][https://github.com/llaske/Sugarizer Sugarizer repository]<br />
* '''Using instructions'''[https://github.com/llaske/Sugarizer#create-your-own-activity ][https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity'''<br />
* '''Send us a screenshot of your new activity executed in Sugarizer'''<br />
<br />
[[File:Sugarizer-vishal.png|800px]]<br />
<br />
<br />
'''Describe a great learning experience you had as a child.'''<br />
<br />
When I was younger I always used to have a negative feeling towards teachers. I used to make fun of them and felt that they come to teach only because they don’t have anywhere else to go. I guess I got these feelings since I didn’t like it when they yelled at us (of course for our own mistakes, but I didn’t realize that then). One day I was called up to teach something to the entire class, it was a topic that I was fairly familiar with so I went up there and started teaching. This is when everything changed, I felt a huge amount of joy and excitement. I realized that teaching is not a profession that is chosen because there is nothing else to choose but because it is probably one of the best things to do! From that point on I have always respected teachers and have always loved to share my knowledge with others, just like teachers do.<br />
<br />
<br />
'''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?'''<br />
<br />
Nope, everything is just fine!<br />
[[Category:2016 GSoC applications]]</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/SugarizerActivitySet&diff=97300Summer of Code/2016/SugarizerActivitySet2016-03-20T18:57:11Z<p>Erilyth: </p>
<hr />
<div>Sugarizer Activity Set<br />
<br />
== About You ==<br />
<br />
'''What is your name?'''<br />
<br />
My name is Batchu Venkat Vishal, I am a 2nd-year undergrad student from [http://www.iiit.ac.in/ International Institute of Information Technology Hyderabad] (IIITH)<br />
<br />
<br />
'''What is your email address?'''<br />
<br />
[mailto:vishal.batchu@students.iiit.ac.in vishal.batchu@students.iiit.ac.in]<br />
<br />
Alternate, [mailto:vishalvenkat71@gmail.com vishalvenkat71@gmail.com]<br />
<br />
<br />
'''What is your Sugar Labs wiki username?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your IRC nickname on irc.freenode.net?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)'''<br />
<br />
My native language is Telugu, I am fluent in English and speak a bit of Hindi.<br />
<br />
<br />
'''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.)'''<br />
<br />
I'm located in Hyderabad (Telangana), India.<br />
<br />
I'm planning to work 12:00 UTC - 18:00 UTC on Monday, Tuesday, Wednesday, Thursday, Friday and Saturday and 8:00 UTC - 19:00 UTC on Sundays.<br />
<br />
<br />
'''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?'''<br />
<br />
I am new to open source, but I have contributed to some open source organizations which were founded in my college ( [https://felicity.iiit.ac.in/ College Fest Website] ([https://github.com/felicity-iiith/ https://github.com/felicity-iiith/]), [http://osdg.iiit.ac.in/ College OSDG website] ([https://github.com/OSDG-IIITH https://github.com/OSDG-IIITH]) ). Sugar Labs and OLPC have amazed me, I have always wanted to do something which would help others learn especially when I think of all the kids out there who are unable to get a quality education. When I stumbled upon SugarLabs I knew it was the way in which I could use my knowledge and help spread educational tools to millions of others out there. Open source is the best way to get exposure and collaborate with lots of others just like us, and get to know about their views and what others think. It's a means by which I can make a difference in the society.<br />
<br />
== About your project ==<br />
<br />
<br />
<br />
'''What is the name of your project?'''<br />
<br />
Sugarizer Activity Set<br />
<br />
<br />
'''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? What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; 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 (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.'''<br />
<br />
The project is a full rewriting of a few Sugar apps which will be ported to Sugar Web:<br />
# Moon<br />
# Speak<br />
# Fototoon (and more if time permits) <br />
<br />
<br />
<br />
These activities will be ported using the Sugar Web Framework in order to reach a much larger audience. The Sugarizer/Web apps are available to a lot of children since they are supported by any Web Browser or an XO. This would enable every child to have access and use these activities at their convenience. Children should be able to have the same learning capabilities no matter what platform they are using to run the activities which can be achieved with Sugarizer.<br />
<br />
<br />
The main technologies that will be used are HTML5 and Javascript. Understanding Python source code will be required to understand the current versions of the activities so that the activities created on Sugar Web for the Sugarizer should have similar features to the ones right now.<br />
<br />
<br />
'''A few problems I might face during the implementation in javascript:'''<br />
* Storage of data (audio, images) on the Sugar Web platform.<br />
* Compatibility and adaptability with devices of different sizes(phones, tablets etc) and also touch screen capabilities, if they can be used effectively.<br />
* Browser portability and compatibility.<br />
<br />
<br />
<br />
<br />
<br />
'''Libraries in consideration and methods of implementation:'''<br />
<br />
Here are some of the libraries I am considering to use for the project to ease the development process. This is not a static list and can change as and when I am implementing the features of the activities.<br />
# [https://github.com/kripken/speak.js/ speak.js] or [http://www.masswerk.at/mespeak/ mespeak.js] for text to speech generation in javascript for the ‘Speak’ activity. (GNU GENERAL PUBLIC License)<br />
# Google Translate to generate the audio for given text, also to be used with the ‘Speak’ activity. (This requires us to be online while using the activity but the speech synthesized is of a higher quality).<br />
# [https://github.com/desandro/masonry masonry.js] for clean and simple grid layouts for the ‘Fototoon’ activity. (MIT License)<br />
# [https://github.com/hammerjs/hammer.js hammer.js][https://github.com/hammerjs/hammer.js ]for recognizing and using touch gestures and multi-touch gestures (if needed). (MIT License)<br />
# [https://github.com/desandro/draggabilly draggabilly.js] for simple draggable interfaces for the ‘Fototoon’ activity.<br />
<br />
<br />
<br />
<br />
<br />
These are some libraries that I will look into in order to accelerate the development. I will use an Agile development process also including some iteration and incremental implementation. <br />
<br />
I have downloaded the Moon, Speak and Fototoon xo files and have used them thoroughly to analyze and understand what are the features that each of them provides which I will be implementing. I will try my best to keep the look and feel of the activities to be as similar as possible to the current implementations.<br />
<br />
<br />
'''My timeline:'''<br />
<br />
<br />
<br />
{| style="border-spacing:0;"<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Week'''<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Work Scheduled'''<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 0<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
* Setup a basic MVC architecture in javascript which can be used by the activities (If needed).<br />
* Compatibility checks of libraries with different devices.<br />
* Setup sample codes using the libraries which can be used in the activities as and when needed.<br />
* Take a look at how touch screen capabilities can improve the user experience on mobile devices.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 1 - 19 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Basic UI for the face with eyeballs following the cursor.<br />
* Basic text to speech conversion and use a suitable library for the ‘Type something to hear it’ mode.<br />
* Pitch, rate and language features.<br />
* Number of eyes feature.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 2 - 25 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Mouth motion for the face.<br />
* ‘Ask the robot’ mode and add some basic AI to respond to users.<br />
* Add the ‘Voice Chat / Chat ’ mode. (basic)<br />
* Add types of eyes which the user can select.<br />
* Add types of mouths which the user can select.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 3 - 1 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* ‘Set face from photo’ feature.<br />
* Improve the AI which runs on the ‘Ask the robot’ mode.<br />
* Improve ‘Chat’ mode and make it functional.<br />
<br />
<br />
<br />
<br />
<br />
FotoToon Activity:<br />
* Image upload from journal/local machine.<br />
* Basic box globe(chat box) addition feature and movement lines, enable them to be dragged in the image.<br />
* Full-screen mode.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 4 - 8 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Save as image option.<br />
<br />
* Add other types of globes.<br />
* Add text customization features for text within the different globes.<br />
* Rotation of globes.<br />
* Deletion of globes.<br />
* Add background image for activity.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 5 - 15 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Reordering of images.<br />
* Slideshow and slideshow with timing modes to view the pictures.<br />
* Save as pdf and movie options.<br />
<br />
<br />
<br />
<br />
<br />
Moon Activity:<br />
* Basic UI and moon image.<br />
* Grid view overlay for the image.<br />
* Display information regarding the current state of the moon.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 6 - 22 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity:<br />
* Shade parts of the moon depending on the day.<br />
<br />
* Toggle hemisphere views.<br />
* Save as image option to save the current state of the moon.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Midterm Evaluations<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 7 - 29 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to evaluations:<br />
* Depending on the evaluations improve/fix bugs on the activities etc.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 8 - 6 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity testing and reviews:<br />
* Get detailed feedback on the Speak activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 9 - 13 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity testing and reviews:<br />
* Get detailed feedback on the FotoToon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 10 - 20 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity testing and reviews:<br />
* Get detailed feedback on the Moon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 11 - 27 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities testing:<br />
* Ensure the documentation is done properly.<br />
* Do a final test of all the activities.<br />
* Relax a bit as well :)<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 12 - 3 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities review and evaluation from the Sugar community:<br />
* Ask other members who use these activities on Sugar to review this on Sugarizer and ensure they are satisfied with their experience.<br />
* Start working on a 4th activity if there is time<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 13 - 10 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to reviews:<br />
* If anything needs to be done after the reviews, I will do it.<br />
* Continue working on a 4th activity if there is time<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 14 - 17 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Final Activity checks:<br />
* Ensure everything works properly and I am ready to submit my project to google.<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Final Evaluations - 21 August<br />
<br />
|}<br />
<br />
<br />
'''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.'''<br />
<br />
I have a strong passion for programming and feel content when I code. I never leave work unattended or halfway through since I feel that not starting the work at all is a lot better than leaving it halfway. I do quite well in other areas as well, my GPA is 9.8/10. I often like to spend time talking to others about their experiences developing something or working for an organization since it helps me learn more about others and how I can improve my ways.<br />
<br />
I don’t have any other commitments this summer apart from this, so spending around 6 hrs a day won’t be a problem at all. I often like to take up leadership and responsibility of work that needs to be done as part of college when we work in groups and always finish work on time or earlier if possible.<br />
<br />
I have started developing the Speak activity in JS and have got the basic features such as eye motion, mouth motion, number of eyes, text to speech, automated bot responses (AIML based) etc working. This is just a starting prototype kind of thing which I will build up on during my project and make it work as similar to the original Speak activity as possible. Here is a link to the [http://speak-activity-sugarizer.bitballoon.com/ demo].<br />
<br />
I have also fixed quite a few bugs and added some features to Sugar, so I am quite familiar with the development environment used for developing on Sugar and Sugar-Web. I have also tried to make a simple activity on sugar for testing purposes, it's the [http://activities.sugarlabs.org/en-US/sugar/addon/4785 Simon Says game]. I have worked both with python based activities in Sugar and also with Sugar-Web based projects (musicblocks etc) which is what this project needs in order to port python based activities to web-based activities to be used with Sugarizer.<br />
<br />
<br />
'''Projects I have worked on:'''<br />
# [https://trendspace.pythonanywhere.com/ Trendspace] '''- A shopping website made using the web2py framework.<br />
# [https://github.com/erilyth/OpenGL-C- Cannon Game] '''- A 2D cannon shooter game made entirely using OpenGL and C++.<br />
# [https://github.com/erilyth/OpenGL-3D Adventure Game] '''- A 3D survival game made using OpenGL and C++ with models created using Blender.<br />
# [https://github.com/erilyth/DonkeyKong-Pygame Donkey Kong] '''- A 2D version of the Donkey Kong game made using Pygame.<br />
# [https://github.com/erilyth/Tangram-Game Tangram Game] '''- A version of Tangram(Block Puzzle) developed using Cocos2D-JS targeting mobile devices mainly.<br />
# [https://github.com/Achilles-96/File-sharing-client File Transfer Protocol] '''- A simple file sharing client using which we can share files, check validity using hashes and index based searching. It uses the TCP and UDP (handling losses) protocols for transfer.<br />
# [https://github.com/erilyth/First-Person-Shooter-Unity- FPS Shooter] '''- A 3D basic first person shooter game made using Unity in C#.<br />
# [https://github.com/erilyth/Box-Stacking-Game Box Stacking Game] '''- A simple click and drag box stacking game made using Unity in C#.<br />
<br />
<br />
<br />
<br />
<br />
I have also worked on a lot of other smaller projects and also do competitive programming, you can take a look at my [https://github.com/erilyth github profile] and [http://codeforces.com/profile/Erilyth codeforces profile].<br />
<br />
<br />
Here are some screenshots of the games I developed,<br />
* Cannon Game:<br />
[[File:Cannongame-vishal.png|800px]]<br />
<br />
* Adventure Game:<br />
[[File:Adventure1-vishal.png|800px]]<br />
<br />
* Donkey Kong:<br />
[[File:Dokneykong-vishal.png|800px]]<br />
<br />
* Tangram Game:<br />
[[File:Tangram2.jpg|800px]]<br />
<br />
* Box Stacking Game:<br />
[[File:BoxStacking.png|800px]]<br />
<br />
* First Person Shooter:<br />
[[File:FirstPersonShooter2.png|800px]]<br />
<br />
I use [http://erilyth.github.io/ my website] and my blog to share my projects ([https://github.com/erilyth/My-Website https://github.com/erilyth/My-Website]). I have used Node.js along with Angular.js to develop the website.<br />
<br />
<br />
I often try to follow the principles of “'''DIY'''” (Do It Yourself) and have also worked with electronics and made a few simple robots in the past. My profile on [http://www.instructables.com/member/vishalapr/ instructables.com].<br />
<br />
Some of the projects I have made,<br />
# [http://goo.gl/5z48UJ POV Display]<br />
# [http://goo.gl/xEdT4C Wall Avoiding Robot]<br />
<br />
== You and the community ==<br />
<br />
'''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.'''<br />
<br />
<br />
'''My answer:'''<br />
<br />
A lot more students and teachers around the world would get access to &nbsp;some of the best activities on sugar. These activities can then be used on any device which would make them a lot more handy and useful. Some of the most popular apps on Sugar would now be available to use on any Sugarizer device so they can use them wherever they want at their convenience. This would help students learn at their own pace anywhere they want as long as they have a Sugarizer enabled device. Using the Moon activity sitting outside watching the moon during the night and analyzing it, using the Speak, Fototoon activities to learn while travelling etc will allow users to have a much more thorough and immerse experience of using these activities.<br />
<br />
<br />
'''Lionel Laské:'''<br />
<br />
Activities in the Sugarizer Activity Set are 3 of most famous Sugar activities. It's very important to have a full experience of Sugar on any device that these activities must be available into Sugar-Web. Plus these activities was proven during deployment to be very attractive for children using Sugar and at least Speak and Fototoon allow them to express their creativity.<br />
<br />
<br />
'''Walter Bender:'''<br />
<br />
Speak and Fototoons are nice examples of tools that let encourage exploration of narrative. It is central to our pedagogy that we engage learners in constructing and expressing.<br />
<br />
<br />
'''What will you do if you get stuck on your project and your mentor isn't around?'''<br />
<br />
I will try to see if I can figure it out myself, using the internet (Google, Stackoverflow, Quora etc) or use some books. If this doesn’t help then I will try to seek help from the Sugar community on the IRC or send a mail on the developer mailing list. I would also ask my friends here who have great amounts of knowledge on a wide variety of topics and they could help me sort the problem out.<br />
<br />
<br />
'''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?'''<br />
<br />
I have a blog set up accessible from [http://erilyth.github.io/ my website], [http://vishalbatchu.blog.com/ my blog]. I will be updating the status of the project and anything else related to Sugar over there every week. I will use the IRC to get reviews on my work by others and also learn what I need to improve from others. I will document my code properly and use appropriate commit messages (git) so others can take a look at my work easily. If required, I will also create pages on the Sugar Wiki.<br />
<br />
== Miscellaneous ==<br />
<br />
'''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". '''<br />
<br />
[[File:Sugar-vishal.png|800px]]<br />
<br />
<br />
'''Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.'''&nbsp;&nbsp;&nbsp; <br />
* Add a CollabWrapper based Text Editor to Sugar: [https://github.com/samdroid-apps/collabwrapper/pull/1 https://github.com/samdroid-apps/collabwrapper/pull/1] '''Merged'''<br />
* Add export matrix feature to Music Blocks: [https://github.com/walterbender/musicblocks/pull/97 https://github.com/walterbender/musicblocks/pull/97] '''Merged'''<br />
* Collaboration Refactoring in Story: [https://github.com/walterbender/story/pull/4 https://github.com/walterbender/story/pull/4] '''Merged'''<br />
* Save and Load file buttons in Music Blocks: [https://github.com/walterbender/musicblocks/pull/115 https://github.com/walterbender/musicblocks/pull/115] '''Merged'''<br />
* Notification drag to act like a clipboard entry: [https://github.com/sugarlabs/sugar/pull/633/files https://github.com/sugarlabs/sugar/pull/633/files] '''Merged'''<br />
* Add icon hover effects: [https://github.com/llaske/sugarizer/pull/32 https://github.com/llaske/sugarizer/pull/32] '''Merged'''<br />
<br />
And a lot more minor bug fixes and feature requests, [https://github.com/search?p=1&q=is%3Apr+author%3Aerilyth+is%3Aclosed+&type=Issues&utf8=%E2%9C%93 My contributions to SugarLabs]<br />
<br />
<br />
'''If you plan to work on Sugar-Web projects we want to be sure that you're familiar with web technologies, so:'''<br />
* '''Clone the'''[https://github.com/llaske/Sugarizer ][https://github.com/llaske/Sugarizer Sugarizer repository]<br />
* '''Using instructions'''[https://github.com/llaske/Sugarizer#create-your-own-activity ][https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity'''<br />
* '''Send us a screenshot of your new activity executed in Sugarizer'''<br />
<br />
[[File:Sugarizer-vishal.png|800px]]<br />
<br />
<br />
'''Describe a great learning experience you had as a child.'''<br />
<br />
When I was younger I always used to have a negative feeling towards teachers. I used to make fun of them and felt that they come to teach only because they don’t have anywhere else to go. I guess I got these feelings since I didn’t like it when they yelled at us (of course for our own mistakes, but I didn’t realize that then). One day I was called up to teach something to the entire class, it was a topic that I was fairly familiar with so I went up there and started teaching. This is when everything changed, I felt a huge amount of joy and excitement. I realized that teaching is not a profession that is chosen because there is nothing else to choose but because it is probably one of the best things to do! From that point on I have always respected teachers and have always loved to share my knowledge with others, just like teachers do.<br />
<br />
<br />
'''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?'''<br />
<br />
Nope, everything is just fine!<br />
[[Category:2016 GSoC applications]]</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/SugarizerActivitySet&diff=97185Summer of Code/2016/SugarizerActivitySet2016-03-19T11:11:51Z<p>Erilyth: /* About your project */</p>
<hr />
<div>Sugarizer Activity Set<br />
<br />
== About You ==<br />
<br />
'''What is your name?'''<br />
<br />
My name is Batchu Venkat Vishal, I am a 2nd-year undergrad student from [http://www.iiit.ac.in/ International Institute of Information Technology Hyderabad] (IIITH)<br />
<br />
<br />
'''What is your email address?'''<br />
<br />
[mailto:vishal.batchu@students.iiit.ac.in vishal.batchu@students.iiit.ac.in]<br />
<br />
Alternate, [mailto:vishalvenkat71@gmail.com vishalvenkat71@gmail.com]<br />
<br />
<br />
'''What is your Sugar Labs wiki username?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your IRC nickname on irc.freenode.net?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)'''<br />
<br />
My native language is Telugu, I am fluent in English and speak a bit of Hindi.<br />
<br />
<br />
'''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.)'''<br />
<br />
I'm located in Hyderabad (Telangana), India.<br />
<br />
I'm planning to work 12:00 UTC - 18:00 UTC on Monday, Tuesday, Wednesday, Thursday, Friday and Saturday and 8:00 UTC - 19:00 UTC on Sundays.<br />
<br />
<br />
'''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?'''<br />
<br />
I am new to open source, but I have contributed to some open source organizations which were founded in my college ( [https://felicity.iiit.ac.in/ College Fest Website] ([https://github.com/felicity-iiith/ https://github.com/felicity-iiith/]), [http://osdg.iiit.ac.in/ College OSDG website] ([https://github.com/OSDG-IIITH https://github.com/OSDG-IIITH]) ). Sugar Labs and OLPC have amazed me, I have always wanted to do something which would help others learn especially when I think of all the kids out there who are unable to get a quality education. When I stumbled upon SugarLabs I knew it was the way in which I could use my knowledge and help spread educational tools to millions of others out there. Open source is the best way to get exposure and collaborate with lots of others just like us, and get to know about their views and what others think. It's a means by which I can make a difference in the society.<br />
<br />
== About your project ==<br />
<br />
<br />
<br />
'''What is the name of your project?'''<br />
<br />
Sugarizer Activity Set<br />
<br />
<br />
'''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? What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; 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 (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.'''<br />
<br />
The project is a full rewriting of a few Sugar apps which will be ported to Sugar Web:<br />
# Moon<br />
# Speak<br />
# Fototoon (and more if time permits) <br />
<br />
<br />
<br />
These activities will be ported using the Sugar Web Framework in order to reach a much larger audience. The Sugarizer/Web apps are available to a lot of children since they are supported by any Web Browser or an XO. This would enable every child to have access and use these activities at their convenience. Children should be able to have the same learning capabilities no matter what platform they are using to run the activities which can be achieved with Sugarizer.<br />
<br />
<br />
The main technologies that will be used are HTML5 and Javascript. Understanding Python source code will be required to understand the current versions of the activities so that the activities created on Sugar Web for the Sugarizer should have similar features to the ones right now.<br />
<br />
<br />
'''A few problems I might face during the implementation in javascript:'''<br />
* Storage of data (audio, images) on the Sugar Web platform.<br />
* Compatibility and adaptability with devices of different sizes(phones, tablets etc) and also touch screen capabilities, if they can be used effectively.<br />
* Browser portability and compatibility.<br />
<br />
<br />
<br />
<br />
<br />
'''Libraries in consideration and methods of implementation:'''<br />
<br />
Here are some of the libraries I am considering to use for the project to ease the development process. This is not a static list and can change as and when I am implementing the features of the activities.<br />
# [https://github.com/kripken/speak.js/ speak.js] or [http://www.masswerk.at/mespeak/ mespeak.js] for text to speech generation in javascript for the ‘Speak’ activity. (GNU GENERAL PUBLIC License)<br />
# Google Translate to generate the audio for given text, also to be used with the ‘Speak’ activity. (This requires us to be online while using the activity but the speech synthesized is of a higher quality).<br />
# [https://github.com/desandro/masonry masonry.js] for clean and simple grid layouts for the ‘Fototoon’ activity. (MIT License)<br />
# [https://github.com/hammerjs/hammer.js hammer.js][https://github.com/hammerjs/hammer.js ]for recognizing and using touch gestures and multi-touch gestures (if needed). (MIT License)<br />
# [https://github.com/desandro/draggabilly draggabilly.js] for simple draggable interfaces for the ‘Fototoon’ activity.<br />
<br />
<br />
<br />
<br />
<br />
These are some libraries that I will look into in order to accelerate the development. I will use an Agile development process also including some iteration and incremental implementation. <br />
<br />
I have downloaded the Moon, Speak and Fototoon xo files and have used them thoroughly to analyze and understand what are the features that each of them provides which I will be implementing. I will try my best to keep the look and feel of the activities to be as similar as possible to the current implementations.<br />
<br />
<br />
'''My timeline:'''<br />
<br />
<br />
<br />
{| style="border-spacing:0;"<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Week'''<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Work Scheduled'''<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 0<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
* Setup a basic MVC architecture in javascript which can be used by the activities (If needed).<br />
* Compatibility checks of libraries with different devices.<br />
* Setup sample codes using the libraries which can be used in the activities as and when needed.<br />
* Take a look at how touch screen capabilities can improve the user experience on mobile devices.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 1 - 19 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Basic UI for the face with eyeballs following the cursor.<br />
* Basic text to speech conversion and use a suitable library for the ‘Type something to hear it’ mode.<br />
* Pitch, rate and language features.<br />
* Number of eyes feature.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 2 - 25 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Mouth motion for the face.<br />
* ‘Ask the robot’ mode and add some basic AI to respond to users.<br />
* Add the ‘Voice Chat / Chat ’ mode. (basic)<br />
* Add types of eyes which the user can select.<br />
* Add types of mouths which the user can select.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 3 - 1 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* ‘Set face from photo’ feature.<br />
* Improve the AI which runs on the ‘Ask the robot’ mode.<br />
* Improve ‘Chat’ mode and make it functional.<br />
<br />
<br />
<br />
<br />
<br />
FotoToon Activity:<br />
* Image upload from journal/local machine.<br />
* Basic box globe(chat box) addition feature and movement lines, enable them to be dragged in the image.<br />
* Full-screen mode.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 4 - 8 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Save as image option.<br />
<br />
* Add other types of globes.<br />
* Add text customization features for text within the different globes.<br />
* Rotation of globes.<br />
* Deletion of globes.<br />
* Add background image for activity.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 5 - 15 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Reordering of images.<br />
* Slideshow and slideshow with timing modes to view the pictures.<br />
* Save as pdf and movie options.<br />
<br />
<br />
<br />
<br />
<br />
Moon Activity:<br />
* Basic UI and moon image.<br />
* Grid view overlay for the image.<br />
* Display information regarding the current state of the moon.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 6 - 22 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity:<br />
* Shade parts of the moon depending on the day.<br />
<br />
* Toggle hemisphere views.<br />
* Save as image option to save the current state of the moon.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Midterm Evaluations<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 7 - 29 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to evaluations:<br />
* Depending on the evaluations improve/fix bugs on the activities etc.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 8 - 6 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity testing and reviews:<br />
* Get detailed feedback on the Speak activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 9 - 13 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity testing and reviews:<br />
* Get detailed feedback on the FotoToon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 10 - 20 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity testing and reviews:<br />
* Get detailed feedback on the Moon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 11 - 27 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities testing:<br />
* Ensure the documentation is done properly.<br />
* Do a final test of all the activities.<br />
* Relax a bit as well :)<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 12 - 3 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities review and evaluation from the Sugar community:<br />
* Ask other members who use these activities on Sugar to review this on Sugarizer and ensure they are satisfied with their experience.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 13 - 10 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to reviews:<br />
* If anything needs to be done after the reviews, I will do it.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 14 - 17 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Final Activity checks:<br />
* Ensure everything works properly and I am ready to submit my project to google.<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Final Evaluations - 21 August<br />
<br />
|}<br />
<br />
<br />
'''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.'''<br />
<br />
I have a strong passion for programming and feel content when I code. I never leave work unattended or halfway through since I feel that not starting the work at all is a lot better than leaving it halfway. I do quite well in other areas as well, my GPA is 9.8/10. I often like to spend time talking to others about their experiences developing something or working for an organization since it helps me learn more about others and how I can improve my ways.<br />
<br />
I don’t have any other commitments this summer apart from this, so spending around 6 hrs a day won’t be a problem at all. I often like to take up leadership and responsibility of work that needs to be done as part of college when we work in groups and always finish work on time or earlier if possible.<br />
<br />
I have started developing the Speak activity in JS and have got the basic features such as eye motion, mouth motion, number of eyes, text to speech, automated bot responses (AIML based) etc working. This is just a starting prototype kind of thing which I will build up on during my project and make it work as similar to the original Speak activity as possible. Here is a link to the [http://speak-activity-sugarizer.bitballoon.com/ demo].<br />
<br />
I have also fixed quite a few bugs and added some features to Sugar, so I am quite familiar with the development environment used for developing on Sugar and Sugar-Web. I have also tried to make a simple activity on sugar for testing purposes, it's the [http://activities.sugarlabs.org/en-US/sugar/addon/4785 Simon Says game]. I have worked both with python based activities in Sugar and also with Sugar-Web based projects (musicblocks etc) which is what this project needs in order to port python based activities to web-based activities to be used with Sugarizer.<br />
<br />
<br />
'''Projects I have worked on:'''<br />
# [https://trendspace.pythonanywhere.com/ Trendspace] '''- A shopping website made using the web2py framework.<br />
# [https://github.com/erilyth/OpenGL-C- Cannon Game] '''- A 2D cannon shooter game made entirely using OpenGL and C++.<br />
# [https://github.com/erilyth/OpenGL-3D Adventure Game] '''- A 3D survival game made using OpenGL and C++ with models created using Blender.<br />
# [https://github.com/erilyth/DonkeyKong-Pygame Donkey Kong] '''- A 2D version of the Donkey Kong game made using Pygame.<br />
# [https://github.com/erilyth/Tangram-Game Tangram Game] '''- A version of Tangram(Block Puzzle) developed using Cocos2D-JS targeting mobile devices mainly.<br />
# [https://github.com/Achilles-96/File-sharing-client File Transfer Protocol] '''- A simple file sharing client using which we can share files, check validity using hashes and index based searching. It uses the TCP and UDP (handling losses) protocols for transfer.<br />
# [https://github.com/erilyth/First-Person-Shooter-Unity- FPS Shooter] '''- A 3D basic first person shooter game made using Unity in C#.<br />
# [https://github.com/erilyth/Box-Stacking-Game Box Stacking Game] '''- A simple click and drag box stacking game made using Unity in C#.<br />
<br />
<br />
<br />
<br />
<br />
I have also worked on a lot of other smaller projects and also do competitive programming, you can take a look at my [https://github.com/erilyth github profile] and [http://codeforces.com/profile/Erilyth codeforces profile].<br />
<br />
<br />
Here are some screenshots of the games I developed,<br />
* Cannon Game:<br />
[[File:Cannongame-vishal.png|800px]]<br />
<br />
* Adventure Game:<br />
[[File:Adventure1-vishal.png|800px]]<br />
<br />
* Donkey Kong:<br />
[[File:Dokneykong-vishal.png|800px]]<br />
<br />
* Tangram Game:<br />
[[File:Tangram2.jpg|800px]]<br />
<br />
* Box Stacking Game:<br />
[[File:BoxStacking.png|800px]]<br />
<br />
* First Person Shooter:<br />
[[File:FirstPersonShooter2.png|800px]]<br />
<br />
I use [http://erilyth.github.io/ my website] and my blog to share my projects ([https://github.com/erilyth/My-Website https://github.com/erilyth/My-Website]). I have used Node.js along with Angular.js to develop the website.<br />
<br />
<br />
I often try to follow the principles of “'''DIY'''” (Do It Yourself) and have also worked with electronics and made a few simple robots in the past. My profile on [http://www.instructables.com/member/vishalapr/ instructables.com].<br />
<br />
Some of the projects I have made,<br />
# [http://goo.gl/5z48UJ POV Display]<br />
# [http://goo.gl/xEdT4C Wall Avoiding Robot]<br />
<br />
== You and the community ==<br />
<br />
'''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.'''<br />
<br />
<br />
'''My answer:'''<br />
<br />
A lot more students and teachers around the world would get access to &nbsp;some of the best activities on sugar. These activities can then be used on any device which would make them a lot more handy and useful. Some of the most popular apps on Sugar would now be available to use on any Sugarizer device so they can use them wherever they want at their convenience. This would help students learn at their own pace anywhere they want as long as they have a Sugarizer enabled device. Using the Moon activity sitting outside watching the moon during the night and analyzing it, using the Speak, Fototoon activities to learn while travelling etc will allow users to have a much more thorough and immerse experience of using these activities.<br />
<br />
<br />
'''Lionel Laské:'''<br />
<br />
Activities in the Sugarizer Activity Set are 3 of most famous Sugar activities. It's very important to have a full experience of Sugar on any device that these activities must be available into Sugar-Web. Plus these activities was proven during deployment to be very attractive for children using Sugar and at least Speak and Fototoon allow them to express their creativity.<br />
<br />
<br />
'''Walter Bender:'''<br />
<br />
Speak and Fototoons are nice examples of tools that let encourage exploration of narrative. It is central to our pedagogy that we engage learners in constructing and expressing.<br />
<br />
<br />
'''What will you do if you get stuck on your project and your mentor isn't around?'''<br />
<br />
I will try to see if I can figure it out myself, using the internet (Google, Stackoverflow, Quora etc) or use some books. If this doesn’t help then I will try to seek help from the Sugar community on the IRC or send a mail on the developer mailing list. I would also ask my friends here who have great amounts of knowledge on a wide variety of topics and they could help me sort the problem out.<br />
<br />
<br />
'''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?'''<br />
<br />
I have a blog set up accessible from [http://erilyth.github.io/ my website], [http://vishalbatchu.blog.com/ my blog]. I will be updating the status of the project and anything else related to Sugar over there every week. I will use the IRC to get reviews on my work by others and also learn what I need to improve from others. I will document my code properly and use appropriate commit messages (git) so others can take a look at my work easily. If required, I will also create pages on the Sugar Wiki.<br />
<br />
== Miscellaneous ==<br />
<br />
'''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". '''<br />
<br />
[[File:Sugar-vishal.png|800px]]<br />
<br />
<br />
'''Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.'''&nbsp;&nbsp;&nbsp; <br />
* Add a CollabWrapper based Text Editor to Sugar: [https://github.com/samdroid-apps/collabwrapper/pull/1 https://github.com/samdroid-apps/collabwrapper/pull/1] '''Merged'''<br />
* Add export matrix feature to Music Blocks: [https://github.com/walterbender/musicblocks/pull/97 https://github.com/walterbender/musicblocks/pull/97] '''Merged'''<br />
* Collaboration Refactoring in Story: [https://github.com/walterbender/story/pull/4 https://github.com/walterbender/story/pull/4] '''Merged'''<br />
* Save and Load file buttons in Music Blocks: [https://github.com/walterbender/musicblocks/pull/115 https://github.com/walterbender/musicblocks/pull/115] '''Merged'''<br />
* Notification drag to act like a clipboard entry: [https://github.com/sugarlabs/sugar/pull/633/files https://github.com/sugarlabs/sugar/pull/633/files] '''Merged'''<br />
* Add icon hover effects: [https://github.com/llaske/sugarizer/pull/32 https://github.com/llaske/sugarizer/pull/32] '''Merged'''<br />
<br />
<br />
<br />
'''If you plan to work on Sugar-Web projects we want to be sure that you're familiar with web technologies, so:'''<br />
* '''Clone the'''[https://github.com/llaske/Sugarizer ][https://github.com/llaske/Sugarizer Sugarizer repository]<br />
* '''Using instructions'''[https://github.com/llaske/Sugarizer#create-your-own-activity ][https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity'''<br />
* '''Send us a screenshot of your new activity executed in Sugarizer'''<br />
<br />
[[File:Sugarizer-vishal.png|800px]]<br />
<br />
<br />
'''Describe a great learning experience you had as a child.'''<br />
<br />
When I was younger I always used to have a negative feeling towards teachers. I used to make fun of them and felt that they come to teach only because they don’t have anywhere else to go. I guess I got these feelings since I didn’t like it when they yelled at us (of course for our own mistakes, but I didn’t realize that then). One day I was called up to teach something to the entire class, it was a topic that I was fairly familiar with so I went up there and started teaching. This is when everything changed, I felt a huge amount of joy and excitement. I realized that teaching is not a profession that is chosen because there is nothing else to choose but because it is probably one of the best things to do! From that point on I have always respected teachers and have always loved to share my knowledge with others, just like teachers do.<br />
<br />
<br />
'''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?'''<br />
<br />
Nope, everything is just fine!<br />
[[Category:2016 GSoC applications]]</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/SugarizerActivitySet&diff=97184Summer of Code/2016/SugarizerActivitySet2016-03-19T11:09:20Z<p>Erilyth: /* About your project */</p>
<hr />
<div>Sugarizer Activity Set<br />
<br />
== About You ==<br />
<br />
'''What is your name?'''<br />
<br />
My name is Batchu Venkat Vishal, I am a 2nd-year undergrad student from [http://www.iiit.ac.in/ International Institute of Information Technology Hyderabad] (IIITH)<br />
<br />
<br />
'''What is your email address?'''<br />
<br />
[mailto:vishal.batchu@students.iiit.ac.in vishal.batchu@students.iiit.ac.in]<br />
<br />
Alternate, [mailto:vishalvenkat71@gmail.com vishalvenkat71@gmail.com]<br />
<br />
<br />
'''What is your Sugar Labs wiki username?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your IRC nickname on irc.freenode.net?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)'''<br />
<br />
My native language is Telugu, I am fluent in English and speak a bit of Hindi.<br />
<br />
<br />
'''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.)'''<br />
<br />
I'm located in Hyderabad (Telangana), India.<br />
<br />
I'm planning to work 12:00 UTC - 18:00 UTC on Monday, Tuesday, Wednesday, Thursday, Friday and Saturday and 8:00 UTC - 19:00 UTC on Sundays.<br />
<br />
<br />
'''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?'''<br />
<br />
I am new to open source, but I have contributed to some open source organizations which were founded in my college ( [https://felicity.iiit.ac.in/ College Fest Website] ([https://github.com/felicity-iiith/ https://github.com/felicity-iiith/]), [http://osdg.iiit.ac.in/ College OSDG website] ([https://github.com/OSDG-IIITH https://github.com/OSDG-IIITH]) ). Sugar Labs and OLPC have amazed me, I have always wanted to do something which would help others learn especially when I think of all the kids out there who are unable to get a quality education. When I stumbled upon SugarLabs I knew it was the way in which I could use my knowledge and help spread educational tools to millions of others out there. Open source is the best way to get exposure and collaborate with lots of others just like us, and get to know about their views and what others think. It's a means by which I can make a difference in the society.<br />
<br />
== About your project ==<br />
<br />
<br />
<br />
'''What is the name of your project?'''<br />
<br />
Sugarizer Activity Set<br />
<br />
<br />
'''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? What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; 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 (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.'''<br />
<br />
The project is a full rewriting of a few Sugar apps which will be ported to Sugar Web:<br />
# Moon<br />
# Speak<br />
# Fototoon (and more if time permits) <br />
<br />
<br />
<br />
These activities will be ported using the Sugar Web Framework in order to reach a much larger audience. The Sugarizer/Web apps are available to a lot of children since they are supported by any Web Browser or an XO. This would enable every child to have access and use these activities at their convenience. Children should be able to have the same learning capabilities no matter what platform they are using to run the activities which can be achieved with Sugarizer.<br />
<br />
<br />
The main technologies that will be used are HTML5 and Javascript. Understanding Python source code will be required to understand the current versions of the activities so that the activities created on Sugar Web for the Sugarizer should have similar features to the ones right now.<br />
<br />
<br />
'''A few problems I might face during the implementation in javascript:'''<br />
* Storage of data (audio, images) on the Sugar Web platform.<br />
* Compatibility and adaptability with devices of different sizes(phones, tablets etc) and also touch screen capabilities, if they can be used effectively.<br />
* Browser portability and compatibility.<br />
<br />
<br />
<br />
<br />
<br />
'''Libraries in consideration and methods of implementation:'''<br />
<br />
Here are some of the libraries I am considering to use for the project to ease the development process. This is not a static list and can change as and when I am implementing the features of the activities.<br />
# [https://github.com/kripken/speak.js/ speak.js] or [http://www.masswerk.at/mespeak/ mespeak.js] for text to speech generation in javascript for the ‘Speak’ activity. (GNU GENERAL PUBLIC License)<br />
# Google Translate to generate the audio for given text, also to be used with the ‘Speak’ activity. (This requires us to be online while using the activity but the speech synthesized is of a higher quality).<br />
# [https://github.com/desandro/masonry masonry.js] for clean and simple grid layouts for the ‘Fototoon’ activity. (MIT License)<br />
# [https://github.com/hammerjs/hammer.js hammer.js][https://github.com/hammerjs/hammer.js ]for recognizing and using touch gestures and multi-touch gestures (if needed). (MIT License)<br />
# [https://github.com/desandro/draggabilly draggabilly.js] for simple draggable interfaces for the ‘Fototoon’ activity.<br />
<br />
<br />
<br />
<br />
<br />
These are some libraries that I will look into in order to accelerate the development. I will use an Agile development process also including some iteration and incremental implementation. <br />
<br />
I have downloaded the Moon, Speak and Fototoon xo files and have used them thoroughly to analyze and understand what are the features that each of them provides which I will be implementing. I will try my best to keep the look and feel of the activities to be as similar as possible to the current implementations.<br />
<br />
<br />
'''My timeline:'''<br />
<br />
<br />
<br />
{| style="border-spacing:0;"<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Week'''<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Work Scheduled'''<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 0<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
* Setup a basic MVC architecture in javascript which can be used by the activities (If needed).<br />
* Compatibility checks of libraries with different devices.<br />
* Setup sample codes using the libraries which can be used in the activities as and when needed.<br />
* Take a look at how touch screen capabilities can improve the user experience on mobile devices.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 1 - 19 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Basic UI for the face with eyeballs following the cursor.<br />
* Basic text to speech conversion and use a suitable library for the ‘Type something to hear it’ mode.<br />
* Pitch, rate and language features.<br />
* Number of eyes feature.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 2 - 25 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Mouth motion for the face.<br />
* ‘Ask the robot’ mode and add some basic AI to respond to users.<br />
* Add the ‘Voice Chat / Chat ’ mode. (basic)<br />
* Add types of eyes which the user can select.<br />
* Add types of mouths which the user can select.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 3 - 1 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* ‘Set face from photo’ feature.<br />
* Improve the AI which runs on the ‘Ask the robot’ mode.<br />
* Improve ‘Chat’ mode and make it functional.<br />
<br />
<br />
<br />
<br />
<br />
FotoToon Activity:<br />
* Image upload from journal/local machine.<br />
* Basic box globe(chat box) addition feature and movement lines, enable them to be dragged in the image.<br />
* Full-screen mode.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 4 - 8 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Save as image option.<br />
<br />
* Add other types of globes.<br />
* Add text customization features for text within the different globes.<br />
* Rotation of globes.<br />
* Deletion of globes.<br />
* Add background image for activity.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 5 - 15 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Reordering of images.<br />
* Slideshow and slideshow with timing modes to view the pictures.<br />
* Save as pdf and movie options.<br />
<br />
<br />
<br />
<br />
<br />
Moon Activity:<br />
* Basic UI and moon image.<br />
* Grid view overlay for the image.<br />
* Display information regarding the current state of the moon.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 6 - 22 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity:<br />
* Shade parts of the moon depending on the day.<br />
<br />
* Toggle hemisphere views.<br />
* Save as image option to save the current state of the moon.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Midterm Evaluations<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 7 - 29 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to evaluations:<br />
* Depending on the evaluations improve/fix bugs on the activities etc.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 8 - 6 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity testing and reviews:<br />
* Get detailed feedback on the Speak activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 9 - 13 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity testing and reviews:<br />
* Get detailed feedback on the FotoToon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 10 - 20 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity testing and reviews:<br />
* Get detailed feedback on the Moon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 11 - 27 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities testing:<br />
* Ensure the documentation is done properly.<br />
* Do a final test of all the activities.<br />
* Relax a bit as well :)<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 12 - 3 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities review and evaluation from the Sugar community:<br />
* Ask other members who use these activities on Sugar to review this on Sugarizer and ensure they are satisfied with their experience.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 13 - 10 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to reviews:<br />
* If anything needs to be done after the reviews, I will do it.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 14 - 17 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Final Activity checks:<br />
* Ensure everything works properly and I am ready to submit my project to google.<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Final Evaluations - 21 August<br />
<br />
|}<br />
<br />
<br />
'''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.'''<br />
<br />
I have a strong passion for programming and feel content when I code. I never leave work unattended or halfway through since I feel that not starting the work at all is a lot better than leaving it halfway. I do quite well in other areas as well, my GPA is 9.8/10. I often like to spend time talking to others about their experiences developing something or working for an organization since it helps me learn more about others and how I can improve my ways.<br />
<br />
I don’t have any other commitments this summer apart from this, so spending around 6 hrs a day won’t be a problem at all. I often like to take up leadership and responsibility of work that needs to be done as part of college when we work in groups and always finish work on time or earlier if possible.<br />
<br />
I have started developing the Speak activity in JS and have got the basic features such as eye motion, mouth motion, number of eyes, text to speech, Automated bot responses (AIML based) etc working. This is just a starting prototype kind of thing which I will build up on during my project and make it work as similar to the original Speak activity as possible. Here is a link to the [http://speak-activity-sugarizer.bitballoon.com/ demo].<br />
<br />
I have also fixed quite a few bugs and added some features to Sugar, so I am quite familiar with the development environment used for developing on Sugar and Sugar-Web. I have also tried to make a simple activity on sugar for testing purposes, it's the [http://activities.sugarlabs.org/en-US/sugar/addon/4785 Simon Says game]. I have worked both with python based activities in Sugar and also with Sugar-Web based projects (musicblocks etc) which is what this project needs in order to port python based activities to web-based activities to be used with Sugarizer.<br />
<br />
<br />
'''Projects I have worked on:'''<br />
# [https://trendspace.pythonanywhere.com/ Trendspace] '''- A shopping website made using the web2py framework.<br />
# [https://github.com/erilyth/OpenGL-C- Cannon Game] '''- A 2D cannon shooter game made entirely using OpenGL and C++.<br />
# [https://github.com/erilyth/OpenGL-3D Adventure Game] '''- A 3D survival game made using OpenGL and C++ with models created using Blender.<br />
# [https://github.com/erilyth/DonkeyKong-Pygame Donkey Kong] '''- A 2D version of the Donkey Kong game made using Pygame.<br />
# [https://github.com/erilyth/Tangram-Game Tangram Game] '''- A version of Tangram(Block Puzzle) developed using Cocos2D-JS targeting mobile devices mainly.<br />
# [https://github.com/Achilles-96/File-sharing-client File Transfer Protocol] '''- A simple file sharing client using which we can share files, check validity using hashes and index based searching. It uses the TCP and UDP (handling losses) protocols for transfer.<br />
# [https://github.com/erilyth/First-Person-Shooter-Unity- FPS Shooter] '''- A 3D basic first person shooter game made using Unity in C#.<br />
# [https://github.com/erilyth/Box-Stacking-Game Box Stacking Game] '''- A simple click and drag box stacking game made using Unity in C#.<br />
<br />
<br />
<br />
<br />
<br />
I have also worked on a lot of other smaller projects and also do competitive programming, you can take a look at my [https://github.com/erilyth github profile] and [http://codeforces.com/profile/Erilyth codeforces profile].<br />
<br />
<br />
Here are some screenshots of the games I developed,<br />
* Cannon Game:<br />
[[File:Cannongame-vishal.png|800px]]<br />
<br />
* Adventure Game:<br />
[[File:Adventure1-vishal.png|800px]]<br />
<br />
* Donkey Kong:<br />
[[File:Dokneykong-vishal.png|800px]]<br />
<br />
* Tangram Game:<br />
[[File:Tangram2.jpg|800px]]<br />
<br />
* Box Stacking Game:<br />
[[File:BoxStacking.png|800px]]<br />
<br />
* First Person Shooter:<br />
[[File:FirstPersonShooter2.png|800px]]<br />
<br />
I use [http://erilyth.github.io/ my website] and my blog to share my projects ([https://github.com/erilyth/My-Website https://github.com/erilyth/My-Website]). I have used Node.js along with Angular.js to develop the website.<br />
<br />
<br />
I often try to follow the principles of “'''DIY'''” (Do It Yourself) and have also worked with electronics and made a few simple robots in the past. My profile on [http://www.instructables.com/member/vishalapr/ instructables.com].<br />
<br />
Some of the projects I have made,<br />
# [http://goo.gl/5z48UJ POV Display]<br />
# [http://goo.gl/xEdT4C Wall Avoiding Robot]<br />
<br />
== You and the community ==<br />
<br />
'''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.'''<br />
<br />
<br />
'''My answer:'''<br />
<br />
A lot more students and teachers around the world would get access to &nbsp;some of the best activities on sugar. These activities can then be used on any device which would make them a lot more handy and useful. Some of the most popular apps on Sugar would now be available to use on any Sugarizer device so they can use them wherever they want at their convenience. This would help students learn at their own pace anywhere they want as long as they have a Sugarizer enabled device. Using the Moon activity sitting outside watching the moon during the night and analyzing it, using the Speak, Fototoon activities to learn while travelling etc will allow users to have a much more thorough and immerse experience of using these activities.<br />
<br />
<br />
'''Lionel Laské:'''<br />
<br />
Activities in the Sugarizer Activity Set are 3 of most famous Sugar activities. It's very important to have a full experience of Sugar on any device that these activities must be available into Sugar-Web. Plus these activities was proven during deployment to be very attractive for children using Sugar and at least Speak and Fototoon allow them to express their creativity.<br />
<br />
<br />
'''Walter Bender:'''<br />
<br />
Speak and Fototoons are nice examples of tools that let encourage exploration of narrative. It is central to our pedagogy that we engage learners in constructing and expressing.<br />
<br />
<br />
'''What will you do if you get stuck on your project and your mentor isn't around?'''<br />
<br />
I will try to see if I can figure it out myself, using the internet (Google, Stackoverflow, Quora etc) or use some books. If this doesn’t help then I will try to seek help from the Sugar community on the IRC or send a mail on the developer mailing list. I would also ask my friends here who have great amounts of knowledge on a wide variety of topics and they could help me sort the problem out.<br />
<br />
<br />
'''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?'''<br />
<br />
I have a blog set up accessible from [http://erilyth.github.io/ my website], [http://vishalbatchu.blog.com/ my blog]. I will be updating the status of the project and anything else related to Sugar over there every week. I will use the IRC to get reviews on my work by others and also learn what I need to improve from others. I will document my code properly and use appropriate commit messages (git) so others can take a look at my work easily. If required, I will also create pages on the Sugar Wiki.<br />
<br />
== Miscellaneous ==<br />
<br />
'''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". '''<br />
<br />
[[File:Sugar-vishal.png|800px]]<br />
<br />
<br />
'''Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.'''&nbsp;&nbsp;&nbsp; <br />
* Add a CollabWrapper based Text Editor to Sugar: [https://github.com/samdroid-apps/collabwrapper/pull/1 https://github.com/samdroid-apps/collabwrapper/pull/1] '''Merged'''<br />
* Add export matrix feature to Music Blocks: [https://github.com/walterbender/musicblocks/pull/97 https://github.com/walterbender/musicblocks/pull/97] '''Merged'''<br />
* Collaboration Refactoring in Story: [https://github.com/walterbender/story/pull/4 https://github.com/walterbender/story/pull/4] '''Merged'''<br />
* Save and Load file buttons in Music Blocks: [https://github.com/walterbender/musicblocks/pull/115 https://github.com/walterbender/musicblocks/pull/115] '''Merged'''<br />
* Notification drag to act like a clipboard entry: [https://github.com/sugarlabs/sugar/pull/633/files https://github.com/sugarlabs/sugar/pull/633/files] '''Merged'''<br />
* Add icon hover effects: [https://github.com/llaske/sugarizer/pull/32 https://github.com/llaske/sugarizer/pull/32] '''Merged'''<br />
<br />
<br />
<br />
'''If you plan to work on Sugar-Web projects we want to be sure that you're familiar with web technologies, so:'''<br />
* '''Clone the'''[https://github.com/llaske/Sugarizer ][https://github.com/llaske/Sugarizer Sugarizer repository]<br />
* '''Using instructions'''[https://github.com/llaske/Sugarizer#create-your-own-activity ][https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity'''<br />
* '''Send us a screenshot of your new activity executed in Sugarizer'''<br />
<br />
[[File:Sugarizer-vishal.png|800px]]<br />
<br />
<br />
'''Describe a great learning experience you had as a child.'''<br />
<br />
When I was younger I always used to have a negative feeling towards teachers. I used to make fun of them and felt that they come to teach only because they don’t have anywhere else to go. I guess I got these feelings since I didn’t like it when they yelled at us (of course for our own mistakes, but I didn’t realize that then). One day I was called up to teach something to the entire class, it was a topic that I was fairly familiar with so I went up there and started teaching. This is when everything changed, I felt a huge amount of joy and excitement. I realized that teaching is not a profession that is chosen because there is nothing else to choose but because it is probably one of the best things to do! From that point on I have always respected teachers and have always loved to share my knowledge with others, just like teachers do.<br />
<br />
<br />
'''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?'''<br />
<br />
Nope, everything is just fine!<br />
[[Category:2016 GSoC applications]]</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/SugarizerActivitySet&diff=97121Summer of Code/2016/SugarizerActivitySet2016-03-16T16:52:15Z<p>Erilyth: /* About your project */</p>
<hr />
<div>Sugarizer Activity Set<br />
<br />
== About You ==<br />
<br />
'''What is your name?'''<br />
<br />
My name is Batchu Venkat Vishal, I am a 2nd-year undergrad student from [http://www.iiit.ac.in/ International Institute of Information Technology Hyderabad] (IIITH)<br />
<br />
<br />
'''What is your email address?'''<br />
<br />
[mailto:vishal.batchu@students.iiit.ac.in vishal.batchu@students.iiit.ac.in]<br />
<br />
Alternate, [mailto:vishalvenkat71@gmail.com vishalvenkat71@gmail.com]<br />
<br />
<br />
'''What is your Sugar Labs wiki username?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your IRC nickname on irc.freenode.net?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)'''<br />
<br />
My native language is Telugu, I am fluent in English and speak a bit of Hindi.<br />
<br />
<br />
'''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.)'''<br />
<br />
I'm located in Hyderabad (Telangana), India.<br />
<br />
I'm planning to work 12:00 UTC - 18:00 UTC on Monday, Tuesday, Wednesday, Thursday, Friday and Saturday and 8:00 UTC - 19:00 UTC on Sundays.<br />
<br />
<br />
'''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?'''<br />
<br />
I am new to open source, but I have contributed to some open source organizations which were founded in my college ( [https://felicity.iiit.ac.in/ College Fest Website] ([https://github.com/felicity-iiith/ https://github.com/felicity-iiith/]), [http://osdg.iiit.ac.in/ College OSDG website] ([https://github.com/OSDG-IIITH https://github.com/OSDG-IIITH]) ). Sugar Labs and OLPC have amazed me, I have always wanted to do something which would help others learn especially when I think of all the kids out there who are unable to get a quality education. When I stumbled upon SugarLabs I knew it was the way in which I could use my knowledge and help spread educational tools to millions of others out there. Open source is the best way to get exposure and collaborate with lots of others just like us, and get to know about their views and what others think. It's a means by which I can make a difference in the society.<br />
<br />
== About your project ==<br />
<br />
<br />
<br />
'''What is the name of your project?'''<br />
<br />
Sugarizer Activity Set<br />
<br />
<br />
'''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? What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; 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 (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.'''<br />
<br />
The project is a full rewriting of a few Sugar apps which will be ported to Sugar Web:<br />
# Moon<br />
# Speak<br />
# Fototoon (and more if time permits) <br />
<br />
<br />
<br />
These activities will be ported using the Sugar Web Framework in order to reach a much larger audience. The Sugarizer/Web apps are available to a lot of children since they are supported by any Web Browser or an XO. This would enable every child to have access and use these activities at their convenience. Children should be able to have the same learning capabilities no matter what platform they are using to run the activities which can be achieved with Sugarizer.<br />
<br />
<br />
The main technologies that will be used are HTML5 and Javascript. Understanding Python source code will be required to understand the current versions of the activities so that the activities created on Sugar Web for the Sugarizer should have similar features to the ones right now.<br />
<br />
<br />
'''A few problems I might face during the implementation in javascript:'''<br />
* Storage of data (audio, images) on the Sugar Web platform.<br />
* Compatibility and adaptability with devices of different sizes(phones, tablets etc) and also touch screen capabilities, if they can be used effectively.<br />
* Browser portability and compatibility.<br />
<br />
<br />
<br />
<br />
<br />
'''Libraries in consideration and methods of implementation:'''<br />
<br />
Here are some of the libraries I am considering to use for the project to ease the development process. This is not a static list and can change as and when I am implementing the features of the activities.<br />
# [https://github.com/kripken/speak.js/ speak.js] or [http://www.masswerk.at/mespeak/ mespeak.js] for text to speech generation in javascript for the ‘Speak’ activity. (GNU GENERAL PUBLIC License)<br />
# Google Translate to generate the audio for given text, also to be used with the ‘Speak’ activity. (This requires us to be online while using the activity but the speech synthesized is of a higher quality).<br />
# [https://github.com/desandro/masonry masonry.js] for clean and simple grid layouts for the ‘Fototoon’ activity. (MIT License)<br />
# [https://github.com/hammerjs/hammer.js hammer.js][https://github.com/hammerjs/hammer.js ]for recognizing and using touch gestures and multi-touch gestures (if needed). (MIT License)<br />
# [https://github.com/desandro/draggabilly draggabilly.js] for simple draggable interfaces for the ‘Fototoon’ activity.<br />
<br />
<br />
<br />
<br />
<br />
These are some libraries that I will look into in order to accelerate the development. I will use an Agile development process also including some iteration and incremental implementation. <br />
<br />
I have downloaded the Moon, Speak and Fototoon xo files and have used them thoroughly to analyze and understand what are the features that each of them provides which I will be implementing. I will try my best to keep the look and feel of the activities to be as similar as possible to the current implementations.<br />
<br />
<br />
'''My timeline:'''<br />
<br />
<br />
<br />
{| style="border-spacing:0;"<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Week'''<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Work Scheduled'''<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 0<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
* Setup a basic MVC architecture in javascript which can be used by the activities (If needed).<br />
* Compatibility checks of libraries with different devices.<br />
* Setup sample codes using the libraries which can be used in the activities as and when needed.<br />
* Take a look at how touch screen capabilities can improve the user experience on mobile devices.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 1 - 19 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Basic UI for the face with eyeballs following the cursor.<br />
* Basic text to speech conversion and use a suitable library for the ‘Type something to hear it’ mode.<br />
* Pitch, rate and language features.<br />
* Number of eyes feature.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 2 - 25 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Mouth motion for the face.<br />
* ‘Ask the robot’ mode and add some basic AI to respond to users.<br />
* Add the ‘Voice Chat / Chat ’ mode. (basic)<br />
* Add types of eyes which the user can select.<br />
* Add types of mouths which the user can select.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 3 - 1 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* ‘Set face from photo’ feature.<br />
* Improve the AI which runs on the ‘Ask the robot’ mode.<br />
* Improve ‘Chat’ mode and make it functional.<br />
<br />
<br />
<br />
<br />
<br />
FotoToon Activity:<br />
* Image upload from journal/local machine.<br />
* Basic box globe(chat box) addition feature and movement lines, enable them to be dragged in the image.<br />
* Full-screen mode.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 4 - 8 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Save as image option.<br />
<br />
* Add other types of globes.<br />
* Add text customization features for text within the different globes.<br />
* Rotation of globes.<br />
* Deletion of globes.<br />
* Add background image for activity.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 5 - 15 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Reordering of images.<br />
* Slideshow and slideshow with timing modes to view the pictures.<br />
* Save as pdf and movie options.<br />
<br />
<br />
<br />
<br />
<br />
Moon Activity:<br />
* Basic UI and moon image.<br />
* Grid view overlay for the image.<br />
* Display information regarding the current state of the moon.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 6 - 22 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity:<br />
* Shade parts of the moon depending on the day.<br />
<br />
* Toggle hemisphere views.<br />
* Save as image option to save the current state of the moon.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Midterm Evaluations<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 7 - 29 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to evaluations:<br />
* Depending on the evaluations improve/fix bugs on the activities etc.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 8 - 6 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity testing and reviews:<br />
* Get detailed feedback on the Speak activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 9 - 13 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity testing and reviews:<br />
* Get detailed feedback on the FotoToon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 10 - 20 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity testing and reviews:<br />
* Get detailed feedback on the Moon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 11 - 27 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities testing:<br />
* Ensure the documentation is done properly.<br />
* Do a final test of all the activities.<br />
* Relax a bit as well :)<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 12 - 3 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities review and evaluation from the Sugar community:<br />
* Ask other members who use these activities on Sugar to review this on Sugarizer and ensure they are satisfied with their experience.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 13 - 10 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to reviews:<br />
* If anything needs to be done after the reviews, I will do it.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 14 - 17 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Final Activity checks:<br />
* Ensure everything works properly and I am ready to submit my project to google.<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Final Evaluations - 21 August<br />
<br />
|}<br />
<br />
<br />
'''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.'''<br />
<br />
I have a strong passion for programming and feel content when I code. I never leave work unattended or halfway through since I feel that not starting the work at all is a lot better than leaving it halfway. I do quite well in other areas as well, my GPA is 9.8/10. I often like to spend time talking to others about their experiences developing something or working for an organization since it helps me learn more about others and how I can improve my ways.<br />
<br />
I don’t have any other commitments this summer apart from this, so spending around 6 hrs a day won’t be a problem at all. I often like to take up leadership and responsibility of work that needs to be done as part of college when we work in groups and always finish work on time or earlier if possible.<br />
<br />
I have started developing the Speak activity in JS and have got the basic features such as eye motion, mouth motion, number of eyes, text to speech etc working. This is just a starting prototype kind of thing which I will build up on during my project and make it work as similar to the original Speak activity as possible. Here is a link to the [http://speak-activity-sugarizer.bitballoon.com/ demo].<br />
<br />
I have also fixed quite a few bugs and added some features to Sugar, so I am quite familiar with the development environment used for developing on Sugar and Sugar-Web. I have also tried to make a simple activity on sugar for testing purposes, it's the [http://activities.sugarlabs.org/en-US/sugar/addon/4785 Simon Says game]. I have worked both with python based activities in Sugar and also with Sugar-Web based projects (musicblocks etc) which is what this project needs in order to port python based activities to web-based activities to be used with Sugarizer.<br />
<br />
<br />
'''Projects I have worked on:'''<br />
# [https://trendspace.pythonanywhere.com/ Trendspace] '''- A shopping website made using the web2py framework.<br />
# [https://github.com/erilyth/OpenGL-C- Cannon Game] '''- A 2D cannon shooter game made entirely using OpenGL and C++.<br />
# [https://github.com/erilyth/OpenGL-3D Adventure Game] '''- A 3D survival game made using OpenGL and C++ with models created using Blender.<br />
# [https://github.com/erilyth/DonkeyKong-Pygame Donkey Kong] '''- A 2D version of the Donkey Kong game made using Pygame.<br />
# [https://github.com/erilyth/Tangram-Game Tangram Game] '''- A version of Tangram(Block Puzzle) developed using Cocos2D-JS targeting mobile devices mainly.<br />
# [https://github.com/Achilles-96/File-sharing-client File Transfer Protocol] '''- A simple file sharing client using which we can share files, check validity using hashes and index based searching. It uses the TCP and UDP (handling losses) protocols for transfer.<br />
# [https://github.com/erilyth/First-Person-Shooter-Unity- FPS Shooter] '''- A 3D basic first person shooter game made using Unity in C#.<br />
# [https://github.com/erilyth/Box-Stacking-Game Box Stacking Game] '''- A simple click and drag box stacking game made using Unity in C#.<br />
<br />
<br />
<br />
<br />
<br />
I have also worked on a lot of other smaller projects and also do competitive programming, you can take a look at my [https://github.com/erilyth github profile] and [http://codeforces.com/profile/Erilyth codeforces profile].<br />
<br />
<br />
Here are some screenshots of the games I developed,<br />
* Cannon Game:<br />
[[File:Cannongame-vishal.png|800px]]<br />
<br />
* Adventure Game:<br />
[[File:Adventure1-vishal.png|800px]]<br />
<br />
* Donkey Kong:<br />
[[File:Dokneykong-vishal.png|800px]]<br />
<br />
* Tangram Game:<br />
[[File:Tangram2.jpg|800px]]<br />
<br />
* Box Stacking Game:<br />
[[File:BoxStacking.png|800px]]<br />
<br />
* First Person Shooter:<br />
[[File:FirstPersonShooter2.png|800px]]<br />
<br />
I use [http://erilyth.github.io/ my website] and my blog to share my projects ([https://github.com/erilyth/My-Website https://github.com/erilyth/My-Website]). I have used Node.js along with Angular.js to develop the website.<br />
<br />
<br />
I often try to follow the principles of “'''DIY'''” (Do It Yourself) and have also worked with electronics and made a few simple robots in the past. My profile on [http://www.instructables.com/member/vishalapr/ instructables.com].<br />
<br />
Some of the projects I have made,<br />
# [http://goo.gl/5z48UJ POV Display]<br />
# [http://goo.gl/xEdT4C Wall Avoiding Robot]<br />
<br />
== You and the community ==<br />
<br />
'''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.'''<br />
<br />
<br />
'''My answer:'''<br />
<br />
A lot more students and teachers around the world would get access to &nbsp;some of the best activities on sugar. These activities can then be used on any device which would make them a lot more handy and useful. Some of the most popular apps on Sugar would now be available to use on any Sugarizer device so they can use them wherever they want at their convenience. This would help students learn at their own pace anywhere they want as long as they have a Sugarizer enabled device. Using the Moon activity sitting outside watching the moon during the night and analyzing it, using the Speak, Fototoon activities to learn while travelling etc will allow users to have a much more thorough and immerse experience of using these activities.<br />
<br />
<br />
'''Lionel Laské:'''<br />
<br />
Activities in the Sugarizer Activity Set are 3 of most famous Sugar activities. It's very important to have a full experience of Sugar on any device that these activities must be available into Sugar-Web. Plus these activities was proven during deployment to be very attractive for children using Sugar and at least Speak and Fototoon allow them to express their creativity.<br />
<br />
<br />
'''Walter Bender:'''<br />
<br />
Speak and Fototoons are nice examples of tools that let encourage exploration of narrative. It is central to our pedagogy that we engage learners in constructing and expressing.<br />
<br />
<br />
'''What will you do if you get stuck on your project and your mentor isn't around?'''<br />
<br />
I will try to see if I can figure it out myself, using the internet (Google, Stackoverflow, Quora etc) or use some books. If this doesn’t help then I will try to seek help from the Sugar community on the IRC or send a mail on the developer mailing list. I would also ask my friends here who have great amounts of knowledge on a wide variety of topics and they could help me sort the problem out.<br />
<br />
<br />
'''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?'''<br />
<br />
I have a blog set up accessible from [http://erilyth.github.io/ my website], [http://vishalbatchu.blog.com/ my blog]. I will be updating the status of the project and anything else related to Sugar over there every week. I will use the IRC to get reviews on my work by others and also learn what I need to improve from others. I will document my code properly and use appropriate commit messages (git) so others can take a look at my work easily. If required, I will also create pages on the Sugar Wiki.<br />
<br />
== Miscellaneous ==<br />
<br />
'''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". '''<br />
<br />
[[File:Sugar-vishal.png|800px]]<br />
<br />
<br />
'''Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.'''&nbsp;&nbsp;&nbsp; <br />
* Add a CollabWrapper based Text Editor to Sugar: [https://github.com/samdroid-apps/collabwrapper/pull/1 https://github.com/samdroid-apps/collabwrapper/pull/1] '''Merged'''<br />
* Add export matrix feature to Music Blocks: [https://github.com/walterbender/musicblocks/pull/97 https://github.com/walterbender/musicblocks/pull/97] '''Merged'''<br />
* Collaboration Refactoring in Story: [https://github.com/walterbender/story/pull/4 https://github.com/walterbender/story/pull/4] '''Merged'''<br />
* Save and Load file buttons in Music Blocks: [https://github.com/walterbender/musicblocks/pull/115 https://github.com/walterbender/musicblocks/pull/115] '''Merged'''<br />
* Notification drag to act like a clipboard entry: [https://github.com/sugarlabs/sugar/pull/633/files https://github.com/sugarlabs/sugar/pull/633/files] '''Merged'''<br />
* Add icon hover effects: [https://github.com/llaske/sugarizer/pull/32 https://github.com/llaske/sugarizer/pull/32] '''Merged'''<br />
<br />
<br />
<br />
'''If you plan to work on Sugar-Web projects we want to be sure that you're familiar with web technologies, so:'''<br />
* '''Clone the'''[https://github.com/llaske/Sugarizer ][https://github.com/llaske/Sugarizer Sugarizer repository]<br />
* '''Using instructions'''[https://github.com/llaske/Sugarizer#create-your-own-activity ][https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity'''<br />
* '''Send us a screenshot of your new activity executed in Sugarizer'''<br />
<br />
[[File:Sugarizer-vishal.png|800px]]<br />
<br />
<br />
'''Describe a great learning experience you had as a child.'''<br />
<br />
When I was younger I always used to have a negative feeling towards teachers. I used to make fun of them and felt that they come to teach only because they don’t have anywhere else to go. I guess I got these feelings since I didn’t like it when they yelled at us (of course for our own mistakes, but I didn’t realize that then). One day I was called up to teach something to the entire class, it was a topic that I was fairly familiar with so I went up there and started teaching. This is when everything changed, I felt a huge amount of joy and excitement. I realized that teaching is not a profession that is chosen because there is nothing else to choose but because it is probably one of the best things to do! From that point on I have always respected teachers and have always loved to share my knowledge with others, just like teachers do.<br />
<br />
<br />
'''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?'''<br />
<br />
Nope, everything is just fine!<br />
[[Category:2016 GSoC applications]]</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/SugarizerActivitySet&diff=97115Summer of Code/2016/SugarizerActivitySet2016-03-15T15:17:12Z<p>Erilyth: /* About your project */</p>
<hr />
<div>Sugarizer Activity Set<br />
<br />
== About You ==<br />
<br />
'''What is your name?'''<br />
<br />
My name is Batchu Venkat Vishal, I am a 2nd-year undergrad student from [http://www.iiit.ac.in/ International Institute of Information Technology Hyderabad] (IIITH)<br />
<br />
<br />
'''What is your email address?'''<br />
<br />
[mailto:vishal.batchu@students.iiit.ac.in vishal.batchu@students.iiit.ac.in]<br />
<br />
Alternate, [mailto:vishalvenkat71@gmail.com vishalvenkat71@gmail.com]<br />
<br />
<br />
'''What is your Sugar Labs wiki username?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your IRC nickname on irc.freenode.net?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)'''<br />
<br />
My native language is Telugu, I am fluent in English and speak a bit of Hindi.<br />
<br />
<br />
'''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.)'''<br />
<br />
I'm located in Hyderabad (Telangana), India.<br />
<br />
I'm planning to work 12:00 UTC - 18:00 UTC on Monday, Tuesday, Wednesday, Thursday, Friday and Saturday and 8:00 UTC - 19:00 UTC on Sundays.<br />
<br />
<br />
'''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?'''<br />
<br />
I am new to open source, but I have contributed to some open source organizations which were founded in my college ( [https://felicity.iiit.ac.in/ College Fest Website] ([https://github.com/felicity-iiith/ https://github.com/felicity-iiith/]), [http://osdg.iiit.ac.in/ College OSDG website] ([https://github.com/OSDG-IIITH https://github.com/OSDG-IIITH]) ). Sugar Labs and OLPC have amazed me, I have always wanted to do something which would help others learn especially when I think of all the kids out there who are unable to get a quality education. When I stumbled upon SugarLabs I knew it was the way in which I could use my knowledge and help spread educational tools to millions of others out there. Open source is the best way to get exposure and collaborate with lots of others just like us, and get to know about their views and what others think. It's a means by which I can make a difference in the society.<br />
<br />
== About your project ==<br />
<br />
<br />
<br />
'''What is the name of your project?'''<br />
<br />
Sugarizer Activity Set<br />
<br />
<br />
'''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? What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; 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 (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.'''<br />
<br />
The project is a full rewriting of a few Sugar apps which will be ported to Sugar Web:<br />
# Moon<br />
# Speak<br />
# Fototoon (and more if time permits) <br />
<br />
<br />
<br />
These activities will be ported using the Sugar Web Framework in order to reach a much larger audience. The Sugarizer/Web apps are available to a lot of children since they are supported by any Web Browser or an XO. This would enable every child to have access and use these activities at their convenience. Children should be able to have the same learning capabilities no matter what platform they are using to run the activities which can be achieved with Sugarizer.<br />
<br />
<br />
The main technologies that will be used are HTML5 and Javascript. Understanding Python source code will be required to understand the current versions of the activities so that the activities created on Sugar Web for the Sugarizer should have similar features to the ones right now.<br />
<br />
<br />
'''A few problems I might face during the implementation in javascript:'''<br />
* Storage of data (audio, images) on the Sugar Web platform.<br />
* Compatibility and adaptability with devices of different sizes(phones, tablets etc) and also touch screen capabilities, if they can be used effectively.<br />
* Browser portability and compatibility.<br />
<br />
<br />
<br />
<br />
<br />
'''Libraries in consideration and methods of implementation:'''<br />
<br />
Here are some of the libraries I am considering to use for the project to ease the development process. This is not a static list and can change as and when I am implementing the features of the activities.<br />
# [https://github.com/kripken/speak.js/ speak.js] for text to speech generation in javascript for the ‘Speak’ activity. (GNU GENERAL PUBLIC License)<br />
# Google Translate to generate the audio for given text, also to be used with the ‘Speak’ activity. (This requires us to be online while using the activity but the speech synthesized is of a higher quality).<br />
# [https://github.com/desandro/masonry masonry.js] for clean and simple grid layouts for the ‘Fototoon’ activity. (MIT License)<br />
# [https://github.com/hammerjs/hammer.js hammer.js][https://github.com/hammerjs/hammer.js ]for recognizing and using touch gestures and multi-touch gestures (if needed). (MIT License)<br />
# [https://github.com/desandro/draggabilly draggabilly.js] for simple draggable interfaces for the ‘Fototoon’ activity.<br />
<br />
<br />
<br />
<br />
<br />
These are some libraries that I will look into in order to accelerate the development. I will use an Agile development process also including some iteration and incremental implementation. <br />
<br />
I have downloaded the Moon, Speak and Fototoon xo files and have used them thoroughly to analyze and understand what are the features that each of them provides which I will be implementing. I will try my best to keep the look and feel of the activities to be as similar as possible to the current implementations.<br />
<br />
<br />
'''My timeline:'''<br />
<br />
<br />
<br />
{| style="border-spacing:0;"<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Week'''<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Work Scheduled'''<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 0<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
* Setup a basic MVC architecture in javascript which can be used by the activities (If needed).<br />
* Compatibility checks of libraries with different devices.<br />
* Setup sample codes using the libraries which can be used in the activities as and when needed.<br />
* Take a look at how touch screen capabilities can improve the user experience on mobile devices.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 1 - 19 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Basic UI for the face with eyeballs following the cursor.<br />
* Basic text to speech conversion and use a suitable library for the ‘Type something to hear it’ mode.<br />
* Pitch, rate and language features.<br />
* Number of eyes feature.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 2 - 25 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Mouth motion for the face.<br />
* ‘Ask the robot’ mode and add some basic AI to respond to users.<br />
* Add the ‘Voice Chat / Chat ’ mode. (basic)<br />
* Add types of eyes which the user can select.<br />
* Add types of mouths which the user can select.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 3 - 1 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* ‘Set face from photo’ feature.<br />
* Improve the AI which runs on the ‘Ask the robot’ mode.<br />
* Improve ‘Chat’ mode and make it functional.<br />
<br />
<br />
<br />
<br />
<br />
FotoToon Activity:<br />
* Image upload from journal/local machine.<br />
* Basic box globe(chat box) addition feature and movement lines, enable them to be dragged in the image.<br />
* Full-screen mode.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 4 - 8 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Save as image option.<br />
<br />
* Add other types of globes.<br />
* Add text customization features for text within the different globes.<br />
* Rotation of globes.<br />
* Deletion of globes.<br />
* Add background image for activity.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 5 - 15 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Reordering of images.<br />
* Slideshow and slideshow with timing modes to view the pictures.<br />
* Save as pdf and movie options.<br />
<br />
<br />
<br />
<br />
<br />
Moon Activity:<br />
* Basic UI and moon image.<br />
* Grid view overlay for the image.<br />
* Display information regarding the current state of the moon.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 6 - 22 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity:<br />
* Shade parts of the moon depending on the day.<br />
<br />
* Toggle hemisphere views.<br />
* Save as image option to save the current state of the moon.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Midterm Evaluations<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 7 - 29 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to evaluations:<br />
* Depending on the evaluations improve/fix bugs on the activities etc.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 8 - 6 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity testing and reviews:<br />
* Get detailed feedback on the Speak activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 9 - 13 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity testing and reviews:<br />
* Get detailed feedback on the FotoToon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 10 - 20 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity testing and reviews:<br />
* Get detailed feedback on the Moon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 11 - 27 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities testing:<br />
* Ensure the documentation is done properly.<br />
* Do a final test of all the activities.<br />
* Relax a bit as well :)<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 12 - 3 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities review and evaluation from the Sugar community:<br />
* Ask other members who use these activities on Sugar to review this on Sugarizer and ensure they are satisfied with their experience.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 13 - 10 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to reviews:<br />
* If anything needs to be done after the reviews, I will do it.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 14 - 17 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Final Activity checks:<br />
* Ensure everything works properly and I am ready to submit my project to google.<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Final Evaluations - 21 August<br />
<br />
|}<br />
<br />
<br />
'''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.'''<br />
<br />
I have a strong passion for programming and feel content when I code. I never leave work unattended or halfway through since I feel that not starting the work at all is a lot better than leaving it halfway. I do quite well in other areas as well, my GPA is 9.8/10. I often like to spend time talking to others about their experiences developing something or working for an organization since it helps me learn more about others and how I can improve my ways.<br />
<br />
I don’t have any other commitments this summer apart from this, so spending around 6 hrs a day won’t be a problem at all. I often like to take up leadership and responsibility of work that needs to be done as part of college when we work in groups and always finish work on time or earlier if possible.<br />
<br />
I have started developing the Speak activity in JS and have got the basic features such as eye motion, mouth motion, number of eyes, text to speech etc working. This is just a starting prototype kind of thing which I will build up on during my project and make it work as similar to the original Speak activity as possible. Here is a link to the [http://speak-activity-sugarizer.bitballoon.com/ demo].<br />
<br />
I have also fixed quite a few bugs and added some features to Sugar, so I am quite familiar with the development environment used for developing on Sugar and Sugar-Web. I have also tried to make a simple activity on sugar for testing purposes, it's the [http://activities.sugarlabs.org/en-US/sugar/addon/4785 Simon Says game]. I have worked both with python based activities in Sugar and also with Sugar-Web based projects (musicblocks etc) which is what this project needs in order to port python based activities to web-based activities to be used with Sugarizer.<br />
<br />
<br />
'''Projects I have worked on:'''<br />
# [https://trendspace.pythonanywhere.com/ Trendspace] '''- A shopping website made using the web2py framework.<br />
# [https://github.com/erilyth/OpenGL-C- Cannon Game] '''- A 2D cannon shooter game made entirely using OpenGL and C++.<br />
# [https://github.com/erilyth/OpenGL-3D Adventure Game] '''- A 3D survival game made using OpenGL and C++ with models created using Blender.<br />
# [https://github.com/erilyth/DonkeyKong-Pygame Donkey Kong] '''- A 2D version of the Donkey Kong game made using Pygame.<br />
# [https://github.com/erilyth/Tangram-Game Tangram Game] '''- A version of Tangram(Block Puzzle) developed using Cocos2D-JS targeting mobile devices mainly.<br />
# [https://github.com/Achilles-96/File-sharing-client File Transfer Protocol] '''- A simple file sharing client using which we can share files, check validity using hashes and index based searching. It uses the TCP and UDP (handling losses) protocols for transfer.<br />
# [https://github.com/erilyth/First-Person-Shooter-Unity- FPS Shooter] '''- A 3D basic first person shooter game made using Unity in C#.<br />
# [https://github.com/erilyth/Box-Stacking-Game Box Stacking Game] '''- A simple click and drag box stacking game made using Unity in C#.<br />
<br />
<br />
<br />
<br />
<br />
I have also worked on a lot of other smaller projects and also do competitive programming, you can take a look at my [https://github.com/erilyth github profile] and [http://codeforces.com/profile/Erilyth codeforces profile].<br />
<br />
<br />
Here are some screenshots of the games I developed,<br />
* Cannon Game:<br />
[[File:Cannongame-vishal.png|800px]]<br />
<br />
* Adventure Game:<br />
[[File:Adventure1-vishal.png|800px]]<br />
<br />
* Donkey Kong:<br />
[[File:Dokneykong-vishal.png|800px]]<br />
<br />
* Tangram Game:<br />
[[File:Tangram2.jpg|800px]]<br />
<br />
* Box Stacking Game:<br />
[[File:BoxStacking.png|800px]]<br />
<br />
* First Person Shooter:<br />
[[File:FirstPersonShooter2.png|800px]]<br />
<br />
I use [http://erilyth.github.io/ my website] and my blog to share my projects ([https://github.com/erilyth/My-Website https://github.com/erilyth/My-Website]). I have used Node.js along with Angular.js to develop the website.<br />
<br />
<br />
I often try to follow the principles of “'''DIY'''” (Do It Yourself) and have also worked with electronics and made a few simple robots in the past. My profile on [http://www.instructables.com/member/vishalapr/ instructables.com].<br />
<br />
Some of the projects I have made,<br />
# [http://goo.gl/5z48UJ POV Display]<br />
# [http://goo.gl/xEdT4C Wall Avoiding Robot]<br />
<br />
== You and the community ==<br />
<br />
'''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.'''<br />
<br />
<br />
'''My answer:'''<br />
<br />
A lot more students and teachers around the world would get access to &nbsp;some of the best activities on sugar. These activities can then be used on any device which would make them a lot more handy and useful. Some of the most popular apps on Sugar would now be available to use on any Sugarizer device so they can use them wherever they want at their convenience. This would help students learn at their own pace anywhere they want as long as they have a Sugarizer enabled device. Using the Moon activity sitting outside watching the moon during the night and analyzing it, using the Speak, Fototoon activities to learn while travelling etc will allow users to have a much more thorough and immerse experience of using these activities.<br />
<br />
<br />
'''Lionel Laské:'''<br />
<br />
Activities in the Sugarizer Activity Set are 3 of most famous Sugar activities. It's very important to have a full experience of Sugar on any device that these activities must be available into Sugar-Web. Plus these activities was proven during deployment to be very attractive for children using Sugar and at least Speak and Fototoon allow them to express their creativity.<br />
<br />
<br />
'''Walter Bender:'''<br />
<br />
Speak and Fototoons are nice examples of tools that let encourage exploration of narrative. It is central to our pedagogy that we engage learners in constructing and expressing.<br />
<br />
<br />
'''What will you do if you get stuck on your project and your mentor isn't around?'''<br />
<br />
I will try to see if I can figure it out myself, using the internet (Google, Stackoverflow, Quora etc) or use some books. If this doesn’t help then I will try to seek help from the Sugar community on the IRC or send a mail on the developer mailing list. I would also ask my friends here who have great amounts of knowledge on a wide variety of topics and they could help me sort the problem out.<br />
<br />
<br />
'''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?'''<br />
<br />
I have a blog set up accessible from [http://erilyth.github.io/ my website], [http://vishalbatchu.blog.com/ my blog]. I will be updating the status of the project and anything else related to Sugar over there every week. I will use the IRC to get reviews on my work by others and also learn what I need to improve from others. I will document my code properly and use appropriate commit messages (git) so others can take a look at my work easily. If required, I will also create pages on the Sugar Wiki.<br />
<br />
== Miscellaneous ==<br />
<br />
'''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". '''<br />
<br />
[[File:Sugar-vishal.png|800px]]<br />
<br />
<br />
'''Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.'''&nbsp;&nbsp;&nbsp; <br />
* Add a CollabWrapper based Text Editor to Sugar: [https://github.com/samdroid-apps/collabwrapper/pull/1 https://github.com/samdroid-apps/collabwrapper/pull/1] '''Merged'''<br />
* Add export matrix feature to Music Blocks: [https://github.com/walterbender/musicblocks/pull/97 https://github.com/walterbender/musicblocks/pull/97] '''Merged'''<br />
* Collaboration Refactoring in Story: [https://github.com/walterbender/story/pull/4 https://github.com/walterbender/story/pull/4] '''Merged'''<br />
* Save and Load file buttons in Music Blocks: [https://github.com/walterbender/musicblocks/pull/115 https://github.com/walterbender/musicblocks/pull/115] '''Merged'''<br />
* Notification drag to act like a clipboard entry: [https://github.com/sugarlabs/sugar/pull/633/files https://github.com/sugarlabs/sugar/pull/633/files] '''Merged'''<br />
* Add icon hover effects: [https://github.com/llaske/sugarizer/pull/32 https://github.com/llaske/sugarizer/pull/32] '''Merged'''<br />
<br />
<br />
<br />
'''If you plan to work on Sugar-Web projects we want to be sure that you're familiar with web technologies, so:'''<br />
* '''Clone the'''[https://github.com/llaske/Sugarizer ][https://github.com/llaske/Sugarizer Sugarizer repository]<br />
* '''Using instructions'''[https://github.com/llaske/Sugarizer#create-your-own-activity ][https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity'''<br />
* '''Send us a screenshot of your new activity executed in Sugarizer'''<br />
<br />
[[File:Sugarizer-vishal.png|800px]]<br />
<br />
<br />
'''Describe a great learning experience you had as a child.'''<br />
<br />
When I was younger I always used to have a negative feeling towards teachers. I used to make fun of them and felt that they come to teach only because they don’t have anywhere else to go. I guess I got these feelings since I didn’t like it when they yelled at us (of course for our own mistakes, but I didn’t realize that then). One day I was called up to teach something to the entire class, it was a topic that I was fairly familiar with so I went up there and started teaching. This is when everything changed, I felt a huge amount of joy and excitement. I realized that teaching is not a profession that is chosen because there is nothing else to choose but because it is probably one of the best things to do! From that point on I have always respected teachers and have always loved to share my knowledge with others, just like teachers do.<br />
<br />
<br />
'''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?'''<br />
<br />
Nope, everything is just fine!<br />
[[Category:2016 GSoC applications]]</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/SugarizerActivitySet&diff=97111Summer of Code/2016/SugarizerActivitySet2016-03-13T16:58:12Z<p>Erilyth: </p>
<hr />
<div>Sugarizer Activity Set<br />
<br />
== About You ==<br />
<br />
'''What is your name?'''<br />
<br />
My name is Batchu Venkat Vishal, I am a 2nd-year undergrad student from [http://www.iiit.ac.in/ International Institute of Information Technology Hyderabad] (IIITH)<br />
<br />
<br />
'''What is your email address?'''<br />
<br />
[mailto:vishal.batchu@students.iiit.ac.in vishal.batchu@students.iiit.ac.in]<br />
<br />
Alternate, [mailto:vishalvenkat71@gmail.com vishalvenkat71@gmail.com]<br />
<br />
<br />
'''What is your Sugar Labs wiki username?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your IRC nickname on irc.freenode.net?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)'''<br />
<br />
My native language is Telugu, I am fluent in English and speak a bit of Hindi.<br />
<br />
<br />
'''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.)'''<br />
<br />
I'm located in Hyderabad (Telangana), India.<br />
<br />
I'm planning to work 12:00 UTC - 18:00 UTC on Monday, Tuesday, Wednesday, Thursday, Friday and Saturday and 8:00 UTC - 19:00 UTC on Sundays.<br />
<br />
<br />
'''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?'''<br />
<br />
I am new to open source, but I have contributed to some open source organizations which were founded in my college ( [https://felicity.iiit.ac.in/ College Fest Website] ([https://github.com/felicity-iiith/ https://github.com/felicity-iiith/]), [http://osdg.iiit.ac.in/ College OSDG website] ([https://github.com/OSDG-IIITH https://github.com/OSDG-IIITH]) ). Sugar Labs and OLPC have amazed me, I have always wanted to do something which would help others learn especially when I think of all the kids out there who are unable to get a quality education. When I stumbled upon SugarLabs I knew it was the way in which I could use my knowledge and help spread educational tools to millions of others out there. Open source is the best way to get exposure and collaborate with lots of others just like us, and get to know about their views and what others think. It's a means by which I can make a difference in the society.<br />
<br />
== About your project ==<br />
<br />
<br />
<br />
'''What is the name of your project?'''<br />
<br />
Sugarizer Activity Set<br />
<br />
<br />
'''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? What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; 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 (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.'''<br />
<br />
The project is a full rewriting of a few Sugar apps which will be ported to Sugar Web:<br />
# Moon<br />
# Speak<br />
# Fototoon (and more if time permits) <br />
<br />
<br />
<br />
These activities will be ported using the Sugar Web Framework in order to reach a much larger audience. The Sugarizer/Web apps are available to a lot of children since they are supported by any Web Browser or an XO. This would enable every child to have access and use these activities at their convenience. Children should be able to have the same learning capabilities no matter what platform they are using to run the activities which can be achieved with Sugarizer.<br />
<br />
<br />
The main technologies that will be used are HTML5 and Javascript. Understanding Python source code will be required to understand the current versions of the activities so that the activities created on Sugar Web for the Sugarizer should have similar features to the ones right now.<br />
<br />
<br />
'''A few problems I might face during the implementation in javascript:'''<br />
* Storage of data (audio, images) on the Sugar Web platform.<br />
* Compatibility and adaptability with devices of different sizes(phones, tablets etc) and also touch screen capabilities, if they can be used effectively.<br />
<br />
<br />
<br />
<br />
<br />
'''Libraries in consideration and methods of implementation:'''<br />
<br />
Here are some of the libraries I am considering to use for the project to ease the development process. This is not a static list and can change as and when I am implementing the features of the activities.<br />
# [https://github.com/kripken/speak.js/ speak.js] for text to speech generation in javascript for the ‘Speak’ activity. (GNU GENERAL PUBLIC License)<br />
# Google Translate to generate the audio for given text, also to be used with the ‘Speak’ activity. (This requires us to be online while using the activity but the speech synthesized is of a higher quality).<br />
# [https://github.com/desandro/masonry masonry.js] for clean and simple grid layouts for the ‘Fototoon’ activity. (MIT License)<br />
# [https://github.com/hammerjs/hammer.js hammer.js][https://github.com/hammerjs/hammer.js ]for recognizing and using touch gestures and multi-touch gestures (if needed). (MIT License)<br />
# [https://github.com/desandro/draggabilly draggabilly.js] for simple draggable interfaces for the ‘Fototoon’ activity.<br />
<br />
<br />
<br />
<br />
<br />
These are some libraries that I will look into in order to accelerate the development. I will use an Agile development process also including some iteration and incremental implementation. <br />
<br />
I have downloaded the Moon, Speak and Fototoon xo files and have used them thoroughly to analyze and understand what are the features that each of them provides which I will be implementing. I will try my best to keep the look and feel of the activities to be as similar as possible to the current implementations.<br />
<br />
<br />
'''My timeline:'''<br />
<br />
<br />
<br />
{| style="border-spacing:0;"<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Week'''<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Work Scheduled'''<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 0<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
* Setup a basic MVC architecture in javascript which can be used by the activities (If needed).<br />
* Compatibility checks of libraries with different devices.<br />
* Setup sample codes using the libraries which can be used in the activities as and when needed.<br />
* Take a look at how touch screen capabilities can improve the user experience on mobile devices.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 1 - 19 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Basic UI for the face with eyeballs following the cursor.<br />
* Basic text to speech conversion and use a suitable library for the ‘Type something to hear it’ mode.<br />
* Pitch, rate and language features.<br />
* Number of eyes feature.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 2 - 25 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Mouth motion for the face.<br />
* ‘Ask the robot’ mode and add some basic AI to respond to users.<br />
* Add the ‘Voice Chat / Chat ’ mode. (basic)<br />
* Add types of eyes which the user can select.<br />
* Add types of mouths which the user can select.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 3 - 1 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* ‘Set face from photo’ feature.<br />
* Improve the AI which runs on the ‘Ask the robot’ mode.<br />
* Improve ‘Chat’ mode and make it functional.<br />
<br />
<br />
<br />
<br />
<br />
FotoToon Activity:<br />
* Image upload from journal/local machine.<br />
* Basic box globe(chat box) addition feature and movement lines, enable them to be dragged in the image.<br />
* Full-screen mode.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 4 - 8 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Save as image option.<br />
<br />
* Add other types of globes.<br />
* Add text customization features for text within the different globes.<br />
* Rotation of globes.<br />
* Deletion of globes.<br />
* Add background image for activity.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 5 - 15 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Reordering of images.<br />
* Slideshow and slideshow with timing modes to view the pictures.<br />
* Save as pdf and movie options.<br />
<br />
<br />
<br />
<br />
<br />
Moon Activity:<br />
* Basic UI and moon image.<br />
* Grid view overlay for the image.<br />
* Display information regarding the current state of the moon.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 6 - 22 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity:<br />
* Shade parts of the moon depending on the day.<br />
<br />
* Toggle hemisphere views.<br />
* Save as image option to save the current state of the moon.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Midterm Evaluations<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 7 - 29 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to evaluations:<br />
* Depending on the evaluations improve/fix bugs on the activities etc.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 8 - 6 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity testing and reviews:<br />
* Get detailed feedback on the Speak activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 9 - 13 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity testing and reviews:<br />
* Get detailed feedback on the FotoToon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 10 - 20 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity testing and reviews:<br />
* Get detailed feedback on the Moon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 11 - 27 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities testing:<br />
* Ensure the documentation is done properly.<br />
* Do a final test of all the activities.<br />
* Relax a bit as well :)<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 12 - 3 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities review and evaluation from the Sugar community:<br />
* Ask other members who use these activities on Sugar to review this on Sugarizer and ensure they are satisfied with their experience.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 13 - 10 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to reviews:<br />
* If anything needs to be done after the reviews, I will do it.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 14 - 17 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Final Activity checks:<br />
* Ensure everything works properly and I am ready to submit my project to google.<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Final Evaluations - 21 August<br />
<br />
|}<br />
<br />
<br />
'''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.'''<br />
<br />
I have a strong passion for programming and feel content when I code. I never leave work unattended or halfway through since I feel that not starting the work at all is a lot better than leaving it halfway. I do quite well in other areas as well, my GPA is 9.8/10. I often like to spend time talking to others about their experiences developing something or working for an organization since it helps me learn more about others and how I can improve my ways.<br />
<br />
I don’t have any other commitments this summer apart from this, so spending around 6 hrs a day won’t be a problem at all. I often like to take up leadership and responsibility of work that needs to be done as part of college when we work in groups and always finish work on time or earlier if possible.<br />
<br />
I have started developing the Speak activity in JS and have got the basic features such as eye motion, mouth motion, number of eyes, text to speech etc working. This is just a starting prototype kind of thing which I will build up on during my project and make it work as similar to the original Speak activity as possible. Here is a link to the [http://speak-activity-sugarizer.bitballoon.com/ demo].<br />
<br />
I have also fixed quite a few bugs and added some features to Sugar, so I am quite familiar with the development environment used for developing on Sugar and Sugar-Web. I have also tried to make a simple activity on sugar for testing purposes, it's the [http://activities.sugarlabs.org/en-US/sugar/addon/4785 Simon Says game]. I have worked both with python based activities in Sugar and also with Sugar-Web based projects (musicblocks etc) which is what this project needs in order to port python based activities to web-based activities to be used with Sugarizer.<br />
<br />
<br />
'''Projects I have worked on:'''<br />
# [https://trendspace.pythonanywhere.com/ Trendspace] '''- A shopping website made using the web2py framework.<br />
# [https://github.com/erilyth/OpenGL-C- Cannon Game] '''- A 2D cannon shooter game made entirely using OpenGL and C++.<br />
# [https://github.com/erilyth/OpenGL-3D Adventure Game] '''- A 3D survival game made using OpenGL and C++ with models created using Blender.<br />
# [https://github.com/erilyth/DonkeyKong-Pygame Donkey Kong] '''- A 2D version of the Donkey Kong game made using Pygame.<br />
# [https://github.com/erilyth/Tangram-Game Tangram Game] '''- A version of Tangram(Block Puzzle) developed using Cocos2D-JS targeting mobile devices mainly.<br />
# [https://github.com/Achilles-96/File-sharing-client File Transfer Protocol] '''- A simple file sharing client using which we can share files, check validity using hashes and index based searching. It uses the TCP and UDP (handling losses) protocols for transfer.<br />
# [https://github.com/erilyth/First-Person-Shooter-Unity- FPS Shooter] '''- A 3D basic first person shooter game made using Unity in C#.<br />
# [https://github.com/erilyth/Box-Stacking-Game Box Stacking Game] '''- A simple click and drag box stacking game made using Unity in C#.<br />
<br />
<br />
<br />
<br />
<br />
I have also worked on a lot of other smaller projects and also do competitive programming, you can take a look at my [https://github.com/erilyth github profile] and [http://codeforces.com/profile/Erilyth codeforces profile].<br />
<br />
<br />
Here are some screenshots of the games I developed,<br />
* Cannon Game:<br />
[[File:Cannongame-vishal.png|800px]]<br />
<br />
* Adventure Game:<br />
[[File:Adventure1-vishal.png|800px]]<br />
<br />
* Donkey Kong:<br />
[[File:Dokneykong-vishal.png|800px]]<br />
<br />
* Tangram Game:<br />
[[File:Tangram2.jpg|800px]]<br />
<br />
* Box Stacking Game:<br />
[[File:BoxStacking.png|800px]]<br />
<br />
* First Person Shooter:<br />
[[File:FirstPersonShooter2.png|800px]]<br />
<br />
I use [http://erilyth.github.io/ my website] and my blog to share my projects ([https://github.com/erilyth/My-Website https://github.com/erilyth/My-Website]). I have used Node.js along with Angular.js to develop the website.<br />
<br />
<br />
I often try to follow the principles of “'''DIY'''” (Do It Yourself) and have also worked with electronics and made a few simple robots in the past. My profile on [http://www.instructables.com/member/vishalapr/ instructables.com].<br />
<br />
Some of the projects I have made,<br />
# [http://goo.gl/5z48UJ POV Display]<br />
# [http://goo.gl/xEdT4C Wall Avoiding Robot]<br />
<br />
== You and the community ==<br />
<br />
'''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.'''<br />
<br />
<br />
'''My answer:'''<br />
<br />
A lot more students and teachers around the world would get access to &nbsp;some of the best activities on sugar. These activities can then be used on any device which would make them a lot more handy and useful. Some of the most popular apps on Sugar would now be available to use on any Sugarizer device so they can use them wherever they want at their convenience. This would help students learn at their own pace anywhere they want as long as they have a Sugarizer enabled device. Using the Moon activity sitting outside watching the moon during the night and analyzing it, using the Speak, Fototoon activities to learn while travelling etc will allow users to have a much more thorough and immerse experience of using these activities.<br />
<br />
<br />
'''Lionel Laské:'''<br />
<br />
Activities in the Sugarizer Activity Set are 3 of most famous Sugar activities. It's very important to have a full experience of Sugar on any device that these activities must be available into Sugar-Web. Plus these activities was proven during deployment to be very attractive for children using Sugar and at least Speak and Fototoon allow them to express their creativity.<br />
<br />
<br />
'''Walter Bender:'''<br />
<br />
Speak and Fototoons are nice examples of tools that let encourage exploration of narrative. It is central to our pedagogy that we engage learners in constructing and expressing.<br />
<br />
<br />
'''What will you do if you get stuck on your project and your mentor isn't around?'''<br />
<br />
I will try to see if I can figure it out myself, using the internet (Google, Stackoverflow, Quora etc) or use some books. If this doesn’t help then I will try to seek help from the Sugar community on the IRC or send a mail on the developer mailing list. I would also ask my friends here who have great amounts of knowledge on a wide variety of topics and they could help me sort the problem out.<br />
<br />
<br />
'''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?'''<br />
<br />
I have a blog set up accessible from [http://erilyth.github.io/ my website], [http://vishalbatchu.blog.com/ my blog]. I will be updating the status of the project and anything else related to Sugar over there every week. I will use the IRC to get reviews on my work by others and also learn what I need to improve from others. I will document my code properly and use appropriate commit messages (git) so others can take a look at my work easily. If required, I will also create pages on the Sugar Wiki.<br />
<br />
== Miscellaneous ==<br />
<br />
'''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". '''<br />
<br />
[[File:Sugar-vishal.png|800px]]<br />
<br />
<br />
'''Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.'''&nbsp;&nbsp;&nbsp; <br />
* Add a CollabWrapper based Text Editor to Sugar: [https://github.com/samdroid-apps/collabwrapper/pull/1 https://github.com/samdroid-apps/collabwrapper/pull/1] '''Merged'''<br />
* Add export matrix feature to Music Blocks: [https://github.com/walterbender/musicblocks/pull/97 https://github.com/walterbender/musicblocks/pull/97] '''Merged'''<br />
* Collaboration Refactoring in Story: [https://github.com/walterbender/story/pull/4 https://github.com/walterbender/story/pull/4] '''Merged'''<br />
* Save and Load file buttons in Music Blocks: [https://github.com/walterbender/musicblocks/pull/115 https://github.com/walterbender/musicblocks/pull/115] '''Merged'''<br />
* Notification drag to act like a clipboard entry: [https://github.com/sugarlabs/sugar/pull/633/files https://github.com/sugarlabs/sugar/pull/633/files] '''Merged'''<br />
* Add icon hover effects: [https://github.com/llaske/sugarizer/pull/32 https://github.com/llaske/sugarizer/pull/32] '''Merged'''<br />
<br />
<br />
<br />
'''If you plan to work on Sugar-Web projects we want to be sure that you're familiar with web technologies, so:'''<br />
* '''Clone the'''[https://github.com/llaske/Sugarizer ][https://github.com/llaske/Sugarizer Sugarizer repository]<br />
* '''Using instructions'''[https://github.com/llaske/Sugarizer#create-your-own-activity ][https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity'''<br />
* '''Send us a screenshot of your new activity executed in Sugarizer'''<br />
<br />
[[File:Sugarizer-vishal.png|800px]]<br />
<br />
<br />
'''Describe a great learning experience you had as a child.'''<br />
<br />
When I was younger I always used to have a negative feeling towards teachers. I used to make fun of them and felt that they come to teach only because they don’t have anywhere else to go. I guess I got these feelings since I didn’t like it when they yelled at us (of course for our own mistakes, but I didn’t realize that then). One day I was called up to teach something to the entire class, it was a topic that I was fairly familiar with so I went up there and started teaching. This is when everything changed, I felt a huge amount of joy and excitement. I realized that teaching is not a profession that is chosen because there is nothing else to choose but because it is probably one of the best things to do! From that point on I have always respected teachers and have always loved to share my knowledge with others, just like teachers do.<br />
<br />
<br />
'''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?'''<br />
<br />
Nope, everything is just fine!<br />
[[Category:2016 GSoC applications]]</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/SugarizerActivitySet&diff=97110Summer of Code/2016/SugarizerActivitySet2016-03-13T16:55:24Z<p>Erilyth: </p>
<hr />
<div>Sugarizer Activity Set<br />
<br />
== About You ==<br />
<br />
'''What is your name?'''<br />
<br />
My name is Batchu Venkat Vishal, I am a 2nd-year undergrad student from [http://www.iiit.ac.in/ International Institute of Information Technology Hyderabad] (IIITH)<br />
<br />
<br />
'''What is your email address?'''<br />
<br />
[mailto:vishal.batchu@students.iiit.ac.in vishal.batchu@students.iiit.ac.in]<br />
<br />
Alternate, [mailto:vishalvenkat71@gmail.com vishalvenkat71@gmail.com]<br />
<br />
<br />
'''What is your Sugar Labs wiki username?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your IRC nickname on irc.freenode.net?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)'''<br />
<br />
My native language is Telugu, I am fluent in English and speak a bit of Hindi.<br />
<br />
<br />
'''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.)'''<br />
<br />
I'm located in Hyderabad (Telangana), India.<br />
<br />
I'm planning to work 12:00 UTC - 18:00 UTC on Monday, Tuesday, Wednesday, Thursday, Friday and Saturday and 8:00 UTC - 19:00 UTC on Sundays.<br />
<br />
<br />
'''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?'''<br />
<br />
I am new to open source, but I have contributed to some open source organizations which were founded in my college ( [https://felicity.iiit.ac.in/ College Fest Website] ([https://github.com/felicity-iiith/ https://github.com/felicity-iiith/]), [http://osdg.iiit.ac.in/ College OSDG website] ([https://github.com/OSDG-IIITH https://github.com/OSDG-IIITH]) ). Sugar Labs and OLPC have amazed me, I have always wanted to do something which would help others learn especially when I think of all the kids out there who are unable to get a quality education. When I stumbled upon SugarLabs I knew it was the way in which I could use my knowledge and help spread educational tools to millions of others out there. Open source is the best way to get exposure and collaborate with lots of others just like us, and get to know about their views and what others think. It's a means by which I can make a difference in the society.<br />
<br />
== About your project ==<br />
<br />
<br />
<br />
'''What is the name of your project?'''<br />
<br />
Sugarizer Activity Set<br />
<br />
<br />
'''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? What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; 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 (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.'''<br />
<br />
The project is a full rewriting of a few Sugar apps which will be ported to Sugar Web:<br />
# Moon<br />
# Speak<br />
# Fototoon (and more if time permits) <br />
<br />
<br />
<br />
These activities will be ported using the Sugar Web Framework in order to reach a much larger audience. The Sugarizer/Web apps are available to a lot of children since they are supported by any Web Browser or an XO. This would enable every child to have access and use these activities at their convenience. Children should be able to have the same learning capabilities no matter what platform they are using to run the activities which can be achieved with Sugarizer.<br />
<br />
<br />
The main technologies that will be used are HTML5 and Javascript. Understanding Python source code will be required to understand the current versions of the activities so that the activities created on Sugar Web for the Sugarizer should have similar features to the ones right now.<br />
<br />
<br />
'''A few problems I might face during the implementation in javascript:'''<br />
* Storage of data (audio, images) on the Sugar Web platform.<br />
* Compatibility and adaptability with devices of different sizes(phones, tablets etc) and also touch screen capabilities, if they can be used effectively.<br />
<br />
<br />
<br />
<br />
<br />
'''Libraries in consideration and methods of implementation:'''<br />
<br />
Here are some of the libraries I am considering to use for the project to ease the development process. This is not a static list and can change as and when I am implementing the features of the activities.<br />
# [https://github.com/kripken/speak.js/ speak.js] for text to speech generation in javascript for the ‘Speak’ activity. (GNU GENERAL PUBLIC License)<br />
# Google Translate to generate the audio for given text, also to be used with the ‘Speak’ activity. (This requires us to be online while using the activity but the speech synthesized is of a higher quality).<br />
# [https://github.com/desandro/masonry masonry.js] for clean and simple grid layouts for the ‘Fototoon’ activity. (MIT License)<br />
# [https://github.com/hammerjs/hammer.js hammer.js][https://github.com/hammerjs/hammer.js ]for recognizing and using touch gestures and multi-touch gestures (if needed). (MIT License)<br />
# [https://github.com/desandro/draggabilly draggabilly.js] for simple draggable interfaces for the ‘Fototoon’ activity.<br />
<br />
<br />
<br />
<br />
<br />
These are some libraries that I will look into in order to accelerate the development. I will use an Agile development process also including some iteration and incremental implementation. <br />
<br />
I have downloaded the Moon, Speak and Fototoon xo files and have used them thoroughly to analyze and understand what are the features that each of them provides which I will be implementing. I will try my best to keep the look and feel of the activities to be as similar as possible to the current implementations.<br />
<br />
<br />
'''My timeline:'''<br />
<br />
<br />
<br />
{| style="border-spacing:0;"<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Week'''<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Work Scheduled'''<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 0<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
* Setup a basic MVC architecture in javascript which can be used by the activities (If needed).<br />
* Compatibility checks of libraries with different devices.<br />
* Setup sample codes using the libraries which can be used in the activities as and when needed.<br />
* Take a look at how touch screen capabilities can improve the user experience on mobile devices.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 1 - 19 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Basic UI for the face with eyeballs following the cursor.<br />
* Basic text to speech conversion and use a suitable library for the ‘Type something to hear it’ mode.<br />
* Pitch, rate and language features.<br />
* Number of eyes feature.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 2 - 25 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Mouth motion for the face.<br />
* ‘Ask the robot’ mode and add some basic AI to respond to users.<br />
* Add the ‘Voice Chat / Chat ’ mode. (basic)<br />
* Add types of eyes which the user can select.<br />
* Add types of mouths which the user can select.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 3 - 1 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* ‘Set face from photo’ feature.<br />
* Improve the AI which runs on the ‘Ask the robot’ mode.<br />
* Improve ‘Chat’ mode and make it functional.<br />
<br />
<br />
<br />
<br />
<br />
FotoToon Activity:<br />
* Image upload from journal/local machine.<br />
* Basic box globe(chat box) addition feature and movement lines, enable them to be dragged in the image.<br />
* Full-screen mode.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 4 - 8 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Save as image option.<br />
<br />
* Add other types of globes.<br />
* Add text customization features for text within the different globes.<br />
* Rotation of globes.<br />
* Deletion of globes.<br />
* Add background image for activity.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 5 - 15 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Reordering of images.<br />
* Slideshow and slideshow with timing modes to view the pictures.<br />
* Save as pdf and movie options.<br />
<br />
<br />
<br />
<br />
<br />
Moon Activity:<br />
* Basic UI and moon image.<br />
* Grid view overlay for the image.<br />
* Display information regarding the current state of the moon.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 6 - 22 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity:<br />
* Shade parts of the moon depending on the day.<br />
<br />
* Toggle hemisphere views.<br />
* Save as image option to save the current state of the moon.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Midterm Evaluations<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 7 - 29 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to evaluations:<br />
* Depending on the evaluations improve/fix bugs on the activities etc.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 8 - 6 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity testing and reviews:<br />
* Get detailed feedback on the Speak activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 9 - 13 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity testing and reviews:<br />
* Get detailed feedback on the FotoToon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 10 - 20 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity testing and reviews:<br />
* Get detailed feedback on the Moon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 11 - 27 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities testing:<br />
* Ensure the documentation is done properly.<br />
* Do a final test of all the activities.<br />
* Relax a bit as well :)<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 12 - 3 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities review and evaluation from the Sugar community:<br />
* Ask other members who use these activities on Sugar to review this on Sugarizer and ensure they are satisfied with their experience.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 13 - 10 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to reviews:<br />
* If anything needs to be done after the reviews, I will do it.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 14 - 17 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Final Activity checks:<br />
* Ensure everything works properly and I am ready to submit my project to google.<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Final Evaluations - 21 August<br />
<br />
|}<br />
<br />
<br />
'''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.'''<br />
<br />
I have a strong passion for programming and feel content when I code. I never leave work unattended or halfway through since I feel that not starting the work at all is a lot better than leaving it halfway. I do quite well in other areas as well, my GPA is 9.8/10. I often like to spend time talking to others about their experiences developing something or working for an organization since it helps me learn more about others and how I can improve my ways.<br />
<br />
I don’t have any other commitments this summer apart from this, so spending around 6 hrs a day won’t be a problem at all. I often like to take up leadership and responsibility of work that needs to be done as part of college when we work in groups and always finish work on time or earlier if possible.<br />
<br />
I have started developing the Speak activity in JS and have got the basic features such as eye motion, mouth motion, number of eyes, text to speech etc working. This is just a starting prototype kind of thing which I will build up on during my project and make it work as similar to the original Speak activity as possible. Here is a link to the [http://speak-activity-sugarizer.bitballoon.com/ demo].<br />
<br />
I have also fixed quite a few bugs and added some features to Sugar, so I am quite familiar with the development environment used for developing on Sugar and Sugar-Web. I have also tried to make a simple activity on sugar for testing purposes, it's the [http://activities.sugarlabs.org/en-US/sugar/addon/4785 Simon Says game]. I have worked both with python based activities in Sugar and also with Sugar-Web based projects (musicblocks etc) which is what this project needs in order to port python based activities to web-based activities to be used with Sugarizer.<br />
<br />
<br />
'''Projects I have worked on:'''<br />
# [https://trendspace.pythonanywhere.com/ Trendspace] '''- A shopping website made using the web2py framework.<br />
# [https://github.com/erilyth/OpenGL-C- Cannon Game] '''- A 2D cannon shooter game made entirely using OpenGL and C++.<br />
# [https://github.com/erilyth/OpenGL-3D Adventure Game] '''- A 3D survival game made using OpenGL and C++ with models created using Blender.<br />
# [https://github.com/erilyth/DonkeyKong-Pygame Donkey Kong] '''- A 2D version of the Donkey Kong game made using Pygame.<br />
# [https://github.com/erilyth/Tangram-Game Tangram Game] '''- A version of Tangram(Block Puzzle) developed using Cocos2D-JS targeting mobile devices mainly.<br />
# [https://github.com/Achilles-96/File-sharing-client File Transfer Protocol] '''- A simple file sharing client using which we can share files, check validity using hashes and index based searching. It uses the TCP and UDP (handling losses) protocols for transfer.<br />
# [https://github.com/erilyth/First-Person-Shooter-Unity- FPS Shooter] '''- A 3D basic first person shooter game made using Unity in C#.<br />
# [https://github.com/erilyth/Box-Stacking-Game Box Stacking Game] '''- A simple click and drag box stacking game made using Unity in C#.<br />
<br />
<br />
<br />
<br />
<br />
I have also worked on a lot of other smaller projects and also do competitive programming, you can take a look at my [https://github.com/erilyth github profile] and [http://codeforces.com/profile/Erilyth codeforces profile].<br />
<br />
<br />
Here are some screenshots of the games I developed,<br />
* Cannon Game:<br />
[[File:Cannongame-vishal.png|800px]]<br />
<br />
* Adventure Game:<br />
[[File:Adventure1-vishal.png|800px]][[File:Adventure2-vishal.png|800px]]<br />
<br />
* Donkey Kong:<br />
[[File:Dokneykong-vishal.png|800px]]<br />
<br />
* Tangram Game:<br />
[[File:Tangram1.jpg|800px]][[File:Tangram2.jpg|800px]]<br />
<br />
* Box Stacking Game:<br />
[[File:BoxStacking.png|800px]]<br />
<br />
* First Person Shooter:<br />
[[File:FirstPersonShooter1.png|800px]][[File:FirstPersonShooter2.png|800px]]<br />
<br />
I use [http://erilyth.github.io/ my website] and my blog to share my projects ([https://github.com/erilyth/My-Website https://github.com/erilyth/My-Website]). I have used Node.js along with Angular.js to develop the website.<br />
<br />
<br />
I often try to follow the principles of “'''DIY'''” (Do It Yourself) and have also worked with electronics and made a few simple robots in the past. My profile on [http://www.instructables.com/member/vishalapr/ instructables.com].<br />
<br />
Some of the projects I have made,<br />
# [http://goo.gl/5z48UJ POV Display]<br />
# [http://goo.gl/xEdT4C Wall Avoiding Robot]<br />
<br />
== You and the community ==<br />
<br />
'''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.'''<br />
<br />
<br />
'''My answer:'''<br />
<br />
A lot more students and teachers around the world would get access to &nbsp;some of the best activities on sugar. These activities can then be used on any device which would make them a lot more handy and useful. Some of the most popular apps on Sugar would now be available to use on any Sugarizer device so they can use them wherever they want at their convenience. This would help students learn at their own pace anywhere they want as long as they have a Sugarizer enabled device. Using the Moon activity sitting outside watching the moon during the night and analyzing it, using the Speak, Fototoon activities to learn while travelling etc will allow users to have a much more thorough and immerse experience of using these activities.<br />
<br />
<br />
'''Lionel Laské:'''<br />
<br />
Activities in the Sugarizer Activity Set are 3 of most famous Sugar activities. It's very important to have a full experience of Sugar on any device that these activities must be available into Sugar-Web. Plus these activities was proven during deployment to be very attractive for children using Sugar and at least Speak and Fototoon allow them to express their creativity.<br />
<br />
<br />
'''Walter Bender:'''<br />
<br />
Speak and Fototoons are nice examples of tools that let encourage exploration of narrative. It is central to our pedagogy that we engage learners in constructing and expressing.<br />
<br />
<br />
'''What will you do if you get stuck on your project and your mentor isn't around?'''<br />
<br />
I will try to see if I can figure it out myself, using the internet (Google, Stackoverflow, Quora etc) or use some books. If this doesn’t help then I will try to seek help from the Sugar community on the IRC or send a mail on the developer mailing list. I would also ask my friends here who have great amounts of knowledge on a wide variety of topics and they could help me sort the problem out.<br />
<br />
<br />
'''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?'''<br />
<br />
I have a blog set up accessible from [http://erilyth.github.io/ my website], [http://vishalbatchu.blog.com/ my blog]. I will be updating the status of the project and anything else related to Sugar over there every week. I will use the IRC to get reviews on my work by others and also learn what I need to improve from others. I will document my code properly and use appropriate commit messages (git) so others can take a look at my work easily. If required, I will also create pages on the Sugar Wiki.<br />
<br />
== Miscellaneous ==<br />
<br />
'''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". '''<br />
<br />
[[File:Sugar-vishal.png|800px]]<br />
<br />
<br />
'''Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.'''&nbsp;&nbsp;&nbsp; <br />
* Add a CollabWrapper based Text Editor to Sugar: [https://github.com/samdroid-apps/collabwrapper/pull/1 https://github.com/samdroid-apps/collabwrapper/pull/1] '''Merged'''<br />
* Add export matrix feature to Music Blocks: [https://github.com/walterbender/musicblocks/pull/97 https://github.com/walterbender/musicblocks/pull/97] '''Merged'''<br />
* Collaboration Refactoring in Story: [https://github.com/walterbender/story/pull/4 https://github.com/walterbender/story/pull/4] '''Merged'''<br />
* Save and Load file buttons in Music Blocks: [https://github.com/walterbender/musicblocks/pull/115 https://github.com/walterbender/musicblocks/pull/115] '''Merged'''<br />
* Notification drag to act like a clipboard entry: [https://github.com/sugarlabs/sugar/pull/633/files https://github.com/sugarlabs/sugar/pull/633/files] '''Merged'''<br />
* Add icon hover effects: [https://github.com/llaske/sugarizer/pull/32 https://github.com/llaske/sugarizer/pull/32] '''Merged'''<br />
<br />
<br />
<br />
'''If you plan to work on Sugar-Web projects we want to be sure that you're familiar with web technologies, so:'''<br />
* '''Clone the'''[https://github.com/llaske/Sugarizer ][https://github.com/llaske/Sugarizer Sugarizer repository]<br />
* '''Using instructions'''[https://github.com/llaske/Sugarizer#create-your-own-activity ][https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity'''<br />
* '''Send us a screenshot of your new activity executed in Sugarizer'''<br />
<br />
[[File:Sugarizer-vishal.png|800px]]<br />
<br />
<br />
'''Describe a great learning experience you had as a child.'''<br />
<br />
When I was younger I always used to have a negative feeling towards teachers. I used to make fun of them and felt that they come to teach only because they don’t have anywhere else to go. I guess I got these feelings since I didn’t like it when they yelled at us (of course for our own mistakes, but I didn’t realize that then). One day I was called up to teach something to the entire class, it was a topic that I was fairly familiar with so I went up there and started teaching. This is when everything changed, I felt a huge amount of joy and excitement. I realized that teaching is not a profession that is chosen because there is nothing else to choose but because it is probably one of the best things to do! From that point on I have always respected teachers and have always loved to share my knowledge with others, just like teachers do.<br />
<br />
<br />
'''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?'''<br />
<br />
Nope, everything is just fine!<br />
[[Category:2016 GSoC applications]]</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/SugarizerActivitySet&diff=97108Summer of Code/2016/SugarizerActivitySet2016-03-13T10:40:57Z<p>Erilyth: </p>
<hr />
<div>Sugarizer Activity Set<br />
<br />
== About You ==<br />
<br />
'''What is your name?'''<br />
<br />
My name is Batchu Venkat Vishal, I am a 2nd-year undergrad student from [http://www.iiit.ac.in/ International Institute of Information Technology Hyderabad] (IIITH)<br />
<br />
<br />
'''What is your email address?'''<br />
<br />
[mailto:vishal.batchu@students.iiit.ac.in vishal.batchu@students.iiit.ac.in]<br />
<br />
Alternate, [mailto:vishalvenkat71@gmail.com vishalvenkat71@gmail.com]<br />
<br />
<br />
'''What is your Sugar Labs wiki username?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your IRC nickname on irc.freenode.net?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)'''<br />
<br />
My native language is Telugu, I am fluent in English and speak a bit of Hindi.<br />
<br />
<br />
'''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.)'''<br />
<br />
I'm located in Hyderabad (Telangana), India.<br />
<br />
I'm planning to work 12:00 UTC - 18:00 UTC on Monday, Tuesday, Wednesday, Thursday, Friday and Saturday and 8:00 UTC - 19:00 UTC on Sundays.<br />
<br />
<br />
'''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?'''<br />
<br />
I am new to open source, but I have contributed to some open source organizations which were founded in my college ( [https://felicity.iiit.ac.in/ College Fest Website] ([https://github.com/felicity-iiith/ https://github.com/felicity-iiith/]), [http://osdg.iiit.ac.in/ College OSDG website] ([https://github.com/OSDG-IIITH https://github.com/OSDG-IIITH]) ). Sugar Labs and OLPC have amazed me, I have always wanted to do something which would help others learn especially when I think of all the kids out there who are unable to get a quality education. When I stumbled upon SugarLabs I knew it was the way in which I could use my knowledge and help spread educational tools to millions of others out there. Open source is the best way to get exposure and collaborate with lots of others just like us, and get to know about their views and what others think. It's a means by which I can make a difference in the society.<br />
<br />
== About your project ==<br />
<br />
<br />
<br />
'''What is the name of your project?'''<br />
<br />
Sugarizer Activity Set<br />
<br />
<br />
'''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? What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; 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 (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.'''<br />
<br />
The project is a full rewriting of a few Sugar apps which will be ported to Sugar Web:<br />
# Moon<br />
# Speak<br />
# Fototoon (and more if time permits) <br />
<br />
<br />
<br />
These activities will be ported using the Sugar Web Framework in order to reach a much larger audience. The Sugarizer/Web apps are available to a lot of children since they are supported by any Web Browser or an XO. This would enable every child to have access and use these activities at their convenience. Children should be able to have the same learning capabilities no matter what platform they are using to run the activities which can be achieved with Sugarizer.<br />
<br />
<br />
The main technologies that will be used are HTML5 and Javascript. Understanding Python source code will be required to understand the current versions of the activities so that the activities created on Sugar Web for the Sugarizer should have similar features to the ones right now.<br />
<br />
<br />
'''A few problems I might face during the implementation in javascript:'''<br />
* Storage of data (audio, images) on the Sugar Web platform.<br />
* Compatibility and adaptability with devices of different sizes(phones, tablets etc) and also touch screen capabilities, if they can be used effectively.<br />
<br />
<br />
<br />
<br />
<br />
'''Libraries in consideration and methods of implementation:'''<br />
<br />
Here are some of the libraries I am considering to use for the project to ease the development process. This is not a static list and can change as and when I am implementing the features of the activities.<br />
# [https://github.com/kripken/speak.js/ speak.js] for text to speech generation in javascript for the ‘Speak’ activity. (GNU GENERAL PUBLIC License)<br />
# Google Translate to generate the audio for given text, also to be used with the ‘Speak’ activity. (This requires us to be online while using the activity but the speech synthesized is of a higher quality).<br />
# [https://github.com/desandro/masonry masonry.js] for clean and simple grid layouts for the ‘Fototoon’ activity. (MIT License)<br />
# [https://github.com/hammerjs/hammer.js hammer.js][https://github.com/hammerjs/hammer.js ]for recognizing and using touch gestures and multi-touch gestures (if needed). (MIT License)<br />
# [https://github.com/desandro/draggabilly draggabilly.js] for simple draggable interfaces for the ‘Fototoon’ activity.<br />
<br />
<br />
<br />
<br />
<br />
These are some libraries that I will look into in order to accelerate the development. I will use an Agile development process also including some iteration and incremental implementation. <br />
<br />
I have downloaded the Moon, Speak and Fototoon xo files and have used them thoroughly to analyze and understand what are the features that each of them provides which I will be implementing. I will try my best to keep the look and feel of the activities to be as similar as possible to the current implementations.<br />
<br />
<br />
'''My timeline:'''<br />
<br />
<br />
<br />
{| style="border-spacing:0;"<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Week'''<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Work Scheduled'''<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 0<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
* Setup a basic MVC architecture in javascript which can be used by the activities (If needed).<br />
* Compatibility checks of libraries with different devices.<br />
* Setup sample codes using the libraries which can be used in the activities as and when needed.<br />
* Take a look at how touch screen capabilities can improve the user experience on mobile devices.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 1 - 19 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Basic UI for the face with eyeballs following the cursor.<br />
* Basic text to speech conversion and use a suitable library for the ‘Type something to hear it’ mode.<br />
* Pitch, rate and language features.<br />
* Number of eyes feature.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 2 - 25 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Mouth motion for the face.<br />
* ‘Ask the robot’ mode and add some basic AI to respond to users.<br />
* Add the ‘Voice Chat / Chat ’ mode. (basic)<br />
* Add types of eyes which the user can select.<br />
* Add types of mouths which the user can select.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 3 - 1 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* ‘Set face from photo’ feature.<br />
* Improve the AI which runs on the ‘Ask the robot’ mode.<br />
* Improve ‘Chat’ mode and make it functional.<br />
<br />
<br />
<br />
<br />
<br />
FotoToon Activity:<br />
* Image upload from journal/local machine.<br />
* Basic box globe(chat box) addition feature and movement lines, enable them to be dragged in the image.<br />
* Full-screen mode.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 4 - 8 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Save as image option.<br />
<br />
* Add other types of globes.<br />
* Add text customization features for text within the different globes.<br />
* Rotation of globes.<br />
* Deletion of globes.<br />
* Add background image for activity.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 5 - 15 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Reordering of images.<br />
* Slideshow and slideshow with timing modes to view the pictures.<br />
* Save as pdf and movie options.<br />
<br />
<br />
<br />
<br />
<br />
Moon Activity:<br />
* Basic UI and moon image.<br />
* Grid view overlay for the image.<br />
* Display information regarding the current state of the moon.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 6 - 22 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity:<br />
* Shade parts of the moon depending on the day.<br />
<br />
* Toggle hemisphere views.<br />
* Save as image option to save the current state of the moon.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Midterm Evaluations<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 7 - 29 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to evaluations:<br />
* Depending on the evaluations improve/fix bugs on the activities etc.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 8 - 6 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity testing and reviews:<br />
* Get detailed feedback on the Speak activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 9 - 13 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity testing and reviews:<br />
* Get detailed feedback on the FotoToon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 10 - 20 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity testing and reviews:<br />
* Get detailed feedback on the Moon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 11 - 27 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities testing:<br />
* Ensure the documentation is done properly.<br />
* Do a final test of all the activities.<br />
* Relax a bit as well :)<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 12 - 3 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities review and evaluation from the Sugar community:<br />
* Ask other members who use these activities on Sugar to review this on Sugarizer and ensure they are satisfied with their experience.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 13 - 10 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to reviews:<br />
* If anything needs to be done after the reviews, I will do it.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 14 - 17 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Final Activity checks:<br />
* Ensure everything works properly and I am ready to submit my project to google.<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Final Evaluations - 21 August<br />
<br />
|}<br />
<br />
<br />
'''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.'''<br />
<br />
I have a strong passion for programming and feel content when I code. I never leave work unattended or halfway through since I feel that not starting the work at all is a lot better than leaving it halfway. I do quite well in other areas as well, my GPA is 9.8/10. I often like to spend time talking to others about their experiences developing something or working for an organization since it helps me learn more about others and how I can improve my ways.<br />
<br />
<br />
I will need to spend about 5 hours per week for 1.5 months to get started with my research in college, but apart from this I don’t have any other commitments, so spending around 6 hrs a day won’t be a problem at all. I often like to take up leadership and responsibility of work that needs to be done as part of college when we work in groups and always finish work on time or earlier if possible.<br />
<br />
I have started developing the Speak activity in JS and have got the basic features such as eye motion, mouth motion, number of eyes, text to speech etc working. This is just a starting prototype kind of thing which I will build up on during my project and make it work as similar to the original Speak activity as possible. Here is a link to the [http://speak-activity-sugarizer.bitballoon.com/ demo].<br />
<br />
I have also fixed quite a few bugs and added some features to Sugar, so I am quite familiar with the development environment used for developing on Sugar and Sugar-Web. I have also tried to make a simple activity on sugar for testing purposes, it's the [http://activities.sugarlabs.org/en-US/sugar/addon/4785 Simon Says game]. I have worked both with python based activities in Sugar and also with Sugar-Web based projects (musicblocks etc) which is what this project needs in order to port python based activities to web-based activities to be used with Sugarizer.<br />
<br />
<br />
'''Projects I have worked on:'''<br />
# [https://trendspace.pythonanywhere.com/ Trendspace] '''- A shopping website made using the web2py framework.<br />
# [https://github.com/erilyth/OpenGL-C- Cannon Game] '''- A 2D cannon shooter game made entirely using OpenGL and C++.<br />
# [https://github.com/erilyth/OpenGL-3D Adventure Game] '''- A 3D survival game made using OpenGL and C++ with models created using Blender.<br />
# [https://github.com/erilyth/DonkeyKong-Pygame Donkey Kong] '''- A 2D version of the Donkey Kong game made using Pygame.<br />
# [https://github.com/erilyth/Tangram-Game Tangram Game] '''- A version of Tangram(Block Puzzle) developed using Cocos2D-JS targeting mobile devices mainly.<br />
# [https://github.com/Achilles-96/File-sharing-client File Transfer Protocol] '''- A simple file sharing client using which we can share files, check validity using hashes and index based searching. It uses the TCP and UDP (handling losses) protocols for transfer.<br />
# [https://github.com/erilyth/First-Person-Shooter-Unity- FPS Shooter] '''- A 3D basic first person shooter game made using Unity in C#.<br />
# [https://github.com/erilyth/Box-Stacking-Game Box Stacking Game] '''- A simple click and drag box stacking game made using Unity in C#.<br />
<br />
<br />
<br />
<br />
<br />
I have also worked on a lot of other smaller projects and also do competitive programming, you can take a look at my [https://github.com/erilyth github profile] and [http://codeforces.com/profile/Erilyth codeforces profile].<br />
<br />
<br />
Here are some screenshots of the games I developed,<br />
* Cannon Game:<br />
[[File:Cannongame-vishal.png|800px]]<br />
<br />
* Adventure Game:<br />
[[File:Adventure1-vishal.png|800px]][[File:Adventure2-vishal.png|800px]]<br />
<br />
* Donkey Kong:<br />
[[File:Dokneykong-vishal.png|800px]]<br />
<br />
* Tangram Game:<br />
[[File:Tangram1.jpg|800px]][[File:Tangram2.jpg|800px]]<br />
<br />
* Box Stacking Game:<br />
[[File:BoxStacking.png|800px]]<br />
<br />
* First Person Shooter:<br />
[[File:FirstPersonShooter1.png|800px]][[File:FirstPersonShooter2.png|800px]]<br />
<br />
I use [http://erilyth.github.io/ my website] and my blog to share my projects ([https://github.com/erilyth/My-Website https://github.com/erilyth/My-Website]). I have used Node.js along with Angular.js to develop the website.<br />
<br />
<br />
I often try to follow the principles of “'''DIY'''” (Do It Yourself) and have also worked with electronics and made a few simple robots in the past. My profile on [http://www.instructables.com/member/vishalapr/ instructables.com].<br />
<br />
Some of the projects I have made,<br />
# [http://goo.gl/5z48UJ POV Display]<br />
# [http://goo.gl/xEdT4C Wall Avoiding Robot]<br />
<br />
== You and the community ==<br />
<br />
'''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.'''<br />
<br />
<br />
'''My answer:'''<br />
<br />
A lot more students and teachers around the world would get access to &nbsp;some of the best activities on sugar. These activities can then be used on any device which would make them a lot more handy and useful. Some of the most popular apps on Sugar would now be available to use on any Sugarizer device so they can use them wherever they want at their convenience. This would help students learn at their own pace anywhere they want as long as they have a Sugarizer enabled device. Using the Moon activity sitting outside watching the moon during the night and analyzing it, using the Speak, Fototoon activities to learn while travelling etc will allow users to have a much more thorough and immerse experience of using these activities.<br />
<br />
<br />
'''Lionel Laské:'''<br />
<br />
Activities in the Sugarizer Activity Set are 3 of most famous Sugar activities. It's very important to have a full experience of Sugar on any device that these activities must be available into Sugar-Web. Plus these activities was proven during deployment to be very attractive for children using Sugar and at least Speak and Fototoon allow them to express their creativity.<br />
<br />
<br />
'''Walter Bender:'''<br />
<br />
Speak and Fototoons are nice examples of tools that let encourage exploration of narrative. It is central to our pedagogy that we engage learners in constructing and expressing.<br />
<br />
<br />
'''What will you do if you get stuck on your project and your mentor isn't around?'''<br />
<br />
I will try to see if I can figure it out myself, using the internet (Google, Stackoverflow, Quora etc) or use some books. If this doesn’t help then I will try to seek help from the Sugar community on the IRC or send a mail on the developer mailing list. I would also ask my friends here who have great amounts of knowledge on a wide variety of topics and they could help me sort the problem out.<br />
<br />
<br />
'''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?'''<br />
<br />
I have a blog set up accessible from [http://erilyth.github.io/ my website], [http://vishalbatchu.blog.com/ my blog]. I will be updating the status of the project and anything else related to Sugar over there every week. I will use the IRC to get reviews on my work by others and also learn what I need to improve from others. I will document my code properly and use appropriate commit messages (git) so others can take a look at my work easily. If required, I will also create pages on the Sugar Wiki.<br />
<br />
== Miscellaneous ==<br />
<br />
'''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". '''<br />
<br />
[[File:Sugar-vishal.png|800px]]<br />
<br />
<br />
'''Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.'''&nbsp;&nbsp;&nbsp; <br />
* Add a CollabWrapper based Text Editor to Sugar: [https://github.com/samdroid-apps/collabwrapper/pull/1 https://github.com/samdroid-apps/collabwrapper/pull/1] '''Merged'''<br />
* Add export matrix feature to Music Blocks: [https://github.com/walterbender/musicblocks/pull/97 https://github.com/walterbender/musicblocks/pull/97] '''Merged'''<br />
* Collaboration Refactoring in Story: [https://github.com/walterbender/story/pull/4 https://github.com/walterbender/story/pull/4] '''Merged'''<br />
* Save and Load file buttons in Music Blocks: [https://github.com/walterbender/musicblocks/pull/115 https://github.com/walterbender/musicblocks/pull/115] '''Merged'''<br />
* Notification drag to act like a clipboard entry: [https://github.com/sugarlabs/sugar/pull/633/files https://github.com/sugarlabs/sugar/pull/633/files] '''Merged'''<br />
* Add icon hover effects: [https://github.com/llaske/sugarizer/pull/32 https://github.com/llaske/sugarizer/pull/32] '''Merged'''<br />
<br />
<br />
<br />
'''If you plan to work on Sugar-Web projects we want to be sure that you're familiar with web technologies, so:'''<br />
* '''Clone the'''[https://github.com/llaske/Sugarizer ][https://github.com/llaske/Sugarizer Sugarizer repository]<br />
* '''Using instructions'''[https://github.com/llaske/Sugarizer#create-your-own-activity ][https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity'''<br />
* '''Send us a screenshot of your new activity executed in Sugarizer'''<br />
<br />
[[File:Sugarizer-vishal.png|800px]]<br />
<br />
<br />
'''Describe a great learning experience you had as a child.'''<br />
<br />
When I was younger I always used to have a negative feeling towards teachers. I used to make fun of them and felt that they come to teach only because they don’t have anywhere else to go. I guess I got these feelings since I didn’t like it when they yelled at us (of course for our own mistakes, but I didn’t realize that then). One day I was called up to teach something to the entire class, it was a topic that I was fairly familiar with so I went up there and started teaching. This is when everything changed, I felt a huge amount of joy and excitement. I realized that teaching is not a profession that is chosen because there is nothing else to choose but because it is probably one of the best things to do! From that point on I have always respected teachers and have always loved to share my knowledge with others, just like teachers do.<br />
<br />
<br />
'''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?'''<br />
<br />
Nope, everything is just fine!<br />
[[Category:2016 GSoC applications]]</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/SugarizerActivitySet&diff=97107Summer of Code/2016/SugarizerActivitySet2016-03-13T06:52:38Z<p>Erilyth: /* About your project */</p>
<hr />
<div>Sugarizer Activity Set<br />
<br />
== About You ==<br />
<br />
'''What is your name?'''<br />
<br />
My name is Batchu Venkat Vishal, I am a 2nd-year undergrad student from [http://www.iiit.ac.in/ International Institute of Information Technology Hyderabad] (IIITH)<br />
<br />
<br />
'''What is your email address?'''<br />
<br />
[mailto:vishal.batchu@students.iiit.ac.in vishal.batchu@students.iiit.ac.in]<br />
<br />
Alternate, [mailto:vishalvenkat71@gmail.com vishalvenkat71@gmail.com]<br />
<br />
<br />
'''What is your Sugar Labs wiki username?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your IRC nickname on irc.freenode.net?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)'''<br />
<br />
My native language is Telugu, I am fluent in English and speak a bit of Hindi.<br />
<br />
<br />
'''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.)'''<br />
<br />
I'm located in Hyderabad (Telangana), India.<br />
<br />
I'm planning to work 12:00 UTC - 18:00 UTC on Monday, Tuesday, Wednesday, Thursday, Friday and Saturday and 8:00 UTC - 19:00 UTC on Sundays.<br />
<br />
<br />
'''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?'''<br />
<br />
I am new to open source, but I have contributed to some open source organizations which were founded in my college ( [https://felicity.iiit.ac.in/ College Fest Website] ([https://github.com/felicity-iiith/ https://github.com/felicity-iiith/]), [http://osdg.iiit.ac.in/ College OSDG website] ([https://github.com/OSDG-IIITH https://github.com/OSDG-IIITH]) ). Sugar Labs and OLPC have amazed me, I have always wanted to do something which would help others learn especially when I think of all the kids out there who are unable to get a quality education. When I stumbled upon SugarLabs I knew it was the way in which I could use my knowledge and help spread educational tools to millions of others out there. Open source is the best way to get exposure and collaborate with lots of others just like us, and get to know about their views and what others think. It's a means by which I can make a difference in the society.<br />
<br />
== About your project ==<br />
<br />
<br />
<br />
'''What is the name of your project?'''<br />
<br />
Sugarizer Activity Set<br />
<br />
<br />
'''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? What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; 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 (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.'''<br />
<br />
The project is a full rewriting of a few Sugar apps which will be ported to Sugar Web:<br />
# Moon<br />
# Speak<br />
# Fototoon (and more if time permits) <br />
<br />
<br />
<br />
These activities will be ported using the Sugar Web Framework in order to reach a much larger audience. The Sugarizer/Web apps are available to a lot of children since they are supported by any Web Browser or an XO. This would enable every child to have access and use these activities at their convenience. Children should be able to have the same learning capabilities no matter what platform they are using to run the activities which can be achieved with Sugarizer.<br />
<br />
<br />
The main technologies that will be used are HTML5 and Javascript. Understanding Python source code will be required to understand the current versions of the activities so that the activities created on Sugar Web for the Sugarizer should have similar features to the ones right now.<br />
<br />
<br />
'''A few problems I might face during the implementation in javascript:'''<br />
* Storage of data (audio, images) on the Sugar Web platform.<br />
* Compatibility and adaptability with devices of different sizes(phones, tablets etc) and also touch screen capabilities, if they can be used effectively.<br />
<br />
<br />
<br />
<br />
<br />
'''Libraries in consideration and methods of implementation:'''<br />
<br />
Here are some of the libraries I am considering to use for the project to ease the development process. This is not a static list and can change as and when I am implementing the features of the activities.<br />
# [https://github.com/kripken/speak.js/ speak.js] for text to speech generation in javascript for the ‘Speak’ activity. (GNU GENERAL PUBLIC License)<br />
# Google Translate to generate the audio for given text, also to be used with the ‘Speak’ activity. (This requires us to be online while using the activity but the speech synthesized is of a higher quality).<br />
# [https://github.com/desandro/masonry masonry.js] for clean and simple grid layouts for the ‘Fototoon’ activity. (MIT License)<br />
# [https://github.com/hammerjs/hammer.js hammer.js][https://github.com/hammerjs/hammer.js ]for recognizing and using touch gestures and multi-touch gestures (if needed). (MIT License)<br />
# [https://github.com/desandro/draggabilly draggabilly.js] for simple draggable interfaces for the ‘Fototoon’ activity.<br />
<br />
<br />
<br />
<br />
<br />
These are some libraries that I will look into in order to accelerate the development. I will use an Agile development process also including some iteration and incremental implementation. <br />
<br />
I have downloaded the Moon, Speak and Fototoon xo files and have used them thoroughly to analyze and understand what are the features that each of them provides which I will be implementing. I will try my best to keep the look and feel of the activities to be as similar as possible to the current implementations.<br />
<br />
<br />
'''My timeline:'''<br />
<br />
<br />
<br />
{| style="border-spacing:0;"<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Week'''<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Work Scheduled'''<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 0<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
* Setup a basic MVC architecture in javascript which can be used by the activities (If needed).<br />
* Compatibility checks of libraries with different devices.<br />
* Setup sample codes using the libraries which can be used in the activities as and when needed.<br />
* Take a look at how touch screen capabilities can improve the user experience on mobile devices.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 1 - 19 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Basic UI for the face with eyeballs following the cursor.<br />
* Basic text to speech conversion and use a suitable library for the ‘Type something to hear it’ mode.<br />
* Pitch, rate and language features.<br />
* Number of eyes feature.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 2 - 25 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Mouth motion for the face.<br />
* ‘Ask the robot’ mode and add some basic AI to respond to users.<br />
* Add the ‘Voice Chat / Chat ’ mode. (basic)<br />
* Add types of eyes which the user can select.<br />
* Add types of mouths which the user can select.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 3 - 1 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* ‘Set face from photo’ feature.<br />
* Improve the AI which runs on the ‘Ask the robot’ mode.<br />
* Improve ‘Chat’ mode and make it functional.<br />
<br />
<br />
<br />
<br />
<br />
FotoToon Activity:<br />
* Image upload from journal/local machine.<br />
* Basic box globe(chat box) addition feature and movement lines, enable them to be dragged in the image.<br />
* Full-screen mode.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 4 - 8 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Save as image option.<br />
<br />
* Add other types of globes.<br />
* Add text customization features for text within the different globes.<br />
* Rotation of globes.<br />
* Deletion of globes.<br />
* Add background image for activity.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 5 - 15 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Reordering of images.<br />
* Slideshow and slideshow with timing modes to view the pictures.<br />
* Save as pdf and movie options.<br />
<br />
<br />
<br />
<br />
<br />
Moon Activity:<br />
* Basic UI and moon image.<br />
* Grid view overlay for the image.<br />
* Display information regarding the current state of the moon.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 6 - 22 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity:<br />
* Shade parts of the moon depending on the day.<br />
<br />
* Toggle hemisphere views.<br />
* Save as image option to save the current state of the moon.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Midterm Evaluations<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 7 - 29 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to evaluations:<br />
* Depending on the evaluations improve/fix bugs on the activities etc.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 8 - 6 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity testing and reviews:<br />
* Get detailed feedback on the Speak activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 9 - 13 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity testing and reviews:<br />
* Get detailed feedback on the FotoToon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 10 - 20 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity testing and reviews:<br />
* Get detailed feedback on the Moon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 11 - 27 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities testing:<br />
* Ensure the documentation is done properly.<br />
* Do a final test of all the activities.<br />
* Relax a bit as well :)<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 12 - 3 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities review and evaluation from the Sugar community:<br />
* Ask other members who use these activities on Sugar to review this on Sugarizer and ensure they are satisfied with their experience.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 13 - 10 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to reviews:<br />
* If anything needs to be done after the reviews, I will do it.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 14 - 17 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Final Activity checks:<br />
* Ensure everything works properly and I am ready to submit my project to google.<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Final Evaluations - 21 August<br />
<br />
|}<br />
<br />
<br />
'''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.'''<br />
<br />
I have a strong passion for programming and feel content when I code. I never leave work unattended or halfway through since I feel that not starting the work at all is a lot better than leaving it halfway. I do quite well in other areas as well, my GPA is 9.8/10. I often like to spend time talking to others about their experiences developing something or working for an organization since it helps me learn more about others and how I can improve my ways.<br />
<br />
<br />
I will need to spend about 5 hours per week for 1.5 months to get started with my research in college, but apart from this I don’t have any other commitments, so spending around 6 hrs a day won’t be a problem at all. I often like to take up leadership and responsibility of work that needs to be done as part of college when we work in groups and always finish work on time or earlier if possible.<br />
<br />
I have started developing the Speak activity in JS and have got the basic features such as eye motion, mouth motion, number of eyes, text to speech etc working. This is just a starting prototype kind of thing which I will build up on during my project and make it work as similar to the original Speak activity as possible. Here is a link to the [http://speak-activity-sugarizer.bitballoon.com/ demo].<br />
<br />
I have also fixed quite a few bugs and added some features to Sugar, so I am quite familiar with the development environment used for developing on Sugar and Sugar-Web. I have also tried to make a simple activity on sugar for testing purposes, it's the [http://activities.sugarlabs.org/en-US/sugar/addon/4785 Simon Says game]. I have worked both with python based activities in Sugar and also with Sugar-Web based projects (musicblocks etc) which is what this project needs in order to port python based activities to web-based activities to be used with Sugarizer.<br />
<br />
<br />
'''Projects I have worked on:'''<br />
# [https://trendspace.pythonanywhere.com/ Trendspace] '''- A shopping website made using the web2py framework.<br />
# [https://github.com/erilyth/OpenGL-C- Cannon Game] '''- A 2D cannon shooter game made entirely using OpenGL and C++.<br />
# [https://github.com/erilyth/OpenGL-3D Adventure Game] '''- A 3D survival game made using OpenGL and C++ with models created using Blender.<br />
# [https://github.com/erilyth/DonkeyKong-Pygame Donkey Kong] '''- A 2D version of the Donkey Kong game made using Pygame.<br />
# [https://github.com/erilyth/Tangram-Game Tangram Game] '''- A version of Tangram(Block Puzzle) developed using Cocos2D-JS targeting mobile devices mainly.<br />
# [https://github.com/Achilles-96/File-sharing-client File Transfer Protocol] '''- A simple file sharing client using which we can share files, check validity using hashes and index based searching. It uses the TCP and UDP (handling losses) protocols for transfer.<br />
# [https://github.com/erilyth/First-Person-Shooter-Unity- FPS Shooter] '''- A 3D basic first person shooter game made using Unity in C#.<br />
# [https://github.com/erilyth/Box-Stacking-Game Box Stacking Game] '''- A simple click and drag box stacking game made using Unity in C#.<br />
<br />
<br />
<br />
<br />
<br />
I have also worked on a lot of other smaller projects and also do competitive programming, you can take a look at my [https://github.com/erilyth github profile] and [http://codeforces.com/profile/Erilyth codeforces profile].<br />
<br />
<br />
Here are some screenshots of the games I developed,<br />
* Cannon Game:<br />
[[File:Cannongame-vishal.png|800px]]<br />
<br />
* Adventure Game:<br />
[[File:Adventure1-vishal.png|800px]][[File:Adventure2-vishal.png|800px]]<br />
<br />
* Donkey Kong:<br />
[[File:Dokneykong-vishal.png|800px]]<br />
<br />
* Tangram Game:<br />
[[File:Tangram1.jpg|800px]][[File:Tangram2.jpg|800px]]<br />
<br />
* Box Stacking Game:<br />
[[File:BoxStacking.png|800px]]<br />
<br />
* First Person Shooter:<br />
[[File:FirstPersonShooter1.png|800px]][[File:FirstPersonShooter2.png|800px]]<br />
<br />
I use [http://erilyth.github.io/ my website] and my blog to share my projects ([https://github.com/erilyth/My-Website https://github.com/erilyth/My-Website]). I have used Node.js along with Angular.js to develop the website.<br />
<br />
<br />
I often try to follow the principles of “'''DIY'''” (Do It Yourself) and have also worked with electronics and made a few simple robots in the past. My profile on [http://www.instructables.com/member/vishalapr/ instructables.com].<br />
<br />
Some of the projects I have made,<br />
# [http://goo.gl/5z48UJ POV Display]<br />
# [http://goo.gl/xEdT4C Wall Avoiding Robot]<br />
<br />
== You and the community ==<br />
<br />
'''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.'''<br />
<br />
<br />
'''My answer:'''<br />
<br />
A lot more students and teachers around the world would get access to &nbsp;some of the best activities on sugar. These activities can then be used on any device which would make them a lot more handy and useful. Some of the most popular apps on Sugar would now be available to use on any Sugarizer device so they can use them wherever they want at their convenience. This would help students learn at their own pace anywhere they want as long as they have a Sugarizer enabled device. Using the Moon activity sitting outside watching the moon during the night and analyzing it, using the Speak, Fototoon activities to learn while travelling etc will allow users to have a much more thorough and immerse experience of using these activities.<br />
<br />
<br />
'''Lionel Laské:'''<br />
<br />
Activities in the Sugarizer Activity Set are 3 of most famous Sugar activities. It's very important to have a full experience of Sugar on any device that these activities must be available into Sugar-Web. Plus these activities was proven during deployment to be very attractive for children using Sugar and at least Speak and Fototoon allow them to express their creativity.<br />
<br />
<br />
'''Walter Bender:'''<br />
<br />
Speak and Fototoons are nice examples of tools that let encourage exploration of narrative. It is central to our pedagogy that we engage learners in constructing and expressing.<br />
<br />
<br />
'''What will you do if you get stuck on your project and your mentor isn't around?'''<br />
<br />
I will try to see if I can figure it out myself, using the internet (Google, Stackoverflow, Quora etc) or use some books. If this doesn’t help then I will try to seek help from the Sugar community on the IRC or send a mail on the developer mailing list. I would also ask my friends here who have great amounts of knowledge on a wide variety of topics and they could help me sort the problem out.<br />
<br />
<br />
'''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?'''<br />
<br />
I have a blog set up accessible from [http://erilyth.github.io/ my website], [http://vishalbatchu.blog.com/ my blog]. I will be updating the status of the project and anything else related to Sugar over there every week. I will use the IRC to get reviews on my work by others and also learn what I need to improve from others. I will document my code properly and use appropriate commit messages (git) so others can take a look at my work easily. If required, I will also create pages on the Sugar Wiki.<br />
<br />
== Miscellaneous ==<br />
<br />
'''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". '''<br />
<br />
[[File:Sugar-vishal.png|800px]]<br />
<br />
<br />
'''Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.'''&nbsp;&nbsp;&nbsp; <br />
* Add a CollabWrapper based Text Editor to Sugar: [https://github.com/samdroid-apps/collabwrapper/pull/1 https://github.com/samdroid-apps/collabwrapper/pull/1] '''Merged'''<br />
* Add export matrix feature to Music Blocks: [https://github.com/walterbender/musicblocks/pull/97 https://github.com/walterbender/musicblocks/pull/97] '''Merged'''<br />
* Collaboration Refactoring in Story: [https://github.com/walterbender/story/pull/4 https://github.com/walterbender/story/pull/4] '''Merged'''<br />
* Save and Load file buttons in Music Blocks: [https://github.com/walterbender/musicblocks/pull/115 https://github.com/walterbender/musicblocks/pull/115] '''Merged'''<br />
* Notification drag to act like a clipboard entry: [https://github.com/sugarlabs/sugar/pull/633/files https://github.com/sugarlabs/sugar/pull/633/files] '''Merged'''<br />
* Add icon hover effects: [https://github.com/llaske/sugarizer/pull/32 https://github.com/llaske/sugarizer/pull/32] '''Open'''<br />
<br />
<br />
<br />
'''If you plan to work on Sugar-Web projects we want to be sure that you're familiar with web technologies, so:'''<br />
* '''Clone the'''[https://github.com/llaske/Sugarizer ][https://github.com/llaske/Sugarizer Sugarizer repository]<br />
* '''Using instructions'''[https://github.com/llaske/Sugarizer#create-your-own-activity ][https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity'''<br />
* '''Send us a screenshot of your new activity executed in Sugarizer'''<br />
<br />
[[File:Sugarizer-vishal.png|800px]]<br />
<br />
<br />
'''Describe a great learning experience you had as a child.'''<br />
<br />
When I was younger I always used to have a negative feeling towards teachers. I used to make fun of them and felt that they come to teach only because they don’t have anywhere else to go. I guess I got these feelings since I didn’t like it when they yelled at us (of course for our own mistakes, but I didn’t realize that then). One day I was called up to teach something to the entire class, it was a topic that I was fairly familiar with so I went up there and started teaching. This is when everything changed, I felt a huge amount of joy and excitement. I realized that teaching is not a profession that is chosen because there is nothing else to choose but because it is probably one of the best things to do! From that point on I have always respected teachers and have always loved to share my knowledge with others, just like teachers do.<br />
<br />
<br />
'''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?'''<br />
<br />
Nope, everything is just fine!<br />
[[Category:2016 GSoC applications]]</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/SugarizerActivitySet&diff=97105Summer of Code/2016/SugarizerActivitySet2016-03-12T12:04:46Z<p>Erilyth: </p>
<hr />
<div>Sugarizer Activity Set<br />
<br />
== About You ==<br />
<br />
'''What is your name?'''<br />
<br />
My name is Batchu Venkat Vishal, I am a 2nd-year undergrad student from [http://www.iiit.ac.in/ International Institute of Information Technology Hyderabad] (IIITH)<br />
<br />
<br />
'''What is your email address?'''<br />
<br />
[mailto:vishal.batchu@students.iiit.ac.in vishal.batchu@students.iiit.ac.in]<br />
<br />
Alternate, [mailto:vishalvenkat71@gmail.com vishalvenkat71@gmail.com]<br />
<br />
<br />
'''What is your Sugar Labs wiki username?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your IRC nickname on irc.freenode.net?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)'''<br />
<br />
My native language is Telugu, I am fluent in English and speak a bit of Hindi.<br />
<br />
<br />
'''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.)'''<br />
<br />
I'm located in Hyderabad (Telangana), India.<br />
<br />
I'm planning to work 12:00 UTC - 18:00 UTC on Monday, Tuesday, Wednesday, Thursday, Friday and Saturday and 8:00 UTC - 19:00 UTC on Sundays.<br />
<br />
<br />
'''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?'''<br />
<br />
I am new to open source, but I have contributed to some open source organizations which were founded in my college ( [https://felicity.iiit.ac.in/ College Fest Website] ([https://github.com/felicity-iiith/ https://github.com/felicity-iiith/]), [http://osdg.iiit.ac.in/ College OSDG website] ([https://github.com/OSDG-IIITH https://github.com/OSDG-IIITH]) ). Sugar Labs and OLPC have amazed me, I have always wanted to do something which would help others learn especially when I think of all the kids out there who are unable to get a quality education. When I stumbled upon SugarLabs I knew it was the way in which I could use my knowledge and help spread educational tools to millions of others out there. Open source is the best way to get exposure and collaborate with lots of others just like us, and get to know about their views and what others think. It's a means by which I can make a difference in the society.<br />
<br />
== About your project ==<br />
<br />
<br />
<br />
'''What is the name of your project?'''<br />
<br />
Sugarizer Activity Set<br />
<br />
<br />
'''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? What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; 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 (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.'''<br />
<br />
The project is a full rewriting of a few Sugar apps which will be ported to Sugar Web:<br />
# Moon<br />
# Speak<br />
# Fototoon (and more if time permits) <br />
<br />
<br />
<br />
These activities will be ported using the Sugar Web Framework in order to reach a much larger audience. The Sugarizer/Web apps are available to a lot of children since they are supported by any Web Browser or an XO. This would enable every child to have access and use these activities at their convenience. Children should be able to have the same learning capabilities no matter what platform they are using to run the activities which can be achieved with Sugarizer.<br />
<br />
<br />
The main technologies that will be used are HTML5 and Javascript. Understanding Python source code will be required to understand the current versions of the activities so that the activities created on Sugar Web for the Sugarizer should have similar features to the ones right now.<br />
<br />
<br />
'''A few problems I might face during the implementation in javascript:'''<br />
* Storage of data (audio, images) on the Sugar Web platform.<br />
* Compatibility and adaptability with devices of different sizes(phones, tablets etc) and also touch screen capabilities, if they can be used effectively.<br />
<br />
<br />
<br />
<br />
<br />
'''Libraries in consideration and methods of implementation:'''<br />
<br />
Here are some of the libraries I am considering to use for the project to ease the development process. This is not a static list and can change as and when I am implementing the features of the activities.<br />
# [https://github.com/kripken/speak.js/ speak.js] for text to speech generation in javascript for the ‘Speak’ activity. (GNU GENERAL PUBLIC License)<br />
# Google Translate to generate the audio for given text, also to be used with the ‘Speak’ activity. (This requires us to be online while using the activity but the speech synthesized is of a higher quality).<br />
# [https://github.com/desandro/masonry masonry.js] for clean and simple grid layouts for the ‘Fototoon’ activity. (MIT License)<br />
# [https://github.com/hammerjs/hammer.js hammer.js][https://github.com/hammerjs/hammer.js ]for recognizing and using touch gestures and multi-touch gestures (if needed). (MIT License)<br />
# [https://github.com/desandro/draggabilly draggabilly.js] for simple draggable interfaces for the ‘Fototoon’ activity.<br />
<br />
<br />
<br />
<br />
<br />
These are some libraries that I will look into in order to accelerate the development. I will use an Agile development process also including some iteration and incremental implementation. <br />
<br />
I have downloaded the Moon, Speak and Fototoon xo files and have used them thoroughly to analyze and understand what are the features that each of them provides which I will be implementing. I will try my best to keep the look and feel of the activities to be as similar as possible to the current implementations.<br />
<br />
<br />
'''My timeline:'''<br />
<br />
<br />
<br />
{| style="border-spacing:0;"<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Week'''<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Work Scheduled'''<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 0<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
* Setup a basic MVC architecture in javascript which can be used by the activities (If needed).<br />
* Compatibility checks of libraries with different devices.<br />
* Setup sample codes using the libraries which can be used in the activities as and when needed.<br />
* Take a look at how touch screen capabilities can improve the user experience on mobile devices.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 1 - 19 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Basic UI for the face with eyeballs following the cursor.<br />
* Basic text to speech conversion and use a suitable library for the ‘Type something to hear it’ mode.<br />
* Pitch, rate and language features.<br />
* Number of eyes feature.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 2 - 25 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Mouth motion for the face.<br />
* ‘Ask the robot’ mode and add some basic AI to respond to users.<br />
* Add the ‘Voice Chat / Chat ’ mode. (basic)<br />
* Add types of eyes which the user can select.<br />
* Add types of mouths which the user can select.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 3 - 1 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* ‘Set face from photo’ feature.<br />
* Improve the AI which runs on the ‘Ask the robot’ mode.<br />
* Improve ‘Chat’ mode and make it functional.<br />
<br />
<br />
<br />
<br />
<br />
FotoToon Activity:<br />
* Image upload from journal/local machine.<br />
* Basic box globe(chat box) addition feature and movement lines, enable them to be dragged in the image.<br />
* Full-screen mode.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 4 - 8 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Save as image option.<br />
<br />
* Add other types of globes.<br />
* Add text customization features for text within the different globes.<br />
* Rotation of globes.<br />
* Deletion of globes.<br />
* Add background image for activity.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 5 - 15 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Reordering of images.<br />
* Slideshow and slideshow with timing modes to view the pictures.<br />
* Save as pdf and movie options.<br />
<br />
<br />
<br />
<br />
<br />
Moon Activity:<br />
* Basic UI and moon image.<br />
* Grid view overlay for the image.<br />
* Display information regarding the current state of the moon.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 6 - 22 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity:<br />
* Shade parts of the moon depending on the day.<br />
<br />
* Toggle hemisphere views.<br />
* Save as image option to save the current state of the moon.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Midterm Evaluations<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 7 - 29 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to evaluations:<br />
* Depending on the evaluations improve/fix bugs on the activities etc.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 8 - 6 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity testing and reviews:<br />
* Get detailed feedback on the Speak activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 9 - 13 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity testing and reviews:<br />
* Get detailed feedback on the FotoToon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 10 - 20 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity testing and reviews:<br />
* Get detailed feedback on the Moon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 11 - 27 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities testing:<br />
* Ensure the documentation is done properly.<br />
* Do a final test of all the activities.<br />
* Relax a bit as well :)<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 12 - 3 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities review and evaluation from the Sugar community:<br />
* Ask other members who use these activities on Sugar to review this on Sugarizer and ensure they are satisfied with their experience.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 13 - 10 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to reviews:<br />
* If anything needs to be done after the reviews, I will do it.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 14 - 17 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Final Activity checks:<br />
* Ensure everything works properly and I am ready to submit my project to google.<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Final Evaluations - 21 August<br />
<br />
|}<br />
<br />
<br />
'''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.'''<br />
<br />
I have a strong passion for programming and feel content when I code. I never leave work unattended or halfway through since I feel that not starting the work at all is a lot better than leaving it halfway. I do quite well in other areas as well, my GPA is 9.8/10. I often like to spend time talking to others about their experiences developing something or working for an organization since it helps me learn more about others and how I can improve my ways.<br />
<br />
<br />
I will need to spend about 5 hours per week for 1.5 months to get started with my research in college, but apart from this I don’t have any other commitments, so spending around 6 hrs a day won’t be a problem at all. I often like to take up leadership and responsibility of work that needs to be done as part of college when we work in groups and always finish work on time or earlier if possible.<br />
<br />
<br />
I have also fixed quite a few bugs and added some features to Sugar, so I am quite familiar with the development environment used for developing on Sugar and Sugar-Web. I have also tried to make a simple activity on sugar for testing purposes, it's the [http://activities.sugarlabs.org/en-US/sugar/addon/4785 Simon Says game]. I have worked both with python based activities in Sugar and also with Sugar-Web based projects (musicblocks etc) which is what this project needs in order to port python based activities to web-based activities to be used with Sugarizer.<br />
<br />
<br />
'''Projects I have worked on:'''<br />
# [https://trendspace.pythonanywhere.com/ Trendspace] '''- A shopping website made using the web2py framework.<br />
# [https://github.com/erilyth/OpenGL-C- Cannon Game] '''- A 2D cannon shooter game made entirely using OpenGL and C++.<br />
# [https://github.com/erilyth/OpenGL-3D Adventure Game] '''- A 3D survival game made using OpenGL and C++ with models created using Blender.<br />
# [https://github.com/erilyth/DonkeyKong-Pygame Donkey Kong] '''- A 2D version of the Donkey Kong game made using Pygame.<br />
# [https://github.com/erilyth/Tangram-Game Tangram Game] '''- A version of Tangram(Block Puzzle) developed using Cocos2D-JS targeting mobile devices mainly.<br />
# [https://github.com/Achilles-96/File-sharing-client File Transfer Protocol] '''- A simple file sharing client using which we can share files, check validity using hashes and index based searching. It uses the TCP and UDP (handling losses) protocols for transfer.<br />
# [https://github.com/erilyth/First-Person-Shooter-Unity- FPS Shooter] '''- A 3D basic first person shooter game made using Unity in C#.<br />
# [https://github.com/erilyth/Box-Stacking-Game Box Stacking Game] '''- A simple click and drag box stacking game made using Unity in C#.<br />
<br />
<br />
<br />
<br />
<br />
I have also worked on a lot of other smaller projects and also do competitive programming, you can take a look at my [https://github.com/erilyth github profile] and [http://codeforces.com/profile/Erilyth codeforces profile].<br />
<br />
<br />
Here are some screenshots of the games I developed,<br />
* Cannon Game:<br />
[[File:Cannongame-vishal.png|800px]]<br />
<br />
* Adventure Game:<br />
[[File:Adventure1-vishal.png|800px]][[File:Adventure2-vishal.png|800px]]<br />
<br />
* Donkey Kong:<br />
[[File:Dokneykong-vishal.png|800px]]<br />
<br />
* Tangram Game:<br />
[[File:Tangram1.jpg|800px]][[File:Tangram2.jpg|800px]]<br />
<br />
* Box Stacking Game:<br />
[[File:BoxStacking.png|800px]]<br />
<br />
* First Person Shooter:<br />
[[File:FirstPersonShooter1.png|800px]][[File:FirstPersonShooter2.png|800px]]<br />
<br />
I use [http://erilyth.github.io/ my website] and my blog to share my projects ([https://github.com/erilyth/My-Website https://github.com/erilyth/My-Website]). I have used Node.js along with Angular.js to develop the website.<br />
<br />
<br />
I often try to follow the principles of “'''DIY'''” (Do It Yourself) and have also worked with electronics and made a few simple robots in the past. My profile on [http://www.instructables.com/member/vishalapr/ instructables.com].<br />
<br />
Some of the projects I have made,<br />
# [http://goo.gl/5z48UJ POV Display]<br />
# [http://goo.gl/xEdT4C Wall Avoiding Robot]<br />
<br />
== You and the community ==<br />
<br />
'''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.'''<br />
<br />
<br />
'''My answer:'''<br />
<br />
A lot more students and teachers around the world would get access to &nbsp;some of the best activities on sugar. These activities can then be used on any device which would make them a lot more handy and useful. Some of the most popular apps on Sugar would now be available to use on any Sugarizer device so they can use them wherever they want at their convenience. This would help students learn at their own pace anywhere they want as long as they have a Sugarizer enabled device. Using the Moon activity sitting outside watching the moon during the night and analyzing it, using the Speak, Fototoon activities to learn while travelling etc will allow users to have a much more thorough and immerse experience of using these activities.<br />
<br />
<br />
'''Lionel Laské:'''<br />
<br />
Activities in the Sugarizer Activity Set are 3 of most famous Sugar activities. It's very important to have a full experience of Sugar on any device that these activities must be available into Sugar-Web. Plus these activities was proven during deployment to be very attractive for children using Sugar and at least Speak and Fototoon allow them to express their creativity.<br />
<br />
<br />
'''Walter Bender:'''<br />
<br />
Speak and Fototoons are nice examples of tools that let encourage exploration of narrative. It is central to our pedagogy that we engage learners in constructing and expressing.<br />
<br />
<br />
'''What will you do if you get stuck on your project and your mentor isn't around?'''<br />
<br />
I will try to see if I can figure it out myself, using the internet (Google, Stackoverflow, Quora etc) or use some books. If this doesn’t help then I will try to seek help from the Sugar community on the IRC or send a mail on the developer mailing list. I would also ask my friends here who have great amounts of knowledge on a wide variety of topics and they could help me sort the problem out.<br />
<br />
<br />
'''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?'''<br />
<br />
I have a blog set up accessible from [http://erilyth.github.io/ my website], [http://vishalbatchu.blog.com/ my blog]. I will be updating the status of the project and anything else related to Sugar over there every week. I will use the IRC to get reviews on my work by others and also learn what I need to improve from others. I will document my code properly and use appropriate commit messages (git) so others can take a look at my work easily. If required, I will also create pages on the Sugar Wiki.<br />
<br />
== Miscellaneous ==<br />
<br />
'''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". '''<br />
<br />
[[File:Sugar-vishal.png|800px]]<br />
<br />
<br />
'''Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.'''&nbsp;&nbsp;&nbsp; <br />
* Add a CollabWrapper based Text Editor to Sugar: [https://github.com/samdroid-apps/collabwrapper/pull/1 https://github.com/samdroid-apps/collabwrapper/pull/1] '''Merged'''<br />
* Add export matrix feature to Music Blocks: [https://github.com/walterbender/musicblocks/pull/97 https://github.com/walterbender/musicblocks/pull/97] '''Merged'''<br />
* Collaboration Refactoring in Story: [https://github.com/walterbender/story/pull/4 https://github.com/walterbender/story/pull/4] '''Merged'''<br />
* Save and Load file buttons in Music Blocks: [https://github.com/walterbender/musicblocks/pull/115 https://github.com/walterbender/musicblocks/pull/115] '''Merged'''<br />
* Notification drag to act like a clipboard entry: [https://github.com/sugarlabs/sugar/pull/633/files https://github.com/sugarlabs/sugar/pull/633/files] '''Merged'''<br />
* Add icon hover effects: [https://github.com/llaske/sugarizer/pull/32 https://github.com/llaske/sugarizer/pull/32] '''Open'''<br />
<br />
<br />
<br />
'''If you plan to work on Sugar-Web projects we want to be sure that you're familiar with web technologies, so:'''<br />
* '''Clone the'''[https://github.com/llaske/Sugarizer ][https://github.com/llaske/Sugarizer Sugarizer repository]<br />
* '''Using instructions'''[https://github.com/llaske/Sugarizer#create-your-own-activity ][https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity'''<br />
* '''Send us a screenshot of your new activity executed in Sugarizer'''<br />
<br />
[[File:Sugarizer-vishal.png|800px]]<br />
<br />
<br />
'''Describe a great learning experience you had as a child.'''<br />
<br />
When I was younger I always used to have a negative feeling towards teachers. I used to make fun of them and felt that they come to teach only because they don’t have anywhere else to go. I guess I got these feelings since I didn’t like it when they yelled at us (of course for our own mistakes, but I didn’t realize that then). One day I was called up to teach something to the entire class, it was a topic that I was fairly familiar with so I went up there and started teaching. This is when everything changed, I felt a huge amount of joy and excitement. I realized that teaching is not a profession that is chosen because there is nothing else to choose but because it is probably one of the best things to do! From that point on I have always respected teachers and have always loved to share my knowledge with others, just like teachers do.<br />
<br />
<br />
'''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?'''<br />
<br />
Nope, everything is just fine!<br />
[[Category:2016 GSoC applications]]</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/SugarizerActivitySet&diff=97104Summer of Code/2016/SugarizerActivitySet2016-03-12T12:01:43Z<p>Erilyth: </p>
<hr />
<div>Sugarizer Activity Set<br />
<br />
== About You ==<br />
<br />
'''What is your name?'''<br />
<br />
My name is Batchu Venkat Vishal, I am a 2nd-year undergrad student from [http://www.iiit.ac.in/ International Institute of Information Technology Hyderabad] (IIITH)<br />
<br />
<br />
'''What is your email address?'''<br />
<br />
[mailto:vishal.batchu@students.iiit.ac.in vishal.batchu@students.iiit.ac.in]<br />
<br />
Alternate, [mailto:vishalvenkat71@gmail.com vishalvenkat71@gmail.com]<br />
<br />
<br />
'''What is your Sugar Labs wiki username?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your IRC nickname on irc.freenode.net?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)'''<br />
<br />
My native language is Telugu, I am fluent in English and speak a bit of Hindi.<br />
<br />
<br />
'''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.)'''<br />
<br />
I'm located in Hyderabad (Telangana), India.<br />
<br />
I'm planning to work 12:00 UTC - 18:00 UTC on Monday, Tuesday, Wednesday, Thursday, Friday and Saturday and 8:00 UTC - 19:00 UTC on Sundays.<br />
<br />
<br />
'''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?'''<br />
<br />
I am new to open source, but I have contributed to some open source organizations which were founded in my college ( [https://felicity.iiit.ac.in/ College Fest Website] ([https://github.com/felicity-iiith/ https://github.com/felicity-iiith/]), [http://osdg.iiit.ac.in/ College OSDG website] ([https://github.com/OSDG-IIITH https://github.com/OSDG-IIITH]) ). Sugar Labs and OLPC have amazed me, I have always wanted to do something which would help others learn especially when I think of all the kids out there who are unable to get a quality education. When I stumbled upon SugarLabs I knew it was the way in which I could use my knowledge and help spread educational tools to millions of others out there. Open source is the best way to get exposure and collaborate with lots of others just like us, and get to know about their views and what others think. It's a means by which I can make a difference in the society.<br />
<br />
== About your project ==<br />
<br />
<br />
<br />
'''What is the name of your project?'''<br />
<br />
Sugarizer Activity Set<br />
<br />
<br />
'''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? What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; 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 (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.'''<br />
<br />
The project is a full rewriting of a few Sugar apps which will be ported to Sugar Web:<br />
# Moon<br />
# Speak<br />
# Fototoon (and more if time permits) <br />
<br />
<br />
<br />
These activities will be ported using the Sugar Web Framework in order to reach a much larger audience. The Sugarizer/Web apps are available to a lot of children since they are supported by any Web Browser or an XO. This would enable every child to have access and use these activities at their convenience. Children should be able to have the same learning capabilities no matter what platform they are using to run the activities which can be achieved with Sugarizer.<br />
<br />
<br />
The main technologies that will be used are HTML5 and Javascript. Understanding Python source code will be required to understand the current versions of the activities so that the activities created on Sugar Web for the Sugarizer should have similar features to the ones right now.<br />
<br />
<br />
'''A few problems I might face during the implementation in javascript:'''<br />
* Storage of data (audio, images) on the Sugar Web platform.<br />
* Compatibility and adaptability with devices of different sizes(phones, tablets etc) and also touch screen capabilities, if they can be used effectively.<br />
<br />
<br />
<br />
<br />
<br />
'''Libraries in consideration and methods of implementation:'''<br />
<br />
Here are some of the libraries I am considering to use for the project to ease the development process. This is not a static list and can change as and when I am implementing the features of the activities.<br />
# [https://github.com/kripken/speak.js/ speak.js] for text to speech generation in javascript for the ‘Speak’ activity. (GNU GENERAL PUBLIC License)<br />
# Google Translate to generate the audio for given text, also to be used with the ‘Speak’ activity. (This requires us to be online while using the activity but the speech synthesized is of a higher quality).<br />
# [https://github.com/desandro/masonry masonry.js] for clean and simple grid layouts for the ‘Fototoon’ activity. (MIT License)<br />
# [https://github.com/hammerjs/hammer.js hammer.js][https://github.com/hammerjs/hammer.js ]for recognizing and using touch gestures and multi-touch gestures (if needed). (MIT License)<br />
# [https://github.com/desandro/draggabilly draggabilly.js] for simple draggable interfaces for the ‘Fototoon’ activity.<br />
<br />
<br />
<br />
<br />
<br />
These are some libraries that I will look into in order to accelerate the development. I will use an Agile development process also including some iteration and incremental implementation. <br />
<br />
I have downloaded the Moon, Speak and Fototoon xo files and have used them thoroughly to analyze and understand what are the features that each of them provides which I will be implementing. I will try my best to keep the look and feel of the activities to be as similar as possible to the current implementations.<br />
<br />
<br />
'''My timeline:'''<br />
<br />
<br />
<br />
{| style="border-spacing:0;"<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Week'''<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Work Scheduled'''<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 0<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
* Setup a basic MVC architecture in javascript which can be used by the activities (If needed).<br />
* Compatibility checks of libraries with different devices.<br />
* Setup sample codes using the libraries which can be used in the activities as and when needed.<br />
* Take a look at how touch screen capabilities can improve the user experience on mobile devices.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 1 - 19 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Basic UI for the face with eyeballs following the cursor.<br />
* Basic text to speech conversion and use a suitable library for the ‘Type something to hear it’ mode.<br />
* Pitch, rate and language features.<br />
* Number of eyes feature.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 2 - 25 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Mouth motion for the face.<br />
* ‘Ask the robot’ mode and add some basic AI to respond to users.<br />
* Add the ‘Voice Chat / Chat ’ mode. (basic)<br />
* Add types of eyes which the user can select.<br />
* Add types of mouths which the user can select.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 3 - 1 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* ‘Set face from photo’ feature.<br />
* Improve the AI which runs on the ‘Ask the robot’ mode.<br />
* Improve ‘Chat’ mode and make it functional.<br />
<br />
<br />
<br />
<br />
<br />
FotoToon Activity:<br />
* Image upload from journal/local machine.<br />
* Basic box globe(chat box) addition feature and movement lines, enable them to be dragged in the image.<br />
* Full-screen mode.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 4 - 8 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Save as image option.<br />
<br />
* Add other types of globes.<br />
* Add text customization features for text within the different globes.<br />
* Rotation of globes.<br />
* Deletion of globes.<br />
* Add background image for activity.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 5 - 15 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Reordering of images.<br />
* Slideshow and slideshow with timing modes to view the pictures.<br />
* Save as pdf and movie options.<br />
<br />
<br />
<br />
<br />
<br />
Moon Activity:<br />
* Basic UI and moon image.<br />
* Grid view overlay for the image.<br />
* Display information regarding the current state of the moon.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 6 - 22 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity:<br />
* Shade parts of the moon depending on the day.<br />
<br />
* Toggle hemisphere views.<br />
* Save as image option to save the current state of the moon.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Midterm Evaluations<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 7 - 29 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to evaluations:<br />
* Depending on the evaluations improve/fix bugs on the activities etc.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 8 - 6 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity testing and reviews:<br />
* Get detailed feedback on the Speak activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 9 - 13 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity testing and reviews:<br />
* Get detailed feedback on the FotoToon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 10 - 20 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity testing and reviews:<br />
* Get detailed feedback on the Moon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 11 - 27 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities testing:<br />
* Ensure the documentation is done properly.<br />
* Do a final test of all the activities.<br />
* Relax a bit as well :)<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 12 - 3 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities review and evaluation from the Sugar community:<br />
* Ask other members who use these activities on Sugar to review this on Sugarizer and ensure they are satisfied with their experience.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 13 - 10 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to reviews:<br />
* If anything needs to be done after the reviews, I will do it.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 14 - 17 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Final Activity checks:<br />
* Ensure everything works properly and I am ready to submit my project to google.<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Final Evaluations - 21 August<br />
<br />
|}<br />
<br />
<br />
'''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.'''<br />
<br />
I have a strong passion for programming and feel content when I code. I never leave work unattended or halfway through since I feel that not starting the work at all is a lot better than leaving it halfway. I do quite well in other areas as well, my GPA is 9.8/10. I often like to spend time talking to others about their experiences developing something or working for an organization since it helps me learn more about others and how I can improve my ways.<br />
<br />
<br />
I will need to spend about 5 hours per week for 1.5 months to get started with my research in college, but apart from this I don’t have any other commitments, so spending around 6 hrs a day won’t be a problem at all. I often like to take up leadership and responsibility of work that needs to be done as part of college when we work in groups and always finish work on time or earlier if possible.<br />
<br />
<br />
I have also fixed quite a few bugs and added some features to Sugar, so I am quite familiar with the development environment used for developing on Sugar and Sugar-Web. I have also tried to make a simple activity on sugar for testing purposes, it's the [http://activities.sugarlabs.org/en-US/sugar/addon/4785 Simon Says game]. I have worked both with python based activities in Sugar and also with Sugar-Web based projects (musicblocks etc) which is what this project needs in order to port python based activities to web-based activities to be used with Sugarizer.<br />
<br />
<br />
'''Projects I have worked on:'''<br />
# [https://trendspace.pythonanywhere.com/ Trendspace] '''- A shopping website made using the web2py framework.<br />
# [https://github.com/erilyth/OpenGL-C- Cannon Game] '''- A 2D cannon shooter game made entirely using OpenGL and C++.<br />
# [https://github.com/erilyth/OpenGL-3D Adventure Game] '''- A 3D survival game made using OpenGL and C++ with models created using Blender.<br />
# [https://github.com/erilyth/DonkeyKong-Pygame Donkey Kong] '''- A 2D version of the Donkey Kong game made using Pygame.<br />
# [https://github.com/erilyth/Tangram-Game Tangram Game] '''- A version of Tangram(Block Puzzle) developed using Cocos2D-JS targeting mobile devices mainly.<br />
# [https://github.com/Achilles-96/File-sharing-client File Transfer Protocol] '''- A simple file sharing client using which we can share files, check validity using hashes and index based searching. It uses the TCP and UDP (handling losses) protocols for transfer.<br />
# [https://github.com/erilyth/First-Person-Shooter-Unity-] '''FPS Shooter '''- A 3D basic first person shooter game made using Unity in C#.<br />
# [https://github.com/erilyth/Box-Stacking-Game] '''Box Stacking Game '''- A simple click and drag box stacking game made using Unity in C#.<br />
<br />
<br />
<br />
<br />
<br />
I have also worked on a lot of other smaller projects and also do competitive programming, you can take a look at my [https://github.com/erilyth github profile] and [http://codeforces.com/profile/Erilyth codeforces profile].<br />
<br />
<br />
Here are some screenshots of the games I developed,<br />
* Cannon Game:<br />
[[File:Cannongame-vishal.png|800px]]<br />
<br />
* Adventure Game:<br />
[[File:Adventure1-vishal.png|800px]][[File:Adventure2-vishal.png|800px]]<br />
<br />
* Donkey Kong:<br />
[[File:Dokneykong-vishal.png|800px]]<br />
<br />
* Tangram Game:<br />
[[File:Tangram1.jpg|800px]][[File:Tangram2.jpg|800px]]<br />
<br />
* Box Stacking Game:<br />
[[File:BoxStacking.png|800px]]<br />
<br />
* First Person Shooter:<br />
[[File:FirstPersonShooter1.png|800px]][[File:FirstPersonShooter2.png|800px]]<br />
<br />
I use [http://erilyth.github.io/ my website] and my blog to share my projects ([https://github.com/erilyth/My-Website https://github.com/erilyth/My-Website]). I have used Node.js along with Angular.js to develop the website.<br />
<br />
<br />
I often try to follow the principles of “'''DIY'''” (Do It Yourself) and have also worked with electronics and made a few simple robots in the past. My profile on [http://www.instructables.com/member/vishalapr/ instructables.com].<br />
<br />
Some of the projects I have made,<br />
# [http://goo.gl/5z48UJ POV Display]<br />
# [http://goo.gl/xEdT4C Wall Avoiding Robot]<br />
<br />
== You and the community ==<br />
<br />
'''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.'''<br />
<br />
<br />
'''My answer:'''<br />
<br />
A lot more students and teachers around the world would get access to &nbsp;some of the best activities on sugar. These activities can then be used on any device which would make them a lot more handy and useful. Some of the most popular apps on Sugar would now be available to use on any Sugarizer device so they can use them wherever they want at their convenience. This would help students learn at their own pace anywhere they want as long as they have a Sugarizer enabled device. Using the Moon activity sitting outside watching the moon during the night and analyzing it, using the Speak, Fototoon activities to learn while travelling etc will allow users to have a much more thorough and immerse experience of using these activities.<br />
<br />
<br />
'''Lionel Laské:'''<br />
<br />
Activities in the Sugarizer Activity Set are 3 of most famous Sugar activities. It's very important to have a full experience of Sugar on any device that these activities must be available into Sugar-Web. Plus these activities was proven during deployment to be very attractive for children using Sugar and at least Speak and Fototoon allow them to express their creativity.<br />
<br />
<br />
'''Walter Bender:'''<br />
<br />
Speak and Fototoons are nice examples of tools that let encourage exploration of narrative. It is central to our pedagogy that we engage learners in constructing and expressing.<br />
<br />
<br />
'''What will you do if you get stuck on your project and your mentor isn't around?'''<br />
<br />
I will try to see if I can figure it out myself, using the internet (Google, Stackoverflow, Quora etc) or use some books. If this doesn’t help then I will try to seek help from the Sugar community on the IRC or send a mail on the developer mailing list. I would also ask my friends here who have great amounts of knowledge on a wide variety of topics and they could help me sort the problem out.<br />
<br />
<br />
'''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?'''<br />
<br />
I have a blog set up accessible from [http://erilyth.github.io/ my website], [http://vishalbatchu.blog.com/ my blog]. I will be updating the status of the project and anything else related to Sugar over there every week. I will use the IRC to get reviews on my work by others and also learn what I need to improve from others. I will document my code properly and use appropriate commit messages (git) so others can take a look at my work easily. If required, I will also create pages on the Sugar Wiki.<br />
<br />
== Miscellaneous ==<br />
<br />
'''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". '''<br />
<br />
[[File:Sugar-vishal.png|800px]]<br />
<br />
<br />
'''Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.'''&nbsp;&nbsp;&nbsp; <br />
* Add a CollabWrapper based Text Editor to Sugar: [https://github.com/samdroid-apps/collabwrapper/pull/1 https://github.com/samdroid-apps/collabwrapper/pull/1] '''Merged'''<br />
* Add export matrix feature to Music Blocks: [https://github.com/walterbender/musicblocks/pull/97 https://github.com/walterbender/musicblocks/pull/97] '''Merged'''<br />
* Collaboration Refactoring in Story: [https://github.com/walterbender/story/pull/4 https://github.com/walterbender/story/pull/4] '''Merged'''<br />
* Save and Load file buttons in Music Blocks: [https://github.com/walterbender/musicblocks/pull/115 https://github.com/walterbender/musicblocks/pull/115] '''Merged'''<br />
* Notification drag to act like a clipboard entry: [https://github.com/sugarlabs/sugar/pull/633/files https://github.com/sugarlabs/sugar/pull/633/files] '''Merged'''<br />
* Add icon hover effects: [https://github.com/llaske/sugarizer/pull/32 https://github.com/llaske/sugarizer/pull/32] '''Open'''<br />
<br />
<br />
<br />
'''If you plan to work on Sugar-Web projects we want to be sure that you're familiar with web technologies, so:'''<br />
* '''Clone the'''[https://github.com/llaske/Sugarizer ][https://github.com/llaske/Sugarizer Sugarizer repository]<br />
* '''Using instructions'''[https://github.com/llaske/Sugarizer#create-your-own-activity ][https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity'''<br />
* '''Send us a screenshot of your new activity executed in Sugarizer'''<br />
<br />
[[File:Sugarizer-vishal.png|800px]]<br />
<br />
<br />
'''Describe a great learning experience you had as a child.'''<br />
<br />
When I was younger I always used to have a negative feeling towards teachers. I used to make fun of them and felt that they come to teach only because they don’t have anywhere else to go. I guess I got these feelings since I didn’t like it when they yelled at us (of course for our own mistakes, but I didn’t realize that then). One day I was called up to teach something to the entire class, it was a topic that I was fairly familiar with so I went up there and started teaching. This is when everything changed, I felt a huge amount of joy and excitement. I realized that teaching is not a profession that is chosen because there is nothing else to choose but because it is probably one of the best things to do! From that point on I have always respected teachers and have always loved to share my knowledge with others, just like teachers do.<br />
<br />
<br />
'''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?'''<br />
<br />
Nope, everything is just fine!<br />
[[Category:2016 GSoC applications]]</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/SugarizerActivitySet&diff=97103Summer of Code/2016/SugarizerActivitySet2016-03-12T11:59:47Z<p>Erilyth: </p>
<hr />
<div>Sugarizer Activity Set<br />
<br />
== About You ==<br />
<br />
'''What is your name?'''<br />
<br />
My name is Batchu Venkat Vishal, I am a 2nd-year undergrad student from [http://www.iiit.ac.in/ International Institute of Information Technology Hyderabad] (IIITH)<br />
<br />
<br />
'''What is your email address?'''<br />
<br />
[mailto:vishal.batchu@students.iiit.ac.in vishal.batchu@students.iiit.ac.in]<br />
<br />
Alternate, [mailto:vishalvenkat71@gmail.com vishalvenkat71@gmail.com]<br />
<br />
<br />
'''What is your Sugar Labs wiki username?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your IRC nickname on irc.freenode.net?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)'''<br />
<br />
My native language is Telugu, I am fluent in English and speak a bit of Hindi.<br />
<br />
<br />
'''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.)'''<br />
<br />
I'm located in Hyderabad (Telangana), India.<br />
<br />
I'm planning to work 12:00 UTC - 18:00 UTC on Monday, Tuesday, Wednesday, Thursday, Friday and Saturday and 8:00 UTC - 19:00 UTC on Sundays.<br />
<br />
<br />
'''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?'''<br />
<br />
I am new to open source, but I have contributed to some open source organizations which were founded in my college ( [https://felicity.iiit.ac.in/ College Fest Website] ([https://github.com/felicity-iiith/ https://github.com/felicity-iiith/]), [http://osdg.iiit.ac.in/ College OSDG website] ([https://github.com/OSDG-IIITH https://github.com/OSDG-IIITH]) ). Sugar Labs and OLPC have amazed me, I have always wanted to do something which would help others learn especially when I think of all the kids out there who are unable to get a quality education. When I stumbled upon SugarLabs I knew it was the way in which I could use my knowledge and help spread educational tools to millions of others out there. Open source is the best way to get exposure and collaborate with lots of others just like us, and get to know about their views and what others think. It's a means by which I can make a difference in the society.<br />
<br />
== About your project ==<br />
<br />
<br />
<br />
'''What is the name of your project?'''<br />
<br />
Sugarizer Activity Set<br />
<br />
<br />
'''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? What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; 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 (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.'''<br />
<br />
The project is a full rewriting of a few Sugar apps which will be ported to Sugar Web:<br />
# Moon<br />
# Speak<br />
# Fototoon (and more if time permits) <br />
<br />
<br />
<br />
These activities will be ported using the Sugar Web Framework in order to reach a much larger audience. The Sugarizer/Web apps are available to a lot of children since they are supported by any Web Browser or an XO. This would enable every child to have access and use these activities at their convenience. Children should be able to have the same learning capabilities no matter what platform they are using to run the activities which can be achieved with Sugarizer.<br />
<br />
<br />
The main technologies that will be used are HTML5 and Javascript. Understanding Python source code will be required to understand the current versions of the activities so that the activities created on Sugar Web for the Sugarizer should have similar features to the ones right now.<br />
<br />
<br />
'''A few problems I might face during the implementation in javascript:'''<br />
* Storage of data (audio, images) on the Sugar Web platform.<br />
* Compatibility and adaptability with devices of different sizes(phones, tablets etc) and also touch screen capabilities, if they can be used effectively.<br />
<br />
<br />
<br />
<br />
<br />
'''Libraries in consideration and methods of implementation:'''<br />
<br />
Here are some of the libraries I am considering to use for the project to ease the development process. This is not a static list and can change as and when I am implementing the features of the activities.<br />
# [https://github.com/kripken/speak.js/ speak.js] for text to speech generation in javascript for the ‘Speak’ activity. (GNU GENERAL PUBLIC License)<br />
# Google Translate to generate the audio for given text, also to be used with the ‘Speak’ activity. (This requires us to be online while using the activity but the speech synthesized is of a higher quality).<br />
# [https://github.com/desandro/masonry masonry.js] for clean and simple grid layouts for the ‘Fototoon’ activity. (MIT License)<br />
# [https://github.com/hammerjs/hammer.js hammer.js][https://github.com/hammerjs/hammer.js ]for recognizing and using touch gestures and multi-touch gestures (if needed). (MIT License)<br />
# [https://github.com/desandro/draggabilly draggabilly.js] for simple draggable interfaces for the ‘Fototoon’ activity.<br />
<br />
<br />
<br />
<br />
<br />
These are some libraries that I will look into in order to accelerate the development. I will use an Agile development process also including some iteration and incremental implementation. <br />
<br />
I have downloaded the Moon, Speak and Fototoon xo files and have used them thoroughly to analyze and understand what are the features that each of them provides which I will be implementing. I will try my best to keep the look and feel of the activities to be as similar as possible to the current implementations.<br />
<br />
<br />
'''My timeline:'''<br />
<br />
<br />
<br />
{| style="border-spacing:0;"<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Week'''<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Work Scheduled'''<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 0<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
* Setup a basic MVC architecture in javascript which can be used by the activities (If needed).<br />
* Compatibility checks of libraries with different devices.<br />
* Setup sample codes using the libraries which can be used in the activities as and when needed.<br />
* Take a look at how touch screen capabilities can improve the user experience on mobile devices.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 1 - 19 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Basic UI for the face with eyeballs following the cursor.<br />
* Basic text to speech conversion and use a suitable library for the ‘Type something to hear it’ mode.<br />
* Pitch, rate and language features.<br />
* Number of eyes feature.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 2 - 25 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Mouth motion for the face.<br />
* ‘Ask the robot’ mode and add some basic AI to respond to users.<br />
* Add the ‘Voice Chat / Chat ’ mode. (basic)<br />
* Add types of eyes which the user can select.<br />
* Add types of mouths which the user can select.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 3 - 1 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* ‘Set face from photo’ feature.<br />
* Improve the AI which runs on the ‘Ask the robot’ mode.<br />
* Improve ‘Chat’ mode and make it functional.<br />
<br />
<br />
<br />
<br />
<br />
FotoToon Activity:<br />
* Image upload from journal/local machine.<br />
* Basic box globe(chat box) addition feature and movement lines, enable them to be dragged in the image.<br />
* Full-screen mode.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 4 - 8 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Save as image option.<br />
<br />
* Add other types of globes.<br />
* Add text customization features for text within the different globes.<br />
* Rotation of globes.<br />
* Deletion of globes.<br />
* Add background image for activity.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 5 - 15 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Reordering of images.<br />
* Slideshow and slideshow with timing modes to view the pictures.<br />
* Save as pdf and movie options.<br />
<br />
<br />
<br />
<br />
<br />
Moon Activity:<br />
* Basic UI and moon image.<br />
* Grid view overlay for the image.<br />
* Display information regarding the current state of the moon.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 6 - 22 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity:<br />
* Shade parts of the moon depending on the day.<br />
<br />
* Toggle hemisphere views.<br />
* Save as image option to save the current state of the moon.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Midterm Evaluations<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 7 - 29 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to evaluations:<br />
* Depending on the evaluations improve/fix bugs on the activities etc.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 8 - 6 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity testing and reviews:<br />
* Get detailed feedback on the Speak activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 9 - 13 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity testing and reviews:<br />
* Get detailed feedback on the FotoToon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 10 - 20 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity testing and reviews:<br />
* Get detailed feedback on the Moon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 11 - 27 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities testing:<br />
* Ensure the documentation is done properly.<br />
* Do a final test of all the activities.<br />
* Relax a bit as well :)<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 12 - 3 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities review and evaluation from the Sugar community:<br />
* Ask other members who use these activities on Sugar to review this on Sugarizer and ensure they are satisfied with their experience.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 13 - 10 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to reviews:<br />
* If anything needs to be done after the reviews, I will do it.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 14 - 17 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Final Activity checks:<br />
* Ensure everything works properly and I am ready to submit my project to google.<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Final Evaluations - 21 August<br />
<br />
|}<br />
<br />
<br />
'''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.'''<br />
<br />
I have a strong passion for programming and feel content when I code. I never leave work unattended or halfway through since I feel that not starting the work at all is a lot better than leaving it halfway. I do quite well in other areas as well, my GPA is 9.8/10. I often like to spend time talking to others about their experiences developing something or working for an organization since it helps me learn more about others and how I can improve my ways.<br />
<br />
<br />
I will need to spend about 5 hours per week for 1.5 months to get started with my research in college, but apart from this I don’t have any other commitments, so spending around 6 hrs a day won’t be a problem at all. I often like to take up leadership and responsibility of work that needs to be done as part of college when we work in groups and always finish work on time or earlier if possible.<br />
<br />
<br />
I have also fixed quite a few bugs and added some features to Sugar, so I am quite familiar with the development environment used for developing on Sugar and Sugar-Web. I have also tried to make a simple activity on sugar for testing purposes, it's the [http://activities.sugarlabs.org/en-US/sugar/addon/4785 Simon Says game]. I have worked both with python based activities in Sugar and also with Sugar-Web based projects (musicblocks etc) which is what this project needs in order to port python based activities to web-based activities to be used with Sugarizer.<br />
<br />
<br />
'''Projects I have worked on:'''<br />
# [https://trendspace.pythonanywhere.com/ Trendspace] '''- A shopping website made using the web2py framework.<br />
# [https://github.com/erilyth/OpenGL-C- Cannon Game] '''- A 2D cannon shooter game made entirely using OpenGL and C++.<br />
# [https://github.com/erilyth/OpenGL-3D Adventure Game] '''- A 3D survival game made using OpenGL and C++ with models created using Blender.<br />
# [https://github.com/erilyth/DonkeyKong-Pygame Donkey Kong] '''- A 2D version of the Donkey Kong game made using Pygame.<br />
# [https://github.com/erilyth/Tangram-Game Tangram Game] '''- A version of Tangram(Block Puzzle) developed using Cocos2D-JS targeting mobile devices mainly.<br />
# [https://github.com/Achilles-96/File-sharing-client File Transfer Protocol] '''- A simple file sharing client using which we can share files, check validity using hashes and index based searching. It uses the TCP and UDP (handling losses) protocols for transfer.<br />
# '''FPS Shooter '''- A 3D basic first person shooter game made using Unity in C#.<br />
# '''Box Stacking Game '''- A simple click and drag box stacking game made using Unity in C#.<br />
<br />
<br />
<br />
<br />
<br />
I have also worked on a lot of other smaller projects and also do competitive programming, you can take a look at my [https://github.com/erilyth github profile] and [http://codeforces.com/profile/Erilyth codeforces profile].<br />
<br />
<br />
Here are some screenshots of the games I developed,<br />
* Cannon Game:<br />
[[File:Cannongame-vishal.png|800px]]<br />
<br />
* Adventure Game:<br />
[[File:Adventure1-vishal.png|800px]][[File:Adventure2-vishal.png|800px]]<br />
<br />
* Donkey Kong:<br />
[[File:Dokneykong-vishal.png|800px]]<br />
<br />
* Tangram Game:<br />
[[File:Tangram1.jpg|800px]][[File:Tangram2.jpg|800px]]<br />
<br />
* Box Stacking Game:<br />
[[File:BoxStacking.png|800px]]<br />
<br />
* First Person Shooter:<br />
[[File:FirstPersonShooter1.png|800px]][[File:FirstPersonShooter2.png|800px]]<br />
<br />
I use [http://erilyth.github.io/ my website] and my blog to share my projects ([https://github.com/erilyth/My-Website https://github.com/erilyth/My-Website]). I have used Node.js along with Angular.js to develop the website.<br />
<br />
<br />
I often try to follow the principles of “'''DIY'''” (Do It Yourself) and have also worked with electronics and made a few simple robots in the past. My profile on [http://www.instructables.com/member/vishalapr/ instructables.com].<br />
<br />
Some of the projects I have made,<br />
# [http://goo.gl/5z48UJ POV Display]<br />
# [http://goo.gl/xEdT4C Wall Avoiding Robot]<br />
<br />
== You and the community ==<br />
<br />
'''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.'''<br />
<br />
<br />
'''My answer:'''<br />
<br />
A lot more students and teachers around the world would get access to &nbsp;some of the best activities on sugar. These activities can then be used on any device which would make them a lot more handy and useful. Some of the most popular apps on Sugar would now be available to use on any Sugarizer device so they can use them wherever they want at their convenience. This would help students learn at their own pace anywhere they want as long as they have a Sugarizer enabled device. Using the Moon activity sitting outside watching the moon during the night and analyzing it, using the Speak, Fototoon activities to learn while travelling etc will allow users to have a much more thorough and immerse experience of using these activities.<br />
<br />
<br />
'''Lionel Laské:'''<br />
<br />
Activities in the Sugarizer Activity Set are 3 of most famous Sugar activities. It's very important to have a full experience of Sugar on any device that these activities must be available into Sugar-Web. Plus these activities was proven during deployment to be very attractive for children using Sugar and at least Speak and Fototoon allow them to express their creativity.<br />
<br />
<br />
'''Walter Bender:'''<br />
<br />
Speak and Fototoons are nice examples of tools that let encourage exploration of narrative. It is central to our pedagogy that we engage learners in constructing and expressing.<br />
<br />
<br />
'''What will you do if you get stuck on your project and your mentor isn't around?'''<br />
<br />
I will try to see if I can figure it out myself, using the internet (Google, Stackoverflow, Quora etc) or use some books. If this doesn’t help then I will try to seek help from the Sugar community on the IRC or send a mail on the developer mailing list. I would also ask my friends here who have great amounts of knowledge on a wide variety of topics and they could help me sort the problem out.<br />
<br />
<br />
'''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?'''<br />
<br />
I have a blog set up accessible from [http://erilyth.github.io/ my website], [http://vishalbatchu.blog.com/ my blog]. I will be updating the status of the project and anything else related to Sugar over there every week. I will use the IRC to get reviews on my work by others and also learn what I need to improve from others. I will document my code properly and use appropriate commit messages (git) so others can take a look at my work easily. If required, I will also create pages on the Sugar Wiki.<br />
<br />
== Miscellaneous ==<br />
<br />
'''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". '''<br />
<br />
[[File:Sugar-vishal.png|800px]]<br />
<br />
<br />
'''Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.'''&nbsp;&nbsp;&nbsp; <br />
* Add a CollabWrapper based Text Editor to Sugar: [https://github.com/samdroid-apps/collabwrapper/pull/1 https://github.com/samdroid-apps/collabwrapper/pull/1] '''Merged'''<br />
* Add export matrix feature to Music Blocks: [https://github.com/walterbender/musicblocks/pull/97 https://github.com/walterbender/musicblocks/pull/97] '''Merged'''<br />
* Collaboration Refactoring in Story: [https://github.com/walterbender/story/pull/4 https://github.com/walterbender/story/pull/4] '''Merged'''<br />
* Save and Load file buttons in Music Blocks: [https://github.com/walterbender/musicblocks/pull/115 https://github.com/walterbender/musicblocks/pull/115] '''Merged'''<br />
* Notification drag to act like a clipboard entry: [https://github.com/sugarlabs/sugar/pull/633/files https://github.com/sugarlabs/sugar/pull/633/files] '''Merged'''<br />
* Add icon hover effects: [https://github.com/llaske/sugarizer/pull/32 https://github.com/llaske/sugarizer/pull/32] '''Open'''<br />
<br />
<br />
<br />
'''If you plan to work on Sugar-Web projects we want to be sure that you're familiar with web technologies, so:'''<br />
* '''Clone the'''[https://github.com/llaske/Sugarizer ][https://github.com/llaske/Sugarizer Sugarizer repository]<br />
* '''Using instructions'''[https://github.com/llaske/Sugarizer#create-your-own-activity ][https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity'''<br />
* '''Send us a screenshot of your new activity executed in Sugarizer'''<br />
<br />
[[File:Sugarizer-vishal.png|800px]]<br />
<br />
<br />
'''Describe a great learning experience you had as a child.'''<br />
<br />
When I was younger I always used to have a negative feeling towards teachers. I used to make fun of them and felt that they come to teach only because they don’t have anywhere else to go. I guess I got these feelings since I didn’t like it when they yelled at us (of course for our own mistakes, but I didn’t realize that then). One day I was called up to teach something to the entire class, it was a topic that I was fairly familiar with so I went up there and started teaching. This is when everything changed, I felt a huge amount of joy and excitement. I realized that teaching is not a profession that is chosen because there is nothing else to choose but because it is probably one of the best things to do! From that point on I have always respected teachers and have always loved to share my knowledge with others, just like teachers do.<br />
<br />
<br />
'''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?'''<br />
<br />
Nope, everything is just fine!<br />
[[Category:2016 GSoC applications]]</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=File:FirstPersonShooter2.png&diff=97102File:FirstPersonShooter2.png2016-03-12T11:57:19Z<p>Erilyth: </p>
<hr />
<div></div>Erilythhttps://wiki.sugarlabs.org/index.php?title=File:FirstPersonShooter1.png&diff=97101File:FirstPersonShooter1.png2016-03-12T11:56:45Z<p>Erilyth: </p>
<hr />
<div></div>Erilythhttps://wiki.sugarlabs.org/index.php?title=File:BoxStacking.png&diff=97100File:BoxStacking.png2016-03-12T11:56:15Z<p>Erilyth: </p>
<hr />
<div></div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/SugarizerActivitySet&diff=97096Summer of Code/2016/SugarizerActivitySet2016-03-11T14:05:43Z<p>Erilyth: /* About your project */</p>
<hr />
<div>Sugarizer Activity Set<br />
<br />
== About You ==<br />
<br />
'''What is your name?'''<br />
<br />
My name is Batchu Venkat Vishal, I am a 2nd-year undergrad student from [http://www.iiit.ac.in/ International Institute of Information Technology Hyderabad] (IIITH)<br />
<br />
<br />
'''What is your email address?'''<br />
<br />
[mailto:vishal.batchu@students.iiit.ac.in vishal.batchu@students.iiit.ac.in]<br />
<br />
Alternate, [mailto:vishalvenkat71@gmail.com vishalvenkat71@gmail.com]<br />
<br />
<br />
'''What is your Sugar Labs wiki username?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your IRC nickname on irc.freenode.net?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)'''<br />
<br />
My native language is Telugu, I am fluent in English and speak a bit of Hindi.<br />
<br />
<br />
'''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.)'''<br />
<br />
I'm located in Hyderabad (Telangana), India.<br />
<br />
I'm planning to work 12:00 UTC - 18:00 UTC on Monday, Tuesday, Wednesday, Thursday, Friday and Saturday and 8:00 UTC - 19:00 UTC on Sundays.<br />
<br />
<br />
'''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?'''<br />
<br />
I am new to open source, but I have contributed to some open source organizations which were founded in my college ( [https://felicity.iiit.ac.in/ College Fest Website] ([https://github.com/felicity-iiith/ https://github.com/felicity-iiith/]), [http://osdg.iiit.ac.in/ College OSDG website] ([https://github.com/OSDG-IIITH https://github.com/OSDG-IIITH]) ). Sugar Labs and OLPC have amazed me, I have always wanted to do something which would help others learn especially when I think of all the kids out there who are unable to get a quality education. When I stumbled upon SugarLabs I knew it was the way in which I could use my knowledge and help spread educational tools to millions of others out there. Open source is the best way to get exposure and collaborate with lots of others just like us, and get to know about their views and what others think. It's a means by which I can make a difference in the society.<br />
<br />
== About your project ==<br />
<br />
<br />
<br />
'''What is the name of your project?'''<br />
<br />
Sugarizer Activity Set<br />
<br />
<br />
'''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? What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; 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 (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.'''<br />
<br />
The project is a full rewriting of a few Sugar apps which will be ported to Sugar Web:<br />
# Moon<br />
# Speak<br />
# Fototoon (and more if time permits) <br />
<br />
<br />
<br />
These activities will be ported using the Sugar Web Framework in order to reach a much larger audience. The Sugarizer/Web apps are available to a lot of children since they are supported by any Web Browser or an XO. This would enable every child to have access and use these activities at their convenience. Children should be able to have the same learning capabilities no matter what platform they are using to run the activities which can be achieved with Sugarizer.<br />
<br />
<br />
The main technologies that will be used are HTML5 and Javascript. Understanding Python source code will be required to understand the current versions of the activities so that the activities created on Sugar Web for the Sugarizer should have similar features to the ones right now.<br />
<br />
<br />
'''A few problems I might face during the implementation in javascript:'''<br />
* Storage of data (audio, images) on the Sugar Web platform.<br />
* Compatibility and adaptability with devices of different sizes(phones, tablets etc) and also touch screen capabilities, if they can be used effectively.<br />
<br />
<br />
<br />
<br />
<br />
'''Libraries in consideration and methods of implementation:'''<br />
<br />
Here are some of the libraries I am considering to use for the project to ease the development process. This is not a static list and can change as and when I am implementing the features of the activities.<br />
# [https://github.com/kripken/speak.js/ speak.js] for text to speech generation in javascript for the ‘Speak’ activity. (GNU GENERAL PUBLIC License)<br />
# Google Translate to generate the audio for given text, also to be used with the ‘Speak’ activity. (This requires us to be online while using the activity but the speech synthesized is of a higher quality).<br />
# [https://github.com/desandro/masonry masonry.js] for clean and simple grid layouts for the ‘Fototoon’ activity. (MIT License)<br />
# [https://github.com/hammerjs/hammer.js hammer.js][https://github.com/hammerjs/hammer.js ]for recognizing and using touch gestures and multi-touch gestures (if needed). (MIT License)<br />
# [https://github.com/desandro/draggabilly draggabilly.js] for simple draggable interfaces for the ‘Fototoon’ activity.<br />
<br />
<br />
<br />
<br />
<br />
These are some libraries that I will look into in order to accelerate the development. I will use an Agile development process also including some iteration and incremental implementation. <br />
<br />
I have downloaded the Moon, Speak and Fototoon xo files and have used them thoroughly to analyze and understand what are the features that each of them provides which I will be implementing. I will try my best to keep the look and feel of the activities to be as similar as possible to the current implementations.<br />
<br />
<br />
'''My timeline:'''<br />
<br />
<br />
<br />
{| style="border-spacing:0;"<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Week'''<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Work Scheduled'''<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 0<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
* Setup a basic MVC architecture in javascript which can be used by the activities (If needed).<br />
* Compatibility checks of libraries with different devices.<br />
* Setup sample codes using the libraries which can be used in the activities as and when needed.<br />
* Take a look at how touch screen capabilities can improve the user experience on mobile devices.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 1 - 19 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Basic UI for the face with eyeballs following the cursor.<br />
* Basic text to speech conversion and use a suitable library for the ‘Type something to hear it’ mode.<br />
* Pitch, rate and language features.<br />
* Number of eyes feature.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 2 - 25 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Mouth motion for the face.<br />
* ‘Ask the robot’ mode and add some basic AI to respond to users.<br />
* Add the ‘Voice Chat / Chat ’ mode. (basic)<br />
* Add types of eyes which the user can select.<br />
* Add types of mouths which the user can select.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 3 - 1 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* ‘Set face from photo’ feature.<br />
* Improve the AI which runs on the ‘Ask the robot’ mode.<br />
* Improve ‘Chat’ mode and make it functional.<br />
<br />
<br />
<br />
<br />
<br />
FotoToon Activity:<br />
* Image upload from journal/local machine.<br />
* Basic box globe(chat box) addition feature and movement lines, enable them to be dragged in the image.<br />
* Full-screen mode.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 4 - 8 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Save as image option.<br />
<br />
* Add other types of globes.<br />
* Add text customization features for text within the different globes.<br />
* Rotation of globes.<br />
* Deletion of globes.<br />
* Add background image for activity.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 5 - 15 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Reordering of images.<br />
* Slideshow and slideshow with timing modes to view the pictures.<br />
* Save as pdf and movie options.<br />
<br />
<br />
<br />
<br />
<br />
Moon Activity:<br />
* Basic UI and moon image.<br />
* Grid view overlay for the image.<br />
* Display information regarding the current state of the moon.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 6 - 22 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity:<br />
* Shade parts of the moon depending on the day.<br />
<br />
* Toggle hemisphere views.<br />
* Save as image option to save the current state of the moon.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Midterm Evaluations<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 7 - 29 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to evaluations:<br />
* Depending on the evaluations improve/fix bugs on the activities etc.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 8 - 6 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity testing and reviews:<br />
* Get detailed feedback on the Speak activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 9 - 13 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity testing and reviews:<br />
* Get detailed feedback on the FotoToon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 10 - 20 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity testing and reviews:<br />
* Get detailed feedback on the Moon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 11 - 27 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities testing:<br />
* Ensure the documentation is done properly.<br />
* Do a final test of all the activities.<br />
* Relax a bit as well :)<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 12 - 3 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities review and evaluation from the Sugar community:<br />
* Ask other members who use these activities on Sugar to review this on Sugarizer and ensure they are satisfied with their experience.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 13 - 10 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to reviews:<br />
* If anything needs to be done after the reviews, I will do it.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 14 - 17 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Final Activity checks:<br />
* Ensure everything works properly and I am ready to submit my project to google.<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Final Evaluations - 21 August<br />
<br />
|}<br />
<br />
<br />
'''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.'''<br />
<br />
I have a strong passion for programming and feel content when I code. I never leave work unattended or halfway through since I feel that not starting the work at all is a lot better than leaving it halfway. I do quite well in other areas as well, my GPA is 9.8/10. I often like to spend time talking to others about their experiences developing something or working for an organization since it helps me learn more about others and how I can improve my ways.<br />
<br />
<br />
I will need to spend about 5 hours per week for 1.5 months to get started with my research in college, but apart from this I don’t have any other commitments, so spending around 6 hrs a day won’t be a problem at all. I often like to take up leadership and responsibility of work that needs to be done as part of college when we work in groups and always finish work on time or earlier if possible.<br />
<br />
<br />
I have also fixed quite a few bugs and added some features to Sugar, so I am quite familiar with the development environment used for developing on Sugar and Sugar-Web. I have also tried to make a simple activity on sugar for testing purposes, it's the [http://activities.sugarlabs.org/en-US/sugar/addon/4785 Simon Says game]. I have worked both with python based activities in Sugar and also with Sugar-Web based projects (musicblocks etc) which is what this project needs in order to port python based activities to web-based activities to be used with Sugarizer.<br />
<br />
<br />
'''Projects I have worked on:'''<br />
# [https://trendspace.pythonanywhere.com/ Trendspace] '''- A shopping website made using the web2py framework.<br />
# [https://github.com/erilyth/OpenGL-C- Cannon Game] '''- A 2D cannon shooter game made entirely using OpenGL and C++.<br />
# [https://github.com/erilyth/OpenGL-3D Adventure Game] '''- A 3D survival game made using OpenGL and C++ with models created using Blender.<br />
# [https://github.com/erilyth/DonkeyKong-Pygame Donkey Kong] '''- A 2D version of the Donkey Kong game made using Pygame.<br />
# [https://github.com/erilyth/Tangram-Game Tangram Game] '''- A version of Tangram(Block Puzzle) developed using Cocos2D-JS targeting mobile devices mainly.<br />
# [https://github.com/Achilles-96/File-sharing-client File Transfer Protocol] '''- A simple file sharing client using which we can share files, check validity using hashes and index based searching. It uses the TCP and UDP (handling losses) protocols for transfer.<br />
# '''FPS Shooter '''- A 3D basic first person shooter game made using Unity in C#.<br />
# '''Box Stacking Game '''- A simple click and drag box stacking game made using Unity in C#.<br />
<br />
<br />
<br />
<br />
<br />
I have also worked on a lot of other smaller projects and also do competitive programming, you can take a look at my [https://github.com/erilyth github profile] and [http://codeforces.com/profile/Erilyth codeforces profile].<br />
<br />
<br />
Here are some screenshots of the games I developed,<br />
* Cannon Game:<br />
[[File:Cannongame-vishal.png|800px]]<br />
<br />
* Adventure Game:<br />
[[File:Adventure1-vishal.png|800px]][[File:Adventure2-vishal.png|800px]]<br />
<br />
* Donkey Kong:<br />
[[File:Dokneykong-vishal.png|800px]]<br />
<br />
* Tangram Game:<br />
[[File:Tangram1.jpg|800px]][[File:Tangram2.jpg|800px]]<br />
<br />
<br />
I use [http://erilyth.github.io/ my website] and my blog to share my projects ([https://github.com/erilyth/My-Website https://github.com/erilyth/My-Website]). I have used Node.js along with Angular.js to develop the website.<br />
<br />
<br />
I often try to follow the principles of “'''DIY'''” (Do It Yourself) and have also worked with electronics and made a few simple robots in the past. My profile on [http://www.instructables.com/member/vishalapr/ instructables.com].<br />
<br />
Some of the projects I have made,<br />
# [http://goo.gl/5z48UJ POV Display]<br />
# [http://goo.gl/xEdT4C Wall Avoiding Robot]<br />
<br />
== You and the community ==<br />
<br />
'''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.'''<br />
<br />
<br />
'''My answer:'''<br />
<br />
A lot more students and teachers around the world would get access to &nbsp;some of the best activities on sugar. These activities can then be used on any device which would make them a lot more handy and useful. Some of the most popular apps on Sugar would now be available to use on any Sugarizer device so they can use them wherever they want at their convenience. This would help students learn at their own pace anywhere they want as long as they have a Sugarizer enabled device. Using the Moon activity sitting outside watching the moon during the night and analyzing it, using the Speak, Fototoon activities to learn while travelling etc will allow users to have a much more thorough and immerse experience of using these activities.<br />
<br />
<br />
'''Lionel Laské:'''<br />
<br />
Activities in the Sugarizer Activity Set are 3 of most famous Sugar activities. It's very important to have a full experience of Sugar on any device that these activities must be available into Sugar-Web. Plus these activities was proven during deployment to be very attractive for children using Sugar and at least Speak and Fototoon allow them to express their creativity.<br />
<br />
<br />
'''Walter Bender:'''<br />
<br />
Speak and Fototoons are nice examples of tools that let encourage exploration of narrative. It is central to our pedagogy that we engage learners in constructing and expressing.<br />
<br />
<br />
'''What will you do if you get stuck on your project and your mentor isn't around?'''<br />
<br />
I will try to see if I can figure it out myself, using the internet (Google, Stackoverflow, Quora etc) or use some books. If this doesn’t help then I will try to seek help from the Sugar community on the IRC or send a mail on the developer mailing list. I would also ask my friends here who have great amounts of knowledge on a wide variety of topics and they could help me sort the problem out.<br />
<br />
<br />
'''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?'''<br />
<br />
I have a blog set up accessible from [http://erilyth.github.io/ my website], [http://vishalbatchu.blog.com/ my blog]. I will be updating the status of the project and anything else related to Sugar over there every week. I will use the IRC to get reviews on my work by others and also learn what I need to improve from others. I will document my code properly and use appropriate commit messages (git) so others can take a look at my work easily. If required, I will also create pages on the Sugar Wiki.<br />
<br />
== Miscellaneous ==<br />
<br />
'''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". '''<br />
<br />
[[File:Sugar-vishal.png|800px]]<br />
<br />
<br />
'''Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.'''&nbsp;&nbsp;&nbsp; <br />
* Add a CollabWrapper based Text Editor to Sugar: [https://github.com/samdroid-apps/collabwrapper/pull/1 https://github.com/samdroid-apps/collabwrapper/pull/1] '''Merged'''<br />
* Add export matrix feature to Music Blocks: [https://github.com/walterbender/musicblocks/pull/97 https://github.com/walterbender/musicblocks/pull/97] '''Merged'''<br />
* Collaboration Refactoring in Story: [https://github.com/walterbender/story/pull/4 https://github.com/walterbender/story/pull/4] '''Merged'''<br />
* Save and Load file buttons in Music Blocks: [https://github.com/walterbender/musicblocks/pull/115 https://github.com/walterbender/musicblocks/pull/115] '''Merged'''<br />
* Notification drag to act like a clipboard entry: [https://github.com/sugarlabs/sugar/pull/633/files https://github.com/sugarlabs/sugar/pull/633/files] '''Merged'''<br />
* Add icon hover effects: [https://github.com/llaske/sugarizer/pull/32 https://github.com/llaske/sugarizer/pull/32] '''Open'''<br />
<br />
<br />
<br />
'''If you plan to work on Sugar-Web projects we want to be sure that you're familiar with web technologies, so:'''<br />
* '''Clone the'''[https://github.com/llaske/Sugarizer ][https://github.com/llaske/Sugarizer Sugarizer repository]<br />
* '''Using instructions'''[https://github.com/llaske/Sugarizer#create-your-own-activity ][https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity'''<br />
* '''Send us a screenshot of your new activity executed in Sugarizer'''<br />
<br />
[[File:Sugarizer-vishal.png|800px]]<br />
<br />
<br />
'''Describe a great learning experience you had as a child.'''<br />
<br />
When I was younger I always used to have a negative feeling towards teachers. I used to make fun of them and felt that they come to teach only because they don’t have anywhere else to go. I guess I got these feelings since I didn’t like it when they yelled at us (of course for our own mistakes, but I didn’t realize that then). One day I was called up to teach something to the entire class, it was a topic that I was fairly familiar with so I went up there and started teaching. This is when everything changed, I felt a huge amount of joy and excitement. I realized that teaching is not a profession that is chosen because there is nothing else to choose but because it is probably one of the best things to do! From that point on I have always respected teachers and have always loved to share my knowledge with others, just like teachers do.<br />
<br />
<br />
'''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?'''<br />
<br />
Nope, everything is just fine!<br />
[[Category:2016 GSoC applications]]</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/SugarizerActivitySet&diff=97084Summer of Code/2016/SugarizerActivitySet2016-03-09T05:31:43Z<p>Erilyth: /* About your project */</p>
<hr />
<div>Sugarizer Activity Set<br />
<br />
== About You ==<br />
<br />
'''What is your name?'''<br />
<br />
My name is Batchu Venkat Vishal, I am a 2nd-year undergrad student from [http://www.iiit.ac.in/ International Institute of Information Technology Hyderabad] (IIITH)<br />
<br />
<br />
'''What is your email address?'''<br />
<br />
[mailto:vishal.batchu@students.iiit.ac.in vishal.batchu@students.iiit.ac.in]<br />
<br />
Alternate, [mailto:vishalvenkat71@gmail.com vishalvenkat71@gmail.com]<br />
<br />
<br />
'''What is your Sugar Labs wiki username?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your IRC nickname on irc.freenode.net?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)'''<br />
<br />
My native language is Telugu, I am fluent in English and speak a bit of Hindi.<br />
<br />
<br />
'''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.)'''<br />
<br />
I'm located in Hyderabad (Telangana), India.<br />
<br />
I'm planning to work 12:00 UTC - 18:00 UTC on Monday, Tuesday, Wednesday, Thursday, Friday and Saturday and 8:00 UTC - 19:00 UTC on Sundays.<br />
<br />
<br />
'''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?'''<br />
<br />
I am new to open source, but I have contributed to some open source organizations which were founded in my college ( [https://felicity.iiit.ac.in/ College Fest Website] ([https://github.com/felicity-iiith/ https://github.com/felicity-iiith/]), [http://osdg.iiit.ac.in/ College OSDG website] ([https://github.com/OSDG-IIITH https://github.com/OSDG-IIITH]) ). Sugar Labs and OLPC have amazed me, I have always wanted to do something which would help others learn especially when I think of all the kids out there who are unable to get a quality education. When I stumbled upon SugarLabs I knew it was the way in which I could use my knowledge and help spread educational tools to millions of others out there. Open source is the best way to get exposure and collaborate with lots of others just like us, and get to know about their views and what others think. It's a means by which I can make a difference in the society.<br />
<br />
== About your project ==<br />
<br />
<br />
<br />
'''What is the name of your project?'''<br />
<br />
Sugarizer Activity Set<br />
<br />
<br />
'''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? What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; 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 (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.'''<br />
<br />
The project is a full rewriting of a few Sugar apps which will be ported to Sugar Web:<br />
# Moon<br />
# Speak<br />
# Fototoon<br />
<br />
<br />
<br />
These activities will be ported using the Sugar Web Framework in order to reach a much larger audience. The Sugarizer/Web apps are available to a lot of children since they are supported by any Web Browser or an XO. This would enable every child to have access and use these activities at their convenience. Children should be able to have the same learning capabilities no matter what platform they are using to run the activities which can be achieved with Sugarizer.<br />
<br />
<br />
The main technologies that will be used are HTML5 and Javascript. Understanding Python source code will be required to understand the current versions of the activities so that the activities created on Sugar Web for the Sugarizer should have similar features to the ones right now.<br />
<br />
<br />
'''A few problems I might face during the implementation in javascript:'''<br />
* Storage of data (audio, images) on the Sugar Web platform.<br />
* Compatibility and adaptability with devices of different sizes(phones, tablets etc) and also touch screen capabilities, if they can be used effectively.<br />
<br />
<br />
<br />
<br />
<br />
'''Libraries in consideration and methods of implementation:'''<br />
<br />
Here are some of the libraries I am considering to use for the project to ease the development process. This is not a static list and can change as and when I am implementing the features of the activities.<br />
# [https://github.com/kripken/speak.js/ speak.js] for text to speech generation in javascript for the ‘Speak’ activity. (GNU GENERAL PUBLIC License)<br />
# Google Translate to generate the audio for given text, also to be used with the ‘Speak’ activity. (This requires us to be online while using the activity but the speech synthesized is of a higher quality).<br />
# [https://github.com/desandro/masonry masonry.js] for clean and simple grid layouts for the ‘Fototoon’ activity. (MIT License)<br />
# [https://github.com/hammerjs/hammer.js hammer.js][https://github.com/hammerjs/hammer.js ]for recognizing and using touch gestures and multi-touch gestures (if needed). (MIT License)<br />
# [https://github.com/desandro/draggabilly draggabilly.js] for simple draggable interfaces for the ‘Fototoon’ activity.<br />
<br />
<br />
<br />
<br />
<br />
These are some libraries that I will look into in order to accelerate the development. I will use an Agile development process also including some iteration and incremental implementation. <br />
<br />
I have downloaded the Moon, Speak and Fototoon xo files and have used them thoroughly to analyze and understand what are the features that each of them provides which I will be implementing. I will try my best to keep the look and feel of the activities to be as similar as possible to the current implementations.<br />
<br />
<br />
'''My timeline:'''<br />
<br />
<br />
<br />
{| style="border-spacing:0;"<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Week'''<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Work Scheduled'''<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 0<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
* Setup a basic MVC architecture in javascript which can be used by the activities (If needed).<br />
* Compatibility checks of libraries with different devices.<br />
* Setup sample codes using the libraries which can be used in the activities as and when needed.<br />
* Take a look at how touch screen capabilities can improve the user experience on mobile devices.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 1 - 19 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Basic UI for the face with eyeballs following the cursor.<br />
* Basic text to speech conversion and use a suitable library for the ‘Type something to hear it’ mode.<br />
* Pitch, rate and language features.<br />
* Number of eyes feature.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 2 - 25 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Mouth motion for the face.<br />
* ‘Ask the robot’ mode and add some basic AI to respond to users.<br />
* Add the ‘Voice Chat / Chat ’ mode. (basic)<br />
* Add types of eyes which the user can select.<br />
* Add types of mouths which the user can select.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 3 - 1 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* ‘Set face from photo’ feature.<br />
* Improve the AI which runs on the ‘Ask the robot’ mode.<br />
* Improve ‘Chat’ mode and make it functional.<br />
<br />
<br />
<br />
<br />
<br />
FotoToon Activity:<br />
* Image upload from journal/local machine.<br />
* Basic box globe(chat box) addition feature and movement lines, enable them to be dragged in the image.<br />
* Full-screen mode.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 4 - 8 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Save as image option.<br />
<br />
* Add other types of globes.<br />
* Add text customization features for text within the different globes.<br />
* Rotation of globes.<br />
* Deletion of globes.<br />
* Add background image for activity.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 5 - 15 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Reordering of images.<br />
* Slideshow and slideshow with timing modes to view the pictures.<br />
* Save as pdf and movie options.<br />
<br />
<br />
<br />
<br />
<br />
Moon Activity:<br />
* Basic UI and moon image.<br />
* Grid view overlay for the image.<br />
* Display information regarding the current state of the moon.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 6 - 22 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity:<br />
* Shade parts of the moon depending on the day.<br />
<br />
* Toggle hemisphere views.<br />
* Save as image option to save the current state of the moon.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Midterm Evaluations<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 7 - 29 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to evaluations:<br />
* Depending on the evaluations improve/fix bugs on the activities etc.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 8 - 6 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity testing and reviews:<br />
* Get detailed feedback on the Speak activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 9 - 13 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity testing and reviews:<br />
* Get detailed feedback on the FotoToon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 10 - 20 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity testing and reviews:<br />
* Get detailed feedback on the Moon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 11 - 27 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities testing:<br />
* Ensure the documentation is done properly.<br />
* Do a final test of all the activities.<br />
* Relax a bit as well :)<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 12 - 3 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities review and evaluation from the Sugar community:<br />
* Ask other members who use these activities on Sugar to review this on Sugarizer and ensure they are satisfied with their experience.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 13 - 10 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to reviews:<br />
* If anything needs to be done after the reviews, I will do it.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 14 - 17 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Final Activity checks:<br />
* Ensure everything works properly and I am ready to submit my project to google.<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Final Evaluations - 21 August<br />
<br />
|}<br />
<br />
<br />
'''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.'''<br />
<br />
I have a strong passion for programming and feel content when I code. I never leave work unattended or halfway through since I feel that not starting the work at all is a lot better than leaving it halfway. I do quite well in other areas as well, my GPA is 9.8/10. I often like to spend time talking to others about their experiences developing something or working for an organization since it helps me learn more about others and how I can improve my ways.<br />
<br />
<br />
I will need to spend about 5 hours per week for 1.5 months to get started with my research in college, but apart from this I don’t have any other commitments, so spending around 6 hrs a day won’t be a problem at all. I often like to take up leadership and responsibility of work that needs to be done as part of college when we work in groups and always finish work on time or earlier if possible.<br />
<br />
<br />
I have also fixed quite a few bugs and added some features to Sugar, so I am quite familiar with the development environment used for developing on Sugar and Sugar-Web. I have also tried to make a simple activity on sugar for testing purposes, it's the [http://activities.sugarlabs.org/en-US/sugar/addon/4785 Simon Says game]. I have worked both with python based activities in Sugar and also with Sugar-Web based projects (musicblocks etc) which is what this project needs in order to port python based activities to web-based activities to be used with Sugarizer.<br />
<br />
<br />
'''Projects I have worked on:'''<br />
# [https://trendspace.pythonanywhere.com/ Trendspace] '''- A shopping website made using the web2py framework.<br />
# [https://github.com/erilyth/OpenGL-C- Cannon Game] '''- A 2D cannon shooter game made entirely using OpenGL and C++.<br />
# [https://github.com/erilyth/OpenGL-3D Adventure Game] '''- A 3D survival game made using OpenGL and C++ with models created using Blender.<br />
# [https://github.com/erilyth/DonkeyKong-Pygame Donkey Kong] '''- A 2D version of the Donkey Kong game made using Pygame.<br />
# [https://github.com/erilyth/Tangram-Game Tangram Game] '''- A version of Tangram(Block Puzzle) developed using Cocos2D-JS targeting mobile devices mainly.<br />
# [https://github.com/Achilles-96/File-sharing-client File Transfer Protocol] '''- A simple file sharing client using which we can share files, check validity using hashes and index based searching. It uses the TCP and UDP (handling losses) protocols for transfer.<br />
# '''FPS Shooter '''- A 3D basic first person shooter game made using Unity in C#.<br />
# '''Box Stacking Game '''- A simple click and drag box stacking game made using Unity in C#.<br />
<br />
<br />
<br />
<br />
<br />
I have also worked on a lot of other smaller projects and also do competitive programming, you can take a look at my [https://github.com/erilyth github profile] and [http://codeforces.com/profile/Erilyth codeforces profile].<br />
<br />
<br />
Here are some screenshots of the games I developed,<br />
* Cannon Game:<br />
[[File:Cannongame-vishal.png|800px]]<br />
<br />
* Adventure Game:<br />
[[File:Adventure1-vishal.png|800px]][[File:Adventure2-vishal.png|800px]]<br />
<br />
* Donkey Kong:<br />
[[File:Dokneykong-vishal.png|800px]]<br />
<br />
* Tangram Game:<br />
[[File:Tangram1.jpg|800px]][[File:Tangram2.jpg|800px]]<br />
<br />
<br />
I use [http://erilyth.github.io/ my website] and my blog to share my projects ([https://github.com/erilyth/My-Website https://github.com/erilyth/My-Website]). I have used Node.js along with Angular.js to develop the website.<br />
<br />
<br />
I often try to follow the principles of “'''DIY'''” (Do It Yourself) and have also worked with electronics and made a few simple robots in the past. My profile on [http://www.instructables.com/member/vishalapr/ instructables.com].<br />
<br />
Some of the projects I have made,<br />
# [http://goo.gl/5z48UJ POV Display]<br />
# [http://goo.gl/xEdT4C Wall Avoiding Robot]<br />
<br />
== You and the community ==<br />
<br />
'''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.'''<br />
<br />
<br />
'''My answer:'''<br />
<br />
A lot more students and teachers around the world would get access to &nbsp;some of the best activities on sugar. These activities can then be used on any device which would make them a lot more handy and useful. Some of the most popular apps on Sugar would now be available to use on any Sugarizer device so they can use them wherever they want at their convenience. This would help students learn at their own pace anywhere they want as long as they have a Sugarizer enabled device. Using the Moon activity sitting outside watching the moon during the night and analyzing it, using the Speak, Fototoon activities to learn while travelling etc will allow users to have a much more thorough and immerse experience of using these activities.<br />
<br />
<br />
'''Lionel Laské:'''<br />
<br />
Activities in the Sugarizer Activity Set are 3 of most famous Sugar activities. It's very important to have a full experience of Sugar on any device that these activities must be available into Sugar-Web. Plus these activities was proven during deployment to be very attractive for children using Sugar and at least Speak and Fototoon allow them to express their creativity.<br />
<br />
<br />
'''Walter Bender:'''<br />
<br />
Speak and Fototoons are nice examples of tools that let encourage exploration of narrative. It is central to our pedagogy that we engage learners in constructing and expressing.<br />
<br />
<br />
'''What will you do if you get stuck on your project and your mentor isn't around?'''<br />
<br />
I will try to see if I can figure it out myself, using the internet (Google, Stackoverflow, Quora etc) or use some books. If this doesn’t help then I will try to seek help from the Sugar community on the IRC or send a mail on the developer mailing list. I would also ask my friends here who have great amounts of knowledge on a wide variety of topics and they could help me sort the problem out.<br />
<br />
<br />
'''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?'''<br />
<br />
I have a blog set up accessible from [http://erilyth.github.io/ my website], [http://vishalbatchu.blog.com/ my blog]. I will be updating the status of the project and anything else related to Sugar over there every week. I will use the IRC to get reviews on my work by others and also learn what I need to improve from others. I will document my code properly and use appropriate commit messages (git) so others can take a look at my work easily. If required, I will also create pages on the Sugar Wiki.<br />
<br />
== Miscellaneous ==<br />
<br />
'''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". '''<br />
<br />
[[File:Sugar-vishal.png|800px]]<br />
<br />
<br />
'''Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.'''&nbsp;&nbsp;&nbsp; <br />
* Add a CollabWrapper based Text Editor to Sugar: [https://github.com/samdroid-apps/collabwrapper/pull/1 https://github.com/samdroid-apps/collabwrapper/pull/1] '''Merged'''<br />
* Add export matrix feature to Music Blocks: [https://github.com/walterbender/musicblocks/pull/97 https://github.com/walterbender/musicblocks/pull/97] '''Merged'''<br />
* Collaboration Refactoring in Story: [https://github.com/walterbender/story/pull/4 https://github.com/walterbender/story/pull/4] '''Merged'''<br />
* Save and Load file buttons in Music Blocks: [https://github.com/walterbender/musicblocks/pull/115 https://github.com/walterbender/musicblocks/pull/115] '''Merged'''<br />
* Notification drag to act like a clipboard entry: [https://github.com/sugarlabs/sugar/pull/633/files https://github.com/sugarlabs/sugar/pull/633/files] '''Merged'''<br />
* Add icon hover effects: [https://github.com/llaske/sugarizer/pull/32 https://github.com/llaske/sugarizer/pull/32] '''Open'''<br />
<br />
<br />
<br />
'''If you plan to work on Sugar-Web projects we want to be sure that you're familiar with web technologies, so:'''<br />
* '''Clone the'''[https://github.com/llaske/Sugarizer ][https://github.com/llaske/Sugarizer Sugarizer repository]<br />
* '''Using instructions'''[https://github.com/llaske/Sugarizer#create-your-own-activity ][https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity'''<br />
* '''Send us a screenshot of your new activity executed in Sugarizer'''<br />
<br />
[[File:Sugarizer-vishal.png|800px]]<br />
<br />
<br />
'''Describe a great learning experience you had as a child.'''<br />
<br />
When I was younger I always used to have a negative feeling towards teachers. I used to make fun of them and felt that they come to teach only because they don’t have anywhere else to go. I guess I got these feelings since I didn’t like it when they yelled at us (of course for our own mistakes, but I didn’t realize that then). One day I was called up to teach something to the entire class, it was a topic that I was fairly familiar with so I went up there and started teaching. This is when everything changed, I felt a huge amount of joy and excitement. I realized that teaching is not a profession that is chosen because there is nothing else to choose but because it is probably one of the best things to do! From that point on I have always respected teachers and have always loved to share my knowledge with others, just like teachers do.<br />
<br />
<br />
'''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?'''<br />
<br />
Nope, everything is just fine!<br />
[[Category:2016 GSoC applications]]</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/SugarizerActivitySet&diff=97083Summer of Code/2016/SugarizerActivitySet2016-03-09T05:27:03Z<p>Erilyth: /* Miscellaneous */</p>
<hr />
<div>Sugarizer Activity Set<br />
<br />
== About You ==<br />
<br />
'''What is your name?'''<br />
<br />
My name is Batchu Venkat Vishal, I am a 2nd-year undergrad student from [http://www.iiit.ac.in/ International Institute of Information Technology Hyderabad] (IIITH)<br />
<br />
<br />
'''What is your email address?'''<br />
<br />
[mailto:vishal.batchu@students.iiit.ac.in vishal.batchu@students.iiit.ac.in]<br />
<br />
Alternate, [mailto:vishalvenkat71@gmail.com vishalvenkat71@gmail.com]<br />
<br />
<br />
'''What is your Sugar Labs wiki username?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your IRC nickname on irc.freenode.net?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)'''<br />
<br />
My native language is Telugu, I am fluent in English and speak a bit of Hindi.<br />
<br />
<br />
'''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.)'''<br />
<br />
I'm located in Hyderabad (Telangana), India.<br />
<br />
I'm planning to work 12:00 UTC - 18:00 UTC on Monday, Tuesday, Wednesday, Thursday, Friday and Saturday and 8:00 UTC - 19:00 UTC on Sundays.<br />
<br />
<br />
'''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?'''<br />
<br />
I am new to open source, but I have contributed to some open source organizations which were founded in my college ( [https://felicity.iiit.ac.in/ College Fest Website] ([https://github.com/felicity-iiith/ https://github.com/felicity-iiith/]), [http://osdg.iiit.ac.in/ College OSDG website] ([https://github.com/OSDG-IIITH https://github.com/OSDG-IIITH]) ). Sugar Labs and OLPC have amazed me, I have always wanted to do something which would help others learn especially when I think of all the kids out there who are unable to get a quality education. When I stumbled upon SugarLabs I knew it was the way in which I could use my knowledge and help spread educational tools to millions of others out there. Open source is the best way to get exposure and collaborate with lots of others just like us, and get to know about their views and what others think. It's a means by which I can make a difference in the society.<br />
<br />
== About your project ==<br />
<br />
<br />
<br />
'''What is the name of your project?'''<br />
<br />
Sugarizer Activity Set<br />
<br />
<br />
'''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? What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; 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 (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.'''<br />
<br />
The project is a full rewriting of a few Sugar apps which will be ported to Sugar Web:<br />
# Moon<br />
# Speak<br />
# Fototoon<br />
<br />
<br />
<br />
These activities will be ported using the Sugar Web Framework in order to reach a much larger audience. The Sugarizer/Web apps are available to a lot of children since they are supported by any Web Browser or an XO. This would enable every child to have access and use these activities at their convenience. Children should be able to have the same learning capabilities no matter what platform they are using to run the activities which can be achieved with Sugarizer.<br />
<br />
<br />
The main technologies that will be used are HTML5 and Javascript. Understanding Python source code will be required to understand the current versions of the activities so that the activities created on Sugar Web for the Sugarizer should have similar features to the ones right now.<br />
<br />
<br />
'''A few problems I might face during the implementation in javascript:'''<br />
* Storage of data (audio, images) on the Sugar Web platform.<br />
* Compatibility and adaptability with devices of different sizes(phones, tablets etc) and also touch screen capabilities, if they can be used effectively.<br />
<br />
<br />
<br />
<br />
<br />
'''Libraries in consideration and methods of implementation:'''<br />
<br />
Here are some of the libraries I am considering to use for the project to ease the development process. This is not a static list and can change as and when I am implementing the features of the activities.<br />
# [https://github.com/kripken/speak.js/ speak.js] for text to speech generation in javascript for the ‘Speak’ activity. (GNU GENERAL PUBLIC License)<br />
# Google Translate to generate the audio for given text, also to be used with the ‘Speak’ activity. (This requires us to be online while using the activity but the speech synthesized is of a higher quality).<br />
# [https://github.com/desandro/masonry masonry.js] for clean and simple grid layouts for the ‘Fototoon’ activity. (MIT License)<br />
# [https://github.com/hammerjs/hammer.js hammer.js][https://github.com/hammerjs/hammer.js ]for recognizing and using touch gestures and multi-touch gestures (if needed). (MIT License)<br />
# [https://github.com/desandro/draggabilly draggabilly.js] for simple draggable interfaces for the ‘Fototoon’ activity.<br />
<br />
<br />
<br />
<br />
<br />
These are some libraries that I will look into in order to accelerate the development. I will use an Agile development process also including some iteration and incremental implementation. <br />
<br />
I have downloaded the Moon, Speak and Fototoon xo files and have used them thoroughly to analyze and understand what are the features that each of them provides which I will be implementing. I will try my best to keep the look and feel of the activities to be as similar as possible to the current implementations.<br />
<br />
<br />
'''My timeline:'''<br />
<br />
<br />
<br />
{| style="border-spacing:0;"<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Week'''<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Work Scheduled'''<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 0<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
* Setup a basic MVC architecture in javascript which can be used by the activities (If needed).<br />
* Compatibility checks of libraries with different devices.<br />
* Setup sample codes using the libraries which can be used in the activities as and when needed.<br />
* Take a look at how touch screen capabilities can improve the user experience on mobile devices.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 1 - 19 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Basic UI for the face with eyeballs following the cursor.<br />
* Basic text to speech conversion and use a suitable library for the ‘Type something to hear it’ mode.<br />
* Pitch, rate and language features.<br />
* Number of eyes feature.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 2 - 25 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Mouth motion for the face.<br />
* ‘Ask the robot’ mode and add some basic AI to respond to users.<br />
* Add the ‘Voice Chat / Chat ’ mode. (basic)<br />
* Add types of eyes which the user can select.<br />
* Add types of mouths which the user can select.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 3 - 1 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* ‘Set face from photo’ feature.<br />
* Improve the AI which runs on the ‘Ask the robot’ mode.<br />
* Improve ‘Chat’ mode and make it functional.<br />
<br />
<br />
<br />
<br />
<br />
FotoToon Activity:<br />
* Image upload from journal/local machine.<br />
* Basic box globe(chat box) addition feature and movement lines, enable them to be dragged in the image.<br />
* Full-screen mode.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 4 - 8 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Save as image option.<br />
<br />
* Add other types of globes.<br />
* Add text customization features for text within the different globes.<br />
* Rotation of globes.<br />
* Deletion of globes.<br />
* Add background image for activity.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 5 - 15 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Reordering of images.<br />
* Slideshow and slideshow with timing modes to view the pictures.<br />
* Save as pdf and movie options.<br />
<br />
<br />
<br />
<br />
<br />
Moon Activity:<br />
* Basic UI and moon image.<br />
* Grid view overlay for the image.<br />
* Display information regarding the current state of the moon.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 6 - 22 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity:<br />
* Shade parts of the moon depending on the day.<br />
<br />
* Toggle hemisphere views.<br />
* Save as image option to save the current state of the moon.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Midterm Evaluations<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 7 - 29 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to evaluations:<br />
* Depending on the evaluations improve/fix bugs on the activities etc.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 8 - 6 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity testing and reviews:<br />
* Get detailed feedback on the Speak activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 9 - 13 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity testing and reviews:<br />
* Get detailed feedback on the FotoToon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 10 - 20 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity testing and reviews:<br />
* Get detailed feedback on the Moon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 11 - 27 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities testing:<br />
* Ensure the documentation is done properly.<br />
* Do a final test of all the activities.<br />
* Relax a bit as well :)<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 12 - 3 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities review and evaluation from the Sugar community:<br />
* Ask other members who use these activities on Sugar to review this on Sugarizer and ensure they are satisfied with their experience.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 13 - 10 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to reviews:<br />
* If anything needs to be done after the reviews, I will do it.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 14 - 17 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Final Activity checks:<br />
* Ensure everything works properly and I am ready to submit my project to google.<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Final Evaluations - 21 August<br />
<br />
|}<br />
<br />
<br />
'''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.'''<br />
<br />
I have a strong passion for programming and feel content when I code. I never leave work unattended or halfway through since I feel that not starting the work at all is a lot better than leaving it halfway. I do quite well in other areas as well, my GPA is 9.8/10. I often like to spend time talking to others about their experiences developing something or working for an organization since it helps me learn more about others and how I can improve my ways.<br />
<br />
<br />
I will need to spend about 5 hours per week for 1.5 months to get started with my research in college, but apart from this I don’t have any other commitments, so spending around 6 hrs a day won’t be a problem at all. I often like to take up leadership and responsibility of work that needs to be done as part of college when we work in groups and always finish work on time or earlier if possible.<br />
<br />
<br />
I have also fixed quite a few bugs and added some features to Sugar, so I am quite familiar with the development environment used for developing on Sugar. I have also tried to make a simple activity on sugar for testing purposes, it's the [http://activities.sugarlabs.org/en-US/sugar/addon/4785 Simon Says game].<br />
<br />
<br />
'''Projects I have worked on:'''<br />
# [https://trendspace.pythonanywhere.com/ Trendspace] '''- A shopping website made using the web2py framework.<br />
# [https://github.com/erilyth/OpenGL-C- Cannon Game] '''- A 2D cannon shooter game made entirely using OpenGL and C++.<br />
# [https://github.com/erilyth/OpenGL-3D Adventure Game] '''- A 3D survival game made using OpenGL and C++ with models created using Blender.<br />
# [https://github.com/erilyth/DonkeyKong-Pygame Donkey Kong] '''- A 2D version of the Donkey Kong game made using Pygame.<br />
# [https://github.com/erilyth/Tangram-Game Tangram Game] '''- A version of Tangram(Block Puzzle) developed using Cocos2D-JS targeting mobile devices mainly.<br />
# [https://github.com/Achilles-96/File-sharing-client File Transfer Protocol] '''- A simple file sharing client using which we can share files, check validity using hashes and index based searching. It uses the TCP and UDP (handling losses) protocols for transfer.<br />
# '''FPS Shooter '''- A 3D basic first person shooter game made using Unity in C#.<br />
# '''Box Stacking Game '''- A simple click and drag box stacking game made using Unity in C#.<br />
<br />
<br />
<br />
<br />
<br />
I have also worked on a lot of other smaller projects and also do competitive programming, you can take a look at my [https://github.com/erilyth github profile] and [http://codeforces.com/profile/Erilyth codeforces profile].<br />
<br />
<br />
Here are some screenshots of the games I developed,<br />
* Cannon Game:<br />
[[File:Cannongame-vishal.png|800px]]<br />
<br />
* Adventure Game:<br />
[[File:Adventure1-vishal.png|800px]][[File:Adventure2-vishal.png|800px]]<br />
<br />
* Donkey Kong:<br />
[[File:Dokneykong-vishal.png|800px]]<br />
<br />
* Tangram Game:<br />
[[File:Tangram1.jpg|800px]][[File:Tangram2.jpg|800px]]<br />
<br />
<br />
I use [http://erilyth.github.io/ my website] and my blog to share my projects ([https://github.com/erilyth/My-Website https://github.com/erilyth/My-Website]). I have used Node.js along with Angular.js to develop the website.<br />
<br />
<br />
I often try to follow the principles of “'''DIY'''” (Do It Yourself) and have also worked with electronics and made a few simple robots in the past. My profile on [http://www.instructables.com/member/vishalapr/ instructables.com].<br />
<br />
Some of the projects I have made,<br />
# [http://goo.gl/5z48UJ POV Display]<br />
# [http://goo.gl/xEdT4C Wall Avoiding Robot]<br />
<br />
<br />
<br />
== You and the community ==<br />
<br />
'''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.'''<br />
<br />
<br />
'''My answer:'''<br />
<br />
A lot more students and teachers around the world would get access to &nbsp;some of the best activities on sugar. These activities can then be used on any device which would make them a lot more handy and useful. Some of the most popular apps on Sugar would now be available to use on any Sugarizer device so they can use them wherever they want at their convenience. This would help students learn at their own pace anywhere they want as long as they have a Sugarizer enabled device. Using the Moon activity sitting outside watching the moon during the night and analyzing it, using the Speak, Fototoon activities to learn while travelling etc will allow users to have a much more thorough and immerse experience of using these activities.<br />
<br />
<br />
'''Lionel Laské:'''<br />
<br />
Activities in the Sugarizer Activity Set are 3 of most famous Sugar activities. It's very important to have a full experience of Sugar on any device that these activities must be available into Sugar-Web. Plus these activities was proven during deployment to be very attractive for children using Sugar and at least Speak and Fototoon allow them to express their creativity.<br />
<br />
<br />
'''Walter Bender:'''<br />
<br />
Speak and Fototoons are nice examples of tools that let encourage exploration of narrative. It is central to our pedagogy that we engage learners in constructing and expressing.<br />
<br />
<br />
'''What will you do if you get stuck on your project and your mentor isn't around?'''<br />
<br />
I will try to see if I can figure it out myself, using the internet (Google, Stackoverflow, Quora etc) or use some books. If this doesn’t help then I will try to seek help from the Sugar community on the IRC or send a mail on the developer mailing list. I would also ask my friends here who have great amounts of knowledge on a wide variety of topics and they could help me sort the problem out.<br />
<br />
<br />
'''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?'''<br />
<br />
I have a blog set up accessible from [http://erilyth.github.io/ my website], [http://vishalbatchu.blog.com/ my blog]. I will be updating the status of the project and anything else related to Sugar over there every week. I will use the IRC to get reviews on my work by others and also learn what I need to improve from others. I will document my code properly and use appropriate commit messages (git) so others can take a look at my work easily. If required, I will also create pages on the Sugar Wiki.<br />
<br />
== Miscellaneous ==<br />
<br />
'''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". '''<br />
<br />
[[File:Sugar-vishal.png|800px]]<br />
<br />
<br />
'''Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.'''&nbsp;&nbsp;&nbsp; <br />
* Add a CollabWrapper based Text Editor to Sugar: [https://github.com/samdroid-apps/collabwrapper/pull/1 https://github.com/samdroid-apps/collabwrapper/pull/1] '''Merged'''<br />
* Add export matrix feature to Music Blocks: [https://github.com/walterbender/musicblocks/pull/97 https://github.com/walterbender/musicblocks/pull/97] '''Merged'''<br />
* Collaboration Refactoring in Story: [https://github.com/walterbender/story/pull/4 https://github.com/walterbender/story/pull/4] '''Merged'''<br />
* Save and Load file buttons in Music Blocks: [https://github.com/walterbender/musicblocks/pull/115 https://github.com/walterbender/musicblocks/pull/115] '''Merged'''<br />
* Notification drag to act like a clipboard entry: [https://github.com/sugarlabs/sugar/pull/633/files https://github.com/sugarlabs/sugar/pull/633/files] '''Merged'''<br />
* Add icon hover effects: [https://github.com/llaske/sugarizer/pull/32 https://github.com/llaske/sugarizer/pull/32] '''Open'''<br />
<br />
<br />
<br />
'''If you plan to work on Sugar-Web projects we want to be sure that you're familiar with web technologies, so:'''<br />
* '''Clone the'''[https://github.com/llaske/Sugarizer ][https://github.com/llaske/Sugarizer Sugarizer repository]<br />
* '''Using instructions'''[https://github.com/llaske/Sugarizer#create-your-own-activity ][https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity'''<br />
* '''Send us a screenshot of your new activity executed in Sugarizer'''<br />
<br />
[[File:Sugarizer-vishal.png|800px]]<br />
<br />
<br />
'''Describe a great learning experience you had as a child.'''<br />
<br />
When I was younger I always used to have a negative feeling towards teachers. I used to make fun of them and felt that they come to teach only because they don’t have anywhere else to go. I guess I got these feelings since I didn’t like it when they yelled at us (of course for our own mistakes, but I didn’t realize that then). One day I was called up to teach something to the entire class, it was a topic that I was fairly familiar with so I went up there and started teaching. This is when everything changed, I felt a huge amount of joy and excitement. I realized that teaching is not a profession that is chosen because there is nothing else to choose but because it is probably one of the best things to do! From that point on I have always respected teachers and have always loved to share my knowledge with others, just like teachers do.<br />
<br />
<br />
'''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?'''<br />
<br />
Nope, everything is just fine!<br />
[[Category:2016 GSoC applications]]</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=Summer_of_Code/2016/SugarizerActivitySet&diff=97077Summer of Code/2016/SugarizerActivitySet2016-03-06T07:09:15Z<p>Erilyth: /*Sugarizer Activity Set*/</p>
<hr />
<div>Sugarizer Activity Set<br />
<br />
== About You ==<br />
<br />
'''What is your name?'''<br />
<br />
My name is Batchu Venkat Vishal, I am a 2nd-year undergrad student from [http://www.iiit.ac.in/ International Institute of Information Technology Hyderabad] (IIITH)<br />
<br />
<br />
'''What is your email address?'''<br />
<br />
[mailto:vishal.batchu@students.iiit.ac.in vishal.batchu@students.iiit.ac.in]<br />
<br />
Alternate, [mailto:vishalvenkat71@gmail.com vishalvenkat71@gmail.com]<br />
<br />
<br />
'''What is your Sugar Labs wiki username?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your IRC nickname on irc.freenode.net?'''<br />
<br />
erilyth<br />
<br />
<br />
'''What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)'''<br />
<br />
My native language is Telugu, I am fluent in English and speak a bit of Hindi.<br />
<br />
<br />
'''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.)'''<br />
<br />
I'm located in Hyderabad (Telangana), India.<br />
<br />
I'm planning to work 12:00 UTC - 18:00 UTC on Monday, Tuesday, Wednesday, Thursday, Friday and Saturday and 8:00 UTC - 19:00 UTC on Sundays.<br />
<br />
<br />
'''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?'''<br />
<br />
I am new to open source, but I have contributed to some open source organizations which were founded in my college ( [https://felicity.iiit.ac.in/ College Fest Website] ([https://github.com/felicity-iiith/ https://github.com/felicity-iiith/]), [http://osdg.iiit.ac.in/ College OSDG website] ([https://github.com/OSDG-IIITH https://github.com/OSDG-IIITH]) ). Sugar Labs and OLPC have amazed me, I have always wanted to do something which would help others learn especially when I think of all the kids out there who are unable to get a quality education. When I stumbled upon SugarLabs I knew it was the way in which I could use my knowledge and help spread educational tools to millions of others out there. Open source is the best way to get exposure and collaborate with lots of others just like us, and get to know about their views and what others think. It's a means by which I can make a difference in the society.<br />
<br />
== About your project ==<br />
<br />
<br />
<br />
'''What is the name of your project?'''<br />
<br />
Sugarizer Activity Set<br />
<br />
<br />
'''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? What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; 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 (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.'''<br />
<br />
The project is a full rewriting of a few Sugar apps which will be ported to Sugar Web:<br />
# Moon<br />
# Speak<br />
# Fototoon<br />
<br />
<br />
<br />
These activities will be ported using the Sugar Web Framework in order to reach a much larger audience. The Sugarizer/Web apps are available to a lot of children since they are supported by any Web Browser or an XO. This would enable every child to have access and use these activities at their convenience. Children should be able to have the same learning capabilities no matter what platform they are using to run the activities which can be achieved with Sugarizer.<br />
<br />
<br />
The main technologies that will be used are HTML5 and Javascript. Understanding Python source code will be required to understand the current versions of the activities so that the activities created on Sugar Web for the Sugarizer should have similar features to the ones right now.<br />
<br />
<br />
'''A few problems I might face during the implementation in javascript:'''<br />
* Storage of data (audio, images) on the Sugar Web platform.<br />
* Compatibility and adaptability with devices of different sizes(phones, tablets etc) and also touch screen capabilities, if they can be used effectively.<br />
<br />
<br />
<br />
<br />
<br />
'''Libraries in consideration and methods of implementation:'''<br />
<br />
Here are some of the libraries I am considering to use for the project to ease the development process. This is not a static list and can change as and when I am implementing the features of the activities.<br />
# [https://github.com/kripken/speak.js/ speak.js] for text to speech generation in javascript for the ‘Speak’ activity. (GNU GENERAL PUBLIC License)<br />
# Google Translate to generate the audio for given text, also to be used with the ‘Speak’ activity. (This requires us to be online while using the activity but the speech synthesized is of a higher quality).<br />
# [https://github.com/desandro/masonry masonry.js] for clean and simple grid layouts for the ‘Fototoon’ activity. (MIT License)<br />
# [https://github.com/hammerjs/hammer.js hammer.js][https://github.com/hammerjs/hammer.js ]for recognizing and using touch gestures and multi-touch gestures (if needed). (MIT License)<br />
# [https://github.com/desandro/draggabilly draggabilly.js] for simple draggable interfaces for the ‘Fototoon’ activity.<br />
<br />
<br />
<br />
<br />
<br />
These are some libraries that I will look into in order to accelerate the development. I will use an Agile development process also including some iteration and incremental implementation. <br />
<br />
I have downloaded the Moon, Speak and Fototoon xo files and have used them thoroughly to analyze and understand what are the features that each of them provides which I will be implementing. I will try my best to keep the look and feel of the activities to be as similar as possible to the current implementations.<br />
<br />
<br />
'''My timeline:'''<br />
<br />
<br />
<br />
{| style="border-spacing:0;"<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Week'''<br />
| style="background-color:#d9d9d9;border:0.05pt solid #000000;padding:0.185cm;"| '''Work Scheduled'''<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 0<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
* Setup a basic MVC architecture in javascript which can be used by the activities (If needed).<br />
* Compatibility checks of libraries with different devices.<br />
* Setup sample codes using the libraries which can be used in the activities as and when needed.<br />
* Take a look at how touch screen capabilities can improve the user experience on mobile devices.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 1 - 19 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Basic UI for the face with eyeballs following the cursor.<br />
* Basic text to speech conversion and use a suitable library for the ‘Type something to hear it’ mode.<br />
* Pitch, rate and language features.<br />
* Number of eyes feature.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 2 - 25 May<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* Mouth motion for the face.<br />
* ‘Ask the robot’ mode and add some basic AI to respond to users.<br />
* Add the ‘Voice Chat / Chat ’ mode. (basic)<br />
* Add types of eyes which the user can select.<br />
* Add types of mouths which the user can select.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 3 - 1 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity:<br />
* ‘Set face from photo’ feature.<br />
* Improve the AI which runs on the ‘Ask the robot’ mode.<br />
* Improve ‘Chat’ mode and make it functional.<br />
<br />
<br />
<br />
<br />
<br />
FotoToon Activity:<br />
* Image upload from journal/local machine.<br />
* Basic box globe(chat box) addition feature and movement lines, enable them to be dragged in the image.<br />
* Full-screen mode.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 4 - 8 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Save as image option.<br />
<br />
* Add other types of globes.<br />
* Add text customization features for text within the different globes.<br />
* Rotation of globes.<br />
* Deletion of globes.<br />
* Add background image for activity.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 5 - 15 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity:<br />
* Reordering of images.<br />
* Slideshow and slideshow with timing modes to view the pictures.<br />
* Save as pdf and movie options.<br />
<br />
<br />
<br />
<br />
<br />
Moon Activity:<br />
* Basic UI and moon image.<br />
* Grid view overlay for the image.<br />
* Display information regarding the current state of the moon.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 6 - 22 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity:<br />
* Shade parts of the moon depending on the day.<br />
<br />
* Toggle hemisphere views.<br />
* Save as image option to save the current state of the moon.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Midterm Evaluations<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 7 - 29 June<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to evaluations:<br />
* Depending on the evaluations improve/fix bugs on the activities etc.<br />
<br />
<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Week 8 - 6 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Speak Activity testing and reviews:<br />
* Get detailed feedback on the Speak activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 9 - 13 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| FotoToon Activity testing and reviews:<br />
* Get detailed feedback on the FotoToon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 10 - 20 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Moon Activity testing and reviews:<br />
* Get detailed feedback on the Moon activity from the mentors.<br />
* Test the activity thoroughly.<br />
* Fix any errors/bugs that I come across.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 11 - 27 July<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities testing:<br />
* Ensure the documentation is done properly.<br />
* Do a final test of all the activities.<br />
* Relax a bit as well :)<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 12 - 3 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| All Activities review and evaluation from the Sugar community:<br />
* Ask other members who use these activities on Sugar to review this on Sugarizer and ensure they are satisfied with their experience.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 13 - 10 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Respond to reviews:<br />
* If anything needs to be done after the reviews, I will do it.<br />
<br />
<br />
<br />
|-<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Week 14 - 17 August<br />
| style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| Final Activity checks:<br />
* Ensure everything works properly and I am ready to submit my project to google.<br />
<br />
<br />
<br />
|-<br />
| colspan="2" style="background-color:#f3f3f3;border:0.05pt solid #000000;padding:0.185cm;"| <br />
<br />
Final Evaluations - 21 August<br />
<br />
|}<br />
<br />
<br />
'''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.'''<br />
<br />
I have a strong passion for programming and feel content when I code. I never leave work unattended or halfway through since I feel that not starting the work at all is a lot better than leaving it halfway. I do quite well in other areas as well, my GPA is 9.8/10. I often like to spend time talking to others about their experiences developing something or working for an organization since it helps me learn more about others and how I can improve my ways.<br />
<br />
<br />
I will need to spend about 5 hours per week for 1.5 months to get started with my research in college, but apart from this I don’t have any other commitments, so spending around 6 hrs a day won’t be a problem at all. I often like to take up leadership and responsibility of work that needs to be done as part of college when we work in groups and always finish work on time or earlier if possible.<br />
<br />
<br />
I have also fixed quite a few bugs and added some features to Sugar, so I am quite familiar with the development environment used for developing on Sugar. I have also tried to make a simple activity on sugar for testing purposes, it's the [http://activities.sugarlabs.org/en-US/sugar/addon/4785 Simon Says game].<br />
<br />
<br />
'''Projects I have worked on:'''<br />
# [https://trendspace.pythonanywhere.com/ Trendspace] '''- A shopping website made using the web2py framework.<br />
# [https://github.com/erilyth/OpenGL-C- Cannon Game] '''- A 2D cannon shooter game made entirely using OpenGL and C++.<br />
# [https://github.com/erilyth/OpenGL-3D Adventure Game] '''- A 3D survival game made using OpenGL and C++ with models created using Blender.<br />
# [https://github.com/erilyth/DonkeyKong-Pygame Donkey Kong] '''- A 2D version of the Donkey Kong game made using Pygame.<br />
# [https://github.com/erilyth/Tangram-Game Tangram Game] '''- A version of Tangram(Block Puzzle) developed using Cocos2D-JS targeting mobile devices mainly.<br />
# [https://github.com/Achilles-96/File-sharing-client File Transfer Protocol] '''- A simple file sharing client using which we can share files, check validity using hashes and index based searching. It uses the TCP and UDP (handling losses) protocols for transfer.<br />
# '''FPS Shooter '''- A 3D basic first person shooter game made using Unity in C#.<br />
# '''Box Stacking Game '''- A simple click and drag box stacking game made using Unity in C#.<br />
<br />
<br />
<br />
<br />
<br />
I have also worked on a lot of other smaller projects and also do competitive programming, you can take a look at my [https://github.com/erilyth github profile] and [http://codeforces.com/profile/Erilyth codeforces profile].<br />
<br />
<br />
Here are some screenshots of the games I developed,<br />
* Cannon Game:<br />
[[File:Cannongame-vishal.png|800px]]<br />
<br />
* Adventure Game:<br />
[[File:Adventure1-vishal.png|800px]][[File:Adventure2-vishal.png|800px]]<br />
<br />
* Donkey Kong:<br />
[[File:Dokneykong-vishal.png|800px]]<br />
<br />
* Tangram Game:<br />
[[File:Tangram1.jpg|800px]][[File:Tangram2.jpg|800px]]<br />
<br />
<br />
I use [http://erilyth.github.io/ my website] and my blog to share my projects ([https://github.com/erilyth/My-Website https://github.com/erilyth/My-Website]). I have used Node.js along with Angular.js to develop the website.<br />
<br />
<br />
I often try to follow the principles of “'''DIY'''” (Do It Yourself) and have also worked with electronics and made a few simple robots in the past. My profile on [http://www.instructables.com/member/vishalapr/ instructables.com].<br />
<br />
Some of the projects I have made,<br />
# [http://goo.gl/5z48UJ POV Display]<br />
# [http://goo.gl/xEdT4C Wall Avoiding Robot]<br />
<br />
<br />
<br />
== You and the community ==<br />
<br />
'''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.'''<br />
<br />
<br />
'''My answer:'''<br />
<br />
A lot more students and teachers around the world would get access to &nbsp;some of the best activities on sugar. These activities can then be used on any device which would make them a lot more handy and useful. Some of the most popular apps on Sugar would now be available to use on any Sugarizer device so they can use them wherever they want at their convenience. This would help students learn at their own pace anywhere they want as long as they have a Sugarizer enabled device. Using the Moon activity sitting outside watching the moon during the night and analyzing it, using the Speak, Fototoon activities to learn while travelling etc will allow users to have a much more thorough and immerse experience of using these activities.<br />
<br />
<br />
'''Lionel Laské:'''<br />
<br />
Activities in the Sugarizer Activity Set are 3 of most famous Sugar activities. It's very important to have a full experience of Sugar on any device that these activities must be available into Sugar-Web. Plus these activities was proven during deployment to be very attractive for children using Sugar and at least Speak and Fototoon allow them to express their creativity.<br />
<br />
<br />
'''Walter Bender:'''<br />
<br />
Speak and Fototoons are nice examples of tools that let encourage exploration of narrative. It is central to our pedagogy that we engage learners in constructing and expressing.<br />
<br />
<br />
'''What will you do if you get stuck on your project and your mentor isn't around?'''<br />
<br />
I will try to see if I can figure it out myself, using the internet (Google, Stackoverflow, Quora etc) or use some books. If this doesn’t help then I will try to seek help from the Sugar community on the IRC or send a mail on the developer mailing list. I would also ask my friends here who have great amounts of knowledge on a wide variety of topics and they could help me sort the problem out.<br />
<br />
<br />
'''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?'''<br />
<br />
I have a blog set up accessible from [http://erilyth.github.io/ my website], [http://vishalbatchu.blog.com/ my blog]. I will be updating the status of the project and anything else related to Sugar over there every week. I will use the IRC to get reviews on my work by others and also learn what I need to improve from others. I will document my code properly and use appropriate commit messages (git) so others can take a look at my work easily. If required, I will also create pages on the Sugar Wiki.<br />
<br />
== Miscellaneous ==<br />
<br />
'''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". '''<br />
<br />
[[File:Sugar-vishal.png|800px]]<br />
<br />
<br />
'''Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.'''&nbsp;&nbsp;&nbsp; <br />
* Add a CollabWrapper based Text Editor to Sugar: [https://github.com/samdroid-apps/collabwrapper/pull/1 https://github.com/samdroid-apps/collabwrapper/pull/1] '''Merged'''<br />
* Add export matrix feature to Music Blocks: [https://github.com/walterbender/musicblocks/pull/97 https://github.com/walterbender/musicblocks/pull/97] '''Merged'''<br />
* Collaboration Refactoring in Story: [https://github.com/walterbender/story/pull/4 https://github.com/walterbender/story/pull/4] '''Merged'''<br />
* Save and Load file buttons in Music Blocks: [https://github.com/walterbender/musicblocks/pull/115 https://github.com/walterbender/musicblocks/pull/115] '''Merged'''<br />
* Notification drag to act like a clipboard entry: [https://github.com/sugarlabs/sugar/pull/633/files https://github.com/sugarlabs/sugar/pull/633/files] '''Merged'''<br />
<br />
<br />
<br />
<br />
<br />
'''If you plan to work on Sugar-Web projects we want to be sure that you're familiar with web technologies, so:'''<br />
* '''Clone the'''[https://github.com/llaske/Sugarizer ][https://github.com/llaske/Sugarizer Sugarizer repository]<br />
* '''Using instructions'''[https://github.com/llaske/Sugarizer#create-your-own-activity ][https://github.com/llaske/Sugarizer#create-your-own-activity here] develop your first Sugar-Web activity'''<br />
* '''Send us a screenshot of your new activity executed in Sugarizer'''<br />
<br />
[[File:Sugarizer-vishal.png|800px]]<br />
<br />
<br />
'''Describe a great learning experience you had as a child.'''<br />
<br />
When I was younger I always used to have a negative feeling towards teachers. I used to make fun of them and felt that they come to teach only because they don’t have anywhere else to go. I guess I got these feelings since I didn’t like it when they yelled at us (of course for our own mistakes, but I didn’t realize that then). One day I was called up to teach something to the entire class, it was a topic that I was fairly familiar with so I went up there and started teaching. This is when everything changed, I felt a huge amount of joy and excitement. I realized that teaching is not a profession that is chosen because there is nothing else to choose but because it is probably one of the best things to do! From that point on I have always respected teachers and have always loved to share my knowledge with others, just like teachers do.<br />
<br />
<br />
'''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?'''<br />
<br />
Nope, everything is just fine!<br />
[[Category:2016 GSoC applications]]</div>Erilythhttps://wiki.sugarlabs.org/index.php?title=File:Cannongame-vishal.png&diff=97076File:Cannongame-vishal.png2016-03-06T06:58:07Z<p>Erilyth: </p>
<hr />
<div></div>Erilythhttps://wiki.sugarlabs.org/index.php?title=File:Adventure2-vishal.png&diff=97075File:Adventure2-vishal.png2016-03-06T06:57:28Z<p>Erilyth: </p>
<hr />
<div></div>Erilythhttps://wiki.sugarlabs.org/index.php?title=File:Adventure1-vishal.png&diff=97074File:Adventure1-vishal.png2016-03-06T06:51:13Z<p>Erilyth: </p>
<hr />
<div></div>Erilythhttps://wiki.sugarlabs.org/index.php?title=File:Dokneykong-vishal.png&diff=97073File:Dokneykong-vishal.png2016-03-06T06:50:31Z<p>Erilyth: </p>
<hr />
<div></div>Erilythhttps://wiki.sugarlabs.org/index.php?title=File:Dokneyknog-vishal.png&diff=97072File:Dokneyknog-vishal.png2016-03-06T06:49:19Z<p>Erilyth: </p>
<hr />
<div></div>Erilythhttps://wiki.sugarlabs.org/index.php?title=File:Tangram2.jpg&diff=97071File:Tangram2.jpg2016-03-06T06:48:46Z<p>Erilyth: </p>
<hr />
<div></div>Erilythhttps://wiki.sugarlabs.org/index.php?title=File:Tangram1.jpg&diff=97070File:Tangram1.jpg2016-03-06T06:48:18Z<p>Erilyth: </p>
<hr />
<div></div>Erilythhttps://wiki.sugarlabs.org/index.php?title=File:Sugar-vishal.png&diff=97069File:Sugar-vishal.png2016-03-06T06:47:40Z<p>Erilyth: </p>
<hr />
<div></div>Erilythhttps://wiki.sugarlabs.org/index.php?title=File:Sugarizer-vishal.png&diff=97068File:Sugarizer-vishal.png2016-03-06T06:45:04Z<p>Erilyth: </p>
<hr />
<div></div>Erilyth