Summer of Code/2013/Project sharing website

From Sugar Labs
< Summer of Code‎ | 2013
Revision as of 08:24, 4 May 2013 by Axitkhurana (talk | contribs) (→‎Sugar pilot deployment: Added answer)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

About me

What is your name?

Akshit Khurana

What is your email address?

axitkhurana@gmail.com

What is your Sugar Labs wiki username?

Axitkhurana

What is your IRC nickname?

axitkhurana on freenode/OFTC

What is your primary language?

(We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)

English and Hindi

Where are you located, and what hours do you tend to work?

(We also try to match mentors by general time zone if possible.)

I am located in Delhi, India 5:30+GMT. I usually tend to work approximately from noon to mid night.

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 contributed to openSUSE's popcorn project during GSoC 2012. Popcorn collects anonymous data about usage of RPM packages. I implemented various features including making data collection anonymous, packaging client RPM, implement a simple RESTful API, integration of client in settings user interface (YaST). Source code is available on github. My contributions are under username axitkhurana.

Also, working towards a small patch for TOR's stem library.

About my Project

Project description

What is the name of your project? 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?

Project sharing website will allow kids to share their projects they have created using various Sugar activities like Paint, Tam Tam or Turtle Art.

This website will be designed for kids where they can showcase their projects, learning from and using others projects, creating a fun, collaborative environment. Teachers will be able to use virtual classrooms and uploaded projects to teach kids to draw, program or create music. Parents will be able to see and appreciate their kids' creations by commenting on their projects. For activity developers they could show what their activities can do and how to do them in Teacher's view.

  1. On the frontend, I'll be using Twitter Bootstrap, a front-end development framework, and JQuery
  2. On the backend, the application will use Python and Django as the web framework to develop the application faster.

Features and Deliverables

  1. Projects:
    • Preview projects in browser in form of videos, pictures slideshows, audio, program(run in browser?) depending upon activity.
    • Projects will have optional text description.
    • Forking projects to your profile, to hack on build on them.
    • Downloading any project to activity on your Sugar PC.
    • Ability to upload projects to your through activity.
    • Like or Thumbs up a project which adds to your favorites.
    • Add project to gallery.
    • Comments on projects.
    • Share on various social networks Facebook/Twitter/Google+/Link.
  2. Gallery: Collection of projects
    • Create a default gallery for everyone consisting of their liked projects.
    • Ability to create/edit custom gallery of projects, say according to subject topic, difficulty level etc.
    • Ability to share on various social networks.
  3. Private classroom / Tutorials:
    • Associate each tutorial with some project.
    • Step by step video(?) showing projects at different stages.
    • Chat with teacher.
  4. Profiles
    1. Kids profiles
      • Allow kids to upload projects and view them here.
      • View/create/edit their galleries.
      • Uploaded projects can be categorized by Activity.
    2. Teachers profiles
      • Allow teachers to upload projects.
      • Give them a tutorial builder based on projects.
      • Galleries for teachers.
  5. REST API
    • Utilize for the ability to post projects from various Sugar Activities (ex: Turtle Blocks, Etoys, Memorize, Physics, etc.)
    • Specification for others to build on
  6. Multi-language support
  7. Social login/login with Sugar account
  8. Featured projects/galleries, similar project suggestions


  • Design a clean, simple UI.
  • Follow PEP8, Idiomatic code
  • Test driven development

Timeline

What is the timeline for development of your project? The Summer of Code work period is June 17 - September 23; tell us what you will be working on each week.

