Summer of Code/2016/Turtle Confusion/Flags JS

< Summer of Code‎ | 2016
Revision as of 13:38, 25 March 2016 by Love Mehta (talk | contribs) (→‎Miscellaneous)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
                                      Porting Turtle Confusion and Turtle Flags

About You

What is your name?

My name is Love Mehta. I am a Bachelor of Technology (B.Tech), Sophomore Year, Computer Science and Engineering undergraduate student at Indian Institute of Technology, Ropar.

What is your email address?

My Primary Email - lovemehta.me@gmail.com
Alternate Email - 2014csb1018@iitrpr.ac.in

What is your Sugar Labs wiki username?

Love Mehta

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

lovemehta

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

I am a native speaker of Hindi, But I am fluent in English as well.

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 Punjab, India. And I tend to work from 11.00am to 9.30pm UTC on weekdays and 3.30 am to 9.30pm UTC on weekends but this is adjustable.

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 want to work in open source because I believe in software freedom. I use Ubuntu for my day­to­day work and software development. I also use several other open source services like Libreoffice,Moodle, Mozilla­ Firefox etc. Open ­Source development has introduced me to a whole new world of software development which I was unaware of previously. It has been a great experience to learn new frameworks (like Phaser, Cordova, Ionic etc.) and to work on building something new using them from my sophomore year itself. I have enjoyed my journey of getting to know people on irc and mailing lists while applying for GSoC and learning from them. It's amazing how people from different time zones can come together to work as a community. I think it would be the best utilization of my summer holidays to work on an open ­source project.

About your project

What is the name of your project?

Turtle Confusion and Turtle Flags

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?

This project aims on porting two sugar activities Turtle Flags and Turtle Confusion to a Javascript based version. Also possible UI enhancements and additional features will be added to them under this project.

These two activities help children build a mindset in coding and algorithms by setting up challenges based on drawing shapes and images in a logo like framework.

I plan on working on this project using Javascript and frontend languages(HTML and CSS). The main functionalities (drawing canvas, block programming) I am going to use are from the turtle blocks JS project.

Each visual block will be mapped to a function in JavaScript. Also the generated Javascript code will be shown to kids to get idea of one to one correlation between blocks and functions.

Along with these I'll be using Inkscape or any other similar tool to produce artworks to make the activities more interactive and attractive for children.

