Changes

Created page with "Google Summer of Code - 2017 Sugar Labs Proposal ==Improving ASLO== OVERVIEW ===About Me=== * Name:​ Jatin Dhankhar * Email: ​dhankhar.jatin@gmail.com (Primary), jatin@jat..."
Google Summer of Code - 2017
Sugar Labs Proposal
==Improving ASLO==
OVERVIEW
===About Me===
* Name:​ Jatin Dhankhar
* Email: ​dhankhar.jatin@gmail.com (Primary), jatin@jatindhankhar.in (Professional)
* IRC: ​jatindhankhar
* Website: ​https://jatindhankhar.in
* Languages: ​Hindi (Native), English
* Location: ​I currently live in New Delhi, INDIA. My current timezone is UTC+05:30. I intend
to work from 9:30 AM to 10:00 PM which can be adjusted to 8:00 AM to 11:30 PM AM in
case of urgent work.

===Biographical Information===
My name is Jatin Dhankhar. I am a final year undergraduate student at University of Delhi
studying Computer Science. I learned Android development from Android Developer
Nanodegree at Udacity and currently learning about Self Driving Cars from Self Driving Car
Engineer Nanodegree, also from Udacity. I truly believe that computers and intelligent adaptive
systems will change the future. I am passionate about helping and reaching people via my work
and touching their lives in a positive manner. I made an app for farmers to help them keep track
of cold stores, market prices and other necessities that they need to take care of while producing
crop. App is named Krishi (hindi for Farming) and it helped me win App Showcase jointly
organized by Google and Udacity, through which I landed an internship at Tata Trusts and helped
them in researching current apps and use of mobile apps to help Tribal people of Orissa. I am
familiar with Deep Learning,Computer Vision, Web development ( my strong area is Backend
development but know enough Front end to get the job done) and android development.
Here are some relevant links.

Github - https://github.com/jatindhankhar

Resume - https://jatindhankhar.in/files/resume.pdf

LinkedIN - https://www.linkedin.com/in/jatindhankhar

===Participation in Open Source===
I have been a big open source enthusiast since I got to know about the concept back in 2013. I
have written numerous articles for Open Source for You Magazine, formerly known as Linux for
You. Here are the article titles I have written
* August 2015 - Using BiiCode, the C/C++ Dependency Manager
* February 2015 - Automating Browsers with Ruby and Watir-webdriver
* September 2014 - Nix A Portable and Powerful Package Manager
* July 2014 - Ghost: A Powerful Blogging Platform
* April 2014 - Using Xposed Framework to Tweak Your Android
* March 2014 - Create an Android-friendly Hotspot in Linux
* February 2014 - Preview Your Files in GNOME

I am also a member of Open Source Self Driving Group which aims to bring knowledge of self
driving cars to everyone so that everyone can contribute to it, I mainly work on improving website
and blog.

