User:Making-it-yours

From mediawiki.org

Google Summer Of Code 2013[edit]

The Google Summer of Code (GSoC) is a global program that offers students stipends to write code for open source projects. This is my first project for GSoC.

Project Title[edit]

Wikipedia - My Encyclopedia

Name and contact information[edit]

Name: Vishal Thukral
Email: hungers.to.nurture@outlook.com
Freenode IRC Nick: Vishal_
Location (City, Country and/or Time Zone): Sonipat, India (GMT + 05:30)

Synopsis[edit]

Why I wish to work on this project ?
You believe that knowledge should be free for every human being, And so do I. But, I experienced that there is no end of knowledge and you can't get whole of it, Even if its freely available.
So, how do we learn ?
We keep on extracting the information from this bottomless sea until we have last breath to take.
So, how do we extract ?
We collect a cup of water from this sea and look for the elements we need. But, unfortunately there are a lot of other elements present in it and that cup of water contains very minimal amount of element we need...
‘Extracting is a very very challenging task and I hope to help everyone who visits this sea to extract the elements they need, by making this sea theirs.’
Wikipedia is the sea of all human knowledge. And the great thing is that one can extract anything from sea for free. But, this extraction is quite tedious and cumbersome.
So, let’s say I am working on an assignment. And I need to open some page on wikipedia. I see a lot and a lot and really a lot of content.
Problem 1 : This lots of content really haunt me. Not just me but a lot of folks out there . How do I know about other folks ? Few days back, I saw an app named Wikipedia + in Windows 8 store. The price of the app was $2.49 and was warmly welcomed by a lot of people, making the app as top selling paid app in its category. So, What this app did ? This app introduces its own CSS while displaying the page of wikipedia. And the app’s CSS truly and only tried to solve displaying lots of content problem.
Solution 1 : So, there is really a need of providing people few templates. So, that they can view the page in the way they like because maybe someone just likes lots of content at first glance and someone just don’t.
Now, I don’t bother about every word on that page but only that content which can help me with my assignment and may be a little bit extra. Now, here comes a challenging task of ‘Extracting the content I need.’
So, how do I do that ?
while(page !finished)
{
  • I read a paragraph.
  • Copied the content related to my assignment and pasted that content into the Notepad on my Computer
}
So, after reading 23 paragraphs the page got finished and hence the copy paste. After that I started reading, that extracted content from my notepad. And the content made no-sense to me because I have to callback that wiki-page and then that paragraph on that wiki-page from where that content in notepad was pasted to get the zest of context mentioned in that content. Finally , I deleted that notepad file and read again and again that page till my assignment wasn't finished.
Problem 2: Every page of wikipedia is a giant in itself and it's really very hard to extract the content you need.
Solution 2: After thinking a lot on the above problem I came up with this, what if we are just able to highlight the content we need, we care for while reading the page. It will remove that cumbersome process of copying and pasting. Plus it will be used for reference for our future purposes too. For example: if you visit that page again someday later you will know at once, what content you have already extracted by seeing your highlights. And now you can concentrate on new content.
Problem 3: Problem 1 and 2 lead to an another problem. So, how will wikipedia remember which template you love or which content you have highlighted on which page when you visit wikipedia again.
Solution 3: We will invite users to register on wikipedia and you already had a system for that. I will create some new tables in your existing database so that wikipedia can remember highlighted text and the page on which it was highlighted. So,when users will Log-In, they will be able to personalize their Wikipedia in the way they like. They will be able to choose their favorite template and highlight text and wikipedia will remember it nicely.

Deliverables[edit]

May 27 - June 16 => Community bonding period
Through this period, I hope to
  • Warm up myself for Good Programming (Revise Lecture Notes etc.)
  • Know about programming languages, techniques and other aspects Wikipedia uses.
  • Set up my machine for development according to the previous point.
  • Talk a lot with my community.
  • Discuss all my ideas with the mentor and community members.
  • Workout on suggestions made by my mentor and community members to prepare a final proposal for myself.
June 17 - July 17 => Back-end
I will start coding for a platform that will allow wikipedia to remember the highlights of user and favorite template. For that I plan to use SQL (may be My SQL) and PHP. At the beginning I will try this platform for remembering say user pages history. And then I will work on few algorithms to make it efficient as i can. My main motto will be on it's efficiently as wikipedia has more than 20 million articles and serves billion of users. So, efficiency matters a lot..
July 18 - July 25 => Extensive working with mentor
Through this period I will ask for mentor's extensive advice and will further work on that.
July 26 - July 29 => Brushing up for midterm submission
Through this period I will brush up my app for mid-term submission.
July 30 - August 15 => Front-end
Through this period I plan to create 2 templates with the help of CSS3 and enabling highlighting with the help of javaScript.
August 15 - September 5 => Integrating front end and back end
Through this period I will work on integrating front and back end.
September 5 - September 20 => Have feedback and work on it
Through this period I will ask for extensive feedback from my community and mentor and will work on that. I will also prepare documentation of my project during this period.
September 20 - September 23 => Final Touch
No need of explaining...

About Me[edit]

Hello World,
My name is Vishal and I live in the boundaries of earth named India. The thing I love doing most is to "heal and share the pains" because they are in abundance. That doesn't mean that I love to see lives in pains.
Knowledge helps me to do so And Wikipedia provides it for free. That’s why I love Wikipedia. But, I have experienced very difficulties in extracting elements from this sea. This project aims to remove those difficulties so that people have more access to information they need and that’s Wikimedia’s philosophy. I think we both will love each other.
Programming Languages I know: C, PHP, JavaScript, CSS3, HTML5, SQL, MySQL
I also know: Virtualization, Cloud Computing(Windows Azure), Linux, Windows

Participation[edit]

I promise to participate actively.I will publish my everyday work on git. I will talk with my mentors daily to receive the feedback on my daily work, if their schedule allows that through the mode they prefer.

Other Info[edit]

I have recently created a project to reduce hunger at distribution and consumption stage in industrialized countries.

Due, to limitations of the server where I have hosted my app, i can't give the url as public as it will cost me a lot of money. If mentors are interested to see it I can mail them link privately...

You Are welcomed To Comment Below[edit]

I really appreciate your feedback. So, don't hesitate...