Week Tasks and resources to be used
Before May 27 Interact with the community, discuss and finalize project details like UI, flow of the website, private classroom/tutorials. Use Scratch Website for inspiration.
May 27 - June 2 Learn how Sugar activities work, it'll be easier to integrate sharing later.
June 3 - June 9 Build user accounts functionality with different roles for teachers, kids and parents. Add social login and integrate with Sugar user account (django social login)
June 10 - June 16 Work on project views, how to preview different projects, adding description, likes, comments.
June 17 - June 23 Implement gallery creation, default gallery for liked projects. Add option for adding to new or existing gallery in Project views.
June 23 - June 29 Write tutorial creation / private classroom functionality. Details of this part have to finalized. For chat functionality we can use django-socketio project.[1]
June 30 - July 6 Complete user profiles, landing pages for different users with featured projects and galleries. Add ability to *fork* projects to your profile.
July 7 - July 13 REST API to access data. Use Django Rest Framework for API. It is based on Django's class based views, APIs are fully self-describing and web browseable. [2]
July 14 - July 29 Buffer time for any delays and documentation.
July 29 - August 2 Mid-term Evaluation Period
August 3 - August 16 Two weeks for integration with Sugar Activities. Use REST API to add options to upload project to profile from inside activity. Also add option to download projects to Sugar PC on website, similar to how play store allows option to download apps from website.
August 17- August 23 Multi-language support [3]
August 24 - August 30 Add other pages like about, community guidelines, contact.
August 31 - September 16 Time reserved for unexpected delays and bug fixing.
September 17 Soft Pencil Down date.

My Backround

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’m studying Computer Science, 4th year at Indian Institute of Technology, Roorkee. I have a decent amount of experience in web development in Python and Web Frameworks like Django and Flask.

My contribution to openSUSE's popcorn project during GSoC 2012, involved development in Python, Flask and SQLAlchemy with attention to PEP 8 compliant code. We used Travis CI for continuous integration and Git for version control and collaboration.

I am a part of Information Management Group, in IIT Roorkee, which is a student body responsible for developing and managing all Internet and Intranet applications in IIT Roorkee, including the institute website and registration & placement portals. One of the projects I have worked at IMG is Softwares application. It's available on the intranet but Mid development demo is hosted on heroku

I have contributed to Entrepreneurship Development Cell, IIT Roorkee's Django based website in 2011-12 which is hosted on Amazon EC2 Cloud. The code is available on Github and the website was featured on Django website showcase

SnapApp was a hobby project, I worked on for playing with Facebook API and Django's manage.py custom commands. It creates albums from photos from your Facebook account.

Me and the Community

Impact on the Sugar Labs 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.

Kids will be able to show their creations to the world. They'll also learn more by working on each other's projects. Teachers and Activity developers can work on creating tutorials for projects. Parents will be able to see what their kids have been learning and appreciate their projects there.


The key is learning from each other. By sharing projects, we can share best practice, learn from each other's mistakes and successes, and in general, engage in a critical dialogue. --Walter (talk) 13:25, 2 May 2013 (EDT)

Sugar pilot deployment

Sugar Labs will be working to set up a small (5-30 unit) Sugar pilot near each student project that is accepted to GSoC so that you can immediately see how your work affects children in a deployment. We will make arrangements to either supply or find all the equipment needed. Do you have any ideas on where you would like your deployment to be, who you would like to be involved, and how we can help you and the community in your area begin it?

It would be great if we could set up a pilot deployment at Anushruti, which is the first school for the deaf in India in an Hi-Tech Institute of National Importance. It is situated inside my college, IIT Roorkee, and I can help with setting up by coordinating with Sugar and the school, as our student group, Information Management Group, helped with their website design. Sugar's clean collaborative platform would really improve the learning environment there.

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

Try to solve the problem myself. If I am unable to and if it isn't urgent, I'll send an email and work on something else. If it is I'll try to get help from other people in the community on IRC or mailing list.

Keeping the community informed about problems and questions

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?

Blogging and posting weekly progress on the group with any problems.

Miscellaneous

Screenshot of my Sugar development environment

We want to make sure that you can set up a development environment before the summer starts. Please 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 "Restart." See the image on the right for an example. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.

Screenshot of Akshit's development environment of Sugar with the 'restart' label replaced with his email address.

What is your t-shirt size?

(Yes, we know Google asks for this already; humor us.)

Large (L)

Describe a great learning experience you had as a child.

It was Christmas time and my mom got me this gift with Santa in a water filled glass cover with sparkling glitter. I kept in the freezer, I don't remember why, but the next morning, I found that it was broken. It was sad, but I learned water expands on freezing instead of contracting. Years later studied the hydrogen bonded crystalline structure in 11th class as well.

Additional information

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?

References