I have contributed to
* https://github.com/adambard/learnxinyminutes-docs (Code documentation written as code! How
novel and totally my idea!)
* https://github.com/sftrabbit/CppSamples-Samples (A repository of modern C++ samples curated
by the community.)
* https://github.com/bento-io/collection (A guided tour through the best free coding tutorials on the
web)
* https://github.com/privly
You can visit my Github Profile (https://github.com/jatindhankhar) for more details
===Participation in Open Source===
Whenever I have an awesome idea, most of the time it ends up being a personal project. Some
of my personal projects are
* https://github.com/jatindhankhar/intersect - Intersect - Send and propagate notifications
via Email and SMS. Currently used by my College Authorities
* https://github.com/jatindhankhar/shorl - I made a simple and native (unofficial) client for
the Goo.gl as part of my Udacity Android Nanodegree Program and it was my Capstone
Project as well. It is early beta phase, here is the play store Link
(https://play.google.com/store/apps/details?id=in.jatindhankhar.shorl)
* https://github.com/jatindhankhar/flif: I made this little fun app for the Flockathon. My app
was inspired by the stock giphy extension which lets users upload gifs by specifying a
keyword but this was limited since user cannot select the GIF he wants, one of th gif from
relevant to that keyword is uploaded. So I introduced an app that let's user select the GIF
that he/she wants and send/share it to somebody. Youtube demo can be seen here
https://www.youtube.com/watch?v=6O3rFn4KPng&feature=youtu.be

==About my GSOC Project==
http://activities.sugarlabs.org/, often addressed as ASLO​ is the Sugar Labs app store, where
activities are hosted and downloaded. It serves as main network for distribution of apps/activities
available for the system and helps users find relevant and interesting activities, which would
ultimately help them learn and grow. Main aim is to maintain and fix ASLO, adding new and
meaningful features that help make ASLO easy to use both for developers and users, doing
intended operation with as much minimal intervention as possible.

===GOALS===
Overview can be divided into following sub goals:
* Improve look/theme of ASLO​: Current theme of ASLO seems outdated in comparison to
rest of the sugar ecosystem and making it look modern and easy to user. Here is an
instance developer/user register is not visually appealing and there is not sufficient
whitespace.
* Maintain ASLO: ​This involves fixing the platform, closing in bugs and finding new ones,
also migration to new languages and tooling. For instance making project work with new
version of Sphinx, since current version used in source repo is 0.9.9-rc2 (which is
over two years old and archived).
Relevant PR - https://github.com/sugarlabs/aslo/pull/2
* Adding a CI Pipeline: ​Adding a CI pipeline will help test integrity of the project, run
automate tests with each new pull request and help collaboration easier as well as
automate the deployment.
* Develop new ASLO: ​ Following point conflicts with second point, but seems a more viable
option than maintaining a slightly dormant system. Develop a new ASLO, preferably under
a new subdomain, like activities3.sugarlabs.org, using Django as backend and using git
based backend for storing activities to ensure easy rollback and maintenance for
developers. Arch Linux, did the same for user provided packages, this approach can be
quite useful Arch User Repository. Include robust and useful metadata available which
can help in sorting,categorization based upon version number of the activity itself, sugar
version with which activity is compatible.
===Benefits to Sugar Labs===
Above mentioned goals will help Sugar Lab by
* Giving users relevant activities first​ (if we implement recommendation engine),
* Help users and developers communicate and discuss bug reports and features ​(if we
improve review system and add option to send bug reports)
* Automate deployment and improve collaboration ​(if we add a CI pipeline and migrate to
new version of the tools/languages used)
* Improve UI and UX to create enjoyable experience ​(if we improve the look/theme of the
website and encrypt our emails)
===Timeline===
May 4 - May 30 Community bonding, getting to know
users, conducting User surveys based
on mockups and getting constant
feedback from users and other fellow
developers as well discuss technical
preferences and implementations of
sub goals with mentors

June 30 - July 24 Implement suggested implementations
Add CI pipeline
Encrypt outbound emails
Apply theme (as decided by User
survey and discussion)

July 25 - August 20 Implement recommendation engine
and review system along with new
features

August 20 - September 1 Polish ASLO, weed out remaining bugs
and gather feedback

September 2 - September 4 Document all findings preferably
(although documenting will happen
during all phase but during period, it
will be indexed and well organized)
into Wiki and continue working on
adding features beyond the scope of
the project.

===Me and the community===
* If your project is successfully completed, what will its impact be on the Sugar Labs
community? Give 3 answers, each 1-3 paragraphs in length. The first one should be
yours. The other two should be answers from members of the Sugar Labs community, at
least one of whom should be a Sugar Labs GSoC mentor. Provide email contact
information for non-GSoC mentors.
* Success of this project will help make Sugar more fun and accessible. It’s often noticed
that Software Centers help make a platform. Some notable examples include Android
and Ubuntu. Making more third party activities available via ASLO would ensure that
Sugar reaches both new users and developers. It will also ensure that many developers
(not necessarily Sugar members) can reach children and help create tools for them,
which would help them learn new and interesting things
;Walter Bender (Quoting email conversation): Most notably, the notification system is really broken. No indication by email that
there are new activities or updates to review. Otherwise, this looks great.
;Tony Anderson (Quoting email conversation): The ASLO site is in desparate need of work. At the moment I am trying to find out
which of the activities actually work in the current release of Sugar. The library currently has
about 600 activities. A Sugar activity is intended to be self-contained (any dependencies not
satisfied by Sugar are to be incorporated in the bundle). Naturally, an activity should work on
any Sugar. However, this situation is becoming very complicated. First, two of the XO models
(1 and 1.5) have Intel 32 bit architecture processors. The others (1.75 and 4) have Arm
processors. Some of the activities incorporate binary modules which limit their use. The Sugar
community wishes to support Sugar on a range of platforms. For mobile devices, Lionel Laske
is developing Sugarizer. While traditional activities were implemented in Python (with some
binary exceptions using Java or C), Sugarizer activities are written in Javascript (HTML5 and
CSS). Naturally a trend in modern computers is to 64 bit architecture (AMD 64).

What will you do if you get stuck on your project and your mentor isn't around?
* There are lots of information available. People on IRC and the dev mailing list seems
friendly and helpful, also my experience with stackoverflow has been nice.

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?
* Via blogs, mailing lists and IRC. This also helps others suggest and review my work :)