What is the timeline for development of your project? The Summer of Code work period is from mid-May to mid-August; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (end of June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.

In my understanding this project requires the following main tasks which can be completed by using the given languages and frameworks:

  1. Getting familiar with the resource book Turtle Confusion: Logo Puzzles and Riddles by Barry Newell.
  2. Understanding the codebase of Turtle Blocks JS and the already built activities Turtle Flags and Turtle Confusion.
  3. Designing the artworks to be used in the games and using the artworks available through various free sources and developing new ones using InkScape.
  4. Designing basic shells and UI to make these activities more illustrative and pedagogic.
  5. Writing code for the activities and implementation.

Timeline -

Week Scheduled Work
April 22-May 22

(Community Bonding period)

  • Community Bonding
  • Understanding the code for Turtle Blocks JS and the already built activities.
  • Study about the activities and check for faults that can be removed or features that can be added.
  • Experiment with the code.
  • Consider possible enhancements and improvised ideas that are suggested by taking to the mentors.
  • Produce some illustrations and discuss about the theme of the activity. To make the activity more attractive and interesting for children. 
  • Note possible improvements and UI changes depending on the review.
  • Develop a clear outline of the project and discuss other technicalities relevant for the project.
Week 1 (May 23-May 29)

Start working on Turtle Confusion:

  • Make basic UI. (Palette, windows etc.)
  • Implement various blocks in the palette and export them to Javascript by taking help from Turtle blocks implementation.
Week 2 ( May 30 - June 5)
  • Import features from Turtle Blocks JS.
  • Write code for Loading challenges and implementation of the activity.
  • Check for browser compatibility
Week 3 (June 6 - June 12) Start Working on Turtle Flags:
  • Make basic UI. (Palette, windows etc.)
  • Implement various blocks in the palette and export them to Javascript by taking help from Turtle blocks implementation.
Week 4 (June 13- June 20)
  • Import features from Turtle Blocks JS and Turtle Confusion implemented earlier in the project.
  • Write code for Loading challenges and implemention of the activity.
  • Check for browser compatibility
Week 5 (Midterm Evaluations) First Deliverable - Basic Implementation for Turtle Flags and Confusion Activities for Sugarizer
Week 6 (June 29- July 3) Responding to Mid-Term Evaluations:

Going through the evaluations and improving activity and fixing bugs accordingly.

Week 7 (July 4 - July 10) Turtle Confusion -
  • Resolve Bugs
  • Add features like the image export feature
  • Check for other improvements that can be done
Week 8 (July 11 - July 17) Turtle Flags -
  • Resolve Bugs
  • Add features like the image export feature
  • Check for other improvements that can be done
Week 9 (July 18 - July 24) Second Deliverable - Completed Activities Turtle Flags and Turtle
Week 10 (July 25 - July 31) Buffer Week
Week 11 (August 1 - August 7) Work on Documentation

Host the activity on a github page and share the link in Sugar Labs community for feedback and bugs.

Week 12 (August 8 - August 16) Address all the feedback and fix bugs.

Test all the features, clean and organize the code.

Week 13 (Code Submission and Evaluations ) Clean the code, improve documentation, and submit code .

Other commitments during this period -

April 22(Fri) – May 05 (Thu) : I have Major Examination for this semester. So, I will be less active in this duration. This duration comes under the community Bonding Period. But I will be devoting more time for the rest of the period or before exams (around ten hours a day) to compensate for this.

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 have been a programming enthusiast since my school days. I enjoy developing websites and doing front end work. Following are some of my projects:

  • Developed an Official Mentorship Website for Indian Institute of Technology, Ropar, which helps guide freshers to have a smooth transition from school life to college life. The link to the website is - https://www.iitrpr.ac.in/smp
  • Developed an Ecommerce website for a 24 hour Webathon Event held at Indian Institute of Technology, Ropar. Link to the website is - http://freecommerce.freevar.com

Given below is the detailed information about time contribution to the GSoC project. As I do not have any other long term commitments this summer, completion of this project is my top priority. During the length of this semester (i.e. Until May 06) - I can easily manage to squeeze at least 6 hours a day (due to classes in the daytime) on weekdays and 8-10 Hours a day on weekends. In total around 45 hours a week.

Most active period ( May 6 to July 25) – I will be having summer vacations during this period and can dedicate avg. 8-10 hours of work per day accordingly to the requirement of the project. On an average around 50-60 hours a week.

My next semester will start from July 25 and as the workload is very less in the starting of the semester I think I can dedicate 7-8 hours daily in this duration (July 25 - August 23).

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 answer -

This project will bring two new and very interactive activities of Sugar to Sugarizer. These two activities summed up with Turtle Blocks form a complete package for teaching coding and algorithmic approaches to children.These activities provide a different learning experience by using drawings and shapes to be made by coding and logo type interface which can make Sugarizer more content rich and enjoyable educational platform.

Walter Sir’s Answer (GSoC mentor) -

The rationale for porting these activities to JS is to reach out to learners who do not have access to the GNU/Linux desktop. By reaching these learners we will hopefully bring more people into the Sugar way of learning.

Dave Crossland Sir’s(GSoC Mentor) Answer -

If the Turtle Confusion and Flag porting to JavaScript project is successfully completed, the impact on the Sugar Labs community will be another solid contribution to the increasing number of Sugarizer activities that ensure children can learn with any computer that supports HTML5 (such as tablets that are hard to install GNU/Linux on.)

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

Being a computer science major and a programmer from the past two years, I have developed great proficiency in using Google to solve my problems effectively. So my first resort will be to try to find out the solution to the problem myself.

My second resort will be the community members and other mentors I have interacted with when I was new to the community.

My third resort will be my college faculties. As IIT's are the most prestigious institutions in India, we have the most dedicated and knowledgeable teachers who are always there when it comes to helping students.

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?

I will be writing a blog frequently about my work which can be a good tracking record of the project and will share it with mentors. Also I'll be sharing my work constantly on a Github Repo and will keep committing my code frequently for review which can help in tracking my progress. Once I get a basic app buildup done I will host the app on a github page for better reviewal.

Miscellaneous

If you plan to work on Sugar-Web projects we want to be sure that you're familiar with web technologies, so:

  • Clone the Sugarizer repository
  • Using instructions here develop your first Sugar-Web activity
  • Send us a screenshot of your new activity executed in Sugarizer

I have written a simple snake and apple game for Sugarizer. The screenshots of which are shown below.

Link to thegame is http://lovemehta.github.io/Snake-Activity-in-Sugarizer

/          

Describe a great learning experience you had as a child.

As a child I was a very curious one. I always used to annoy people with my how's and why's about a lot of things. This curiosity instinct has helped me till now to achieve good marks and perform well in my studies. But in the start I wasn't so much fond of studying. One day when I was in fifth standard our science teacher took us to the computer lab and showed us a very nice presentation on the projector. It was about our solar system. That day I was really mesmerized by the animations and the special type of class we had for the first time. Owing to that experience I learned how to make such powerpoint slideshow and present them in the class. I also won a prize for the same in the sixth standard.

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?

This project has potential to make Sugarizer an even better place to learn to code for children than it already is. I  will try my best to make these activities the best attraction Sugarizer has among children. Really looking forward to work on this project for the summer.