Changes

Jump to navigation Jump to search
Created page with " == '''About Me''' == '''What is your name?''' Shrey Anand '''What is your email address?''' Email Address - shrey.anand@ymail.com, shreyanandwhatever@gmail.com '''What i..."

== '''About Me''' ==
'''What is your name?'''

Shrey Anand

'''What is your email address?'''

Email Address - shrey.anand@ymail.com, shreyanandwhatever@gmail.com

'''What is your Sugar Labs wiki username?'''

Sugar Labs wiki Username– Shrey

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

IRC nickname on irc.freenode.net''' ''':
shrey_yay

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

'''My first language''' is Hindi. I’m fluent in English.

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

I live in New Delhi, India(Standard Time +0530 UTC) '''I tend to work from 4.00 – 20-00 hours (UTC)'''

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

I have not worked on a project before this in open source. I started coding an year back. I’m now
comfortable in C, C++, python , java and JavasScript. I’ve learned these
languages and made elementary programs with them and participated in
competitive programming but I think open source projects are a great way of implementing these languages, since you can read code
written by professionals, improve them, and then write your own code.
As stated by Richard Stallman in one
of his interviews that students in colleges should contribute to open source as
their college projects instead of making new projects from scratch, I think
open source projects gives us a vantage point to real and professional
programming. This summer I would like to contribute to Sugar Labs for the port
of ImageViewer activity in JavaScript.

== '''About my project''' ==

'''What is the name of your project?'''

ImageViewer JS (port of ImageViewer activity)

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

==='''APPLICATION FEATURES''' ===

* The application will be able to view images from local disk or web
* It will be able to view and edit the images, rotate, scale them.
* It will have advanced image processing features such as
1) Crop, resize

2) Control brightness, contrast, sharpness, noise etc.

3) Apply effects like sepia ,grayscale ,vintage, lomo etc.

4) Control of RGB colours to induce learning and creativity. Three sliders for R, G, B, with which children can increase or decrease respective values of the pixels of the image. if they increase all of them by same quantity brightness will increase so they can understand how brightness changes!

5) For convolution filters, we can have an input matrix(3*3) in which weights can be adjusted by the students.

* It will support Slide show of images
* It will also support text addition
* Drag and drop option
* Save edited image
* The application will also have Exif support.
* It will have touch interface for the devices supporting touch technology.
* The application will have a Plugin mechanism for adding further effects and features.
* The application will have a “'''fun facts”''' or “ '''tutorial'''” section. In this section children will be introduced to the world of pixels. How pixels make an image and how they can be manipulated using the application. Each filter will be explained through description/ images/ animations. This will encourage them to think out of the box and if they think their effects created through RGB data manipulation, are good enough they can create their plugin.Reference links for further study will be given.
* Documentation

'''USER INTERFACE'''

* The UI designed will be different from existing Python Imageviewer activity and will have '''Pedagogical significance. '''Children''' of ages young (3–5), mid-range (6–8), and older (9–12+) have different likings of UI of web apps as shown by studies. (source '''http://www.nngroup.com/articles/childrens-websites-usability-issues/'''
<nowiki> </nowiki> ) '''
* '''A User Interface with bright colors, medium-large font will be designed appealing to the minds of all children belonging to all age group. '''

=== '''APPLICATION FRAMEWORK/LIBRARIES USED''' ===

* The application will use HTML5, CSS and JavaScript
* In JavaScript two libraries will be used –

1) JQuery- for transitions ,and other events

2) Most filters will be written from scratch in javaScript so that they can be explained easily to the users.

3) Caman.JS- It is a predefined library for effects, It’ll be used only for much advanced effects and filters.

* The application will not use Webgl, instead it will use canvas 2D because for a small number of objects the difference is not much whereas canvas 2D is supported by more number of browsers. Source( https://developer.tizen.org/dev-guide/2.2.0/org.tizen.web.appprogramming/html/guide/w3c_guide/graphics_guide/performance_comparison.htm)


'''What is the timeline for development of your project? The Summer of Code work period is from May 25 - August 28 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'''
{|

|
'''WEEK'''

|
'''TASK'''

|-
|
27 April - 11 May

|
Pre program week 1 – Discuss the
<nowiki> </nowiki> features required, libraries to be used, information to be shared

|-
|
11May -25 May

|
Work and Plan out the design of
<nowiki> </nowiki> the application

|-
|
25 May - 1 June

|
Create the structure
<nowiki> </nowiki> HTML,CSS (semester exams in college).

|-
|
1 June – 8 June

|
Create the basic JavaScript to
<nowiki> </nowiki> load images ,basic features and UI

|-
|
8 June – 15 June

|
Add features both basic and
<nowiki> </nowiki> advance, tutorials initiation

|-
|
15 june – 26 June

|
Plug in mechanism, touch interface

|-
|
26 June – 3 July

|
Mid term Evaluation Buffer week

|-
|
3 July – 10 July

|
Check the code in multiple
<nowiki> </nowiki> browsers, testing

|-
|
10 July – 22 July

|
Present the code in front of kids
<nowiki> </nowiki> and teachers, note the challenges faced and collect their feedback, enhance
<nowiki> </nowiki> tutorials.

|-
|
22 July – 5 August

|
Make changes to code according to
<nowiki> </nowiki> the feedback, finalize

|-
|
5 August – 11 August

|
Clean up UI, Fix bugs, Write documentation

|-
|
11 Aug – 21 Aug

|
Wrap up the complete work and
<nowiki> </nowiki> submit the code for Final Evaluations

|}
=== 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. ===


* I joined sugarlabs a month back and from then I’m only concentrating on ImageViewer activity, I was considering to improve the original python imageviewer as a project but since this time focus was on Javascript and a port of imageviewer was required, I learned Javascript and am determined to make a well designed, structured ImgeViewer.

* I have developed a '''prototype''' to show how the application flow will be and how its interface can look like.

https://github.com/Shreyanand/ImageViewerJS

* Creativity- The project focuses on both the working code as well as the interface of the application equally, so like in my prototype the UI of the application can be made more attractive and child friendly.


* Optimization – I believe in creating code that is optimized to its best. A simple example : preloading images using image object of javascript instead of creating HTML img. This helps in speeding up. Source( http://www.techrepublic.com/article/preloading-and-the-javascript-image-object)

* I’m familiar with submission, review, Github process

* I’ve no prior experience with projects like this but I’m an enthusiastic programmer and I enjoy coding.

* I was rank 28 in my country in a programming competition organized by Institute of Electrical and Electronics Engineers ('''IEEE''') called IEEExtreme

* I enjoy working with C,C++,java,Python, and JavaScript


== '''You and the community''' ==

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

=== '''My thoughts:''' ===

ImageViewer activity is an important cog in the sugar labs machine, It provides a graphic visualization of content. No educational material is complete without Images and Imageviewer is an essential program to view them. Sugarlabs is creating web support for children who can’t afford a OLPC laptop, so Imageviewer in javascript running in any browser will help out to reach many more children who can benefit from sugar.This ImageViewer will have new child-friendly UI and many new exciting features.One of the most important benefits of this activity is that it will induce learning. Image processing is a vast field and many creative things can be done through it. My application will also '''focus on how children can understand pixel manipulation'''. Through this they can learn how filters actually work and they can create their own effects through RGB colour manipulation of pixels.

______________________ mentor’s
thoughts______________________________________

=== '''What will you do if you get stuck on your project and your mentor isn't around?''' ===

Getting stuck is not an option, If a problem occurs and my mentor isn’t around then

1)I'm sure there will always be willing developers from the sugar community who can
help

2)IRCand mailing lists of sugar are a great way of asking doubts

3)Internet is always a nonperishable source

4)I’ve subscription to libraries if needed

5)I’ve friends and teachers in college who’ll be ready to help whenever I need
it.

=== '''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?''' ===

* Create a '''Wiki page''' for overall project state containing: ToDo, wishlist, setup, how-to send patches/pull reqs, etc.
* Maintain a '''blog''' for detailed weekly progress and how the development is coming along.
* Questions asked via '''IRC''' and/or mailing list.
* '''Major milestones'''
<nowiki> </nowiki> announced to Community via '''mailing list'''.

=== '''Miscellaneous''' ===

'''We want to make sure that you can set up a development environment before the summer starts. Please do ''one'' of the following:'''
'''Send us a link to a screenshot of your Sugar development environment with the following modification: when you hover over the XO-person icon in the middle of Home view, the drop-down text should have your email in place of "logout".'''

<gallery>
https://github.com/Shreyanand/ImageViewerJS/blob/master/Icons/sc.png | Screenshot of environment
</gallery>

=== '''Describe a great learning experience you had as a child.''' ===
I’ve always been a keen learner . I like to explore new things. As a child I was always fascinated by how laws of nature worked in rhythm explained by simple mathematical formulas, Later in my life when I started coding, I realized it is nothing but a structure of logical statements just like how nature works. The fact that I can create anything in this virtual world encourages me to code.

=== '''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?''' ===

<category>
2015 GSoC applications | ImageViewerJS
</category>
44

edits

Navigation menu