User:VirajSinha

From SMC Wiki

Google Summer of Code 2013 Proposal for Swathanthra Malalayalam Computing

Who are you?

My name is Viraj Sinha. I am a fourth year student pursuing my Computer Science and Engineering degree (B.Tech) from Manipal Institute of Technology, Karnataka. I love playing Tennis,Table Tennis and Badminton besides reading fictional novels like Lord of the Rings and light reading books like Chetan Bhagat and my favourite TV SHow is Bing Bang Thoeory and Sheldon Cooper is my favourite nerd in it. Sometimes I like to code and solve some algorithms.I am also an active member of LUG Manipal.
You can always find me at:-

   1. virajssinha@gmail.com
2. Github
3. #lugmanipal on irc.freenode.net with nick - VirajSinha or VirajSinha_

What is your programming experience?

The first time I started writing code was in Class XI in C++. But then in college I came to know Python through LUG and started writing codes in python. I learnt it from online tutorials and have written small games in Python like Ping Pong or my favorite Rock, Paper, Scissor, Lizard, Spock from Bing Bang Theory. I like web technolgies like Php, HTML, JavaScript and Jquery but I am quite afraid of CSS and have made my college and club's website. I also like making mobile apps and specifically Android as I don't have to pay a fees to develop and release an app in market which is not the case with iOS. I have made two apps . One was called Boomerang and it was using Java and it can be used to share photos on social networking sites like Facebook, Twitter with hand gestures like swipe. The second one was using HTML,CSS and JavaScript and it is called Y-AN-A(Yet Another NGO APP) . It can be used to bridge the gap between people and NGOs by providing the credibility factor and less time taking methods for people to donate to NGOs. I personally loved using web technologies in making app as it was less cumbersome in writing code. In my internship last year I also build an app for Babajob Services Pvt. Ltd. which involves handling language support as the app needed to be in English,Hindi,Kannada,Tamil and I made the app using i18n and translation strings.All the things that I have done can be found at my github account.


What is your project?

The title of my project is Internationalize SILPA project with Wikimedia jquery projects. The present SILPA project is a flask-based project. I didn't know what FLASK is and have never used it. But now I know that is a python microframework that keeps things simple as it uses third party libraries to provide the functionality. So presently there is no Indic language support on the new SILPA. So for a local Indian user who doesn't know English it becomes very difficult to access the website.Similarly the application is not internationalized. But it can be achieved using i18n, jquery.ime and jquery.webfonts. So my aim is to make a tool for the website which makes localisation and internationalization happen.Also a part of this project may also be to move the templates from the current path to the module specific paths and hence the localized strings will also have module specific paths.

This project involves things like HTML5,CSS, Jquery and python which I love. Also the fact that this project gives the Indic languages a scope to grow and be known throughout the world. Yes hindi is the national language but India has about 22 official languages apart from English and then there are so many dialects. I love that is being brought out by smc.

Yes, some translations can be found on google but they are for 4-5 indic languages and sometimes inaccurate.

I plan to work 6-7 hours daily and 40 hours weekly as a part of this project. I plan to push the changes to the code base twice. Once after finishing the work before mid-term evaluation and second before the end term evaluation.I also plan to maintain a blog documenting my progress once every 2 or 3 days besides regularly updating the wiki.


Project Timeline

Since there are about 22 Indic languages and it is not possible to translate them all over a period of 3 months I would devide for 5 Indic languages during GSoC and the rest after GSoC. I plan to take this task week by week and will be providing the weekly details for how I plan to implement this project


June 17 - June 30(Week 1 and Week 2)

   # Get to know more about the i18n, web-fonts and jquery.ime
   # Plan the implementation details with the community
   # Discuss with the comminity about which languages need to be handled first
   # Get to know the community better


July 1 - July 14 (Week 3 and Week 4)

   # Separate the templates to be inside modules
   # Gather information(translation) of the different strings in Indic Languages and make them into json files for 2-3 Indic languages
   # Complete the translation for these languages and provide an option on the site to switch to them.


July 15 - July 28 (Week 5 and Week 6)

  # Get the code reviewed from the community
  # Rectify the code and make the changes
  # Document the changes so that it can be understood
  # Push the changes on the code base so that they are live 


July 29 - August 4 (Week 7)

  # Discuss with community about further implementation and how to go about it
  # Read about further suggestions
  # Wait for mid-term evaluation


August 5 - August 18 (Week 8 and Week 9)

  # Use the translation files to translate the pages of different modules into the remaining languages
  # Store user's preferences using HTML5 localStorage
  # Provide the option on the website for user to click on a language and call i18 and jquery.ime on clicks of languages


August 19 - September 1 (Week 10 and Week 11)

  # Implement the full feature and see that everything is working 
  # Write the test Cases for the code


September 2 - September 15 (Week 12 and Week 13)

  # Get the code reviewed from the community
  # Bug fixes and implement the changes
  # Test the code for all the cases


September 16 - September 23 (Week 14)

  # Get the whole project reviewed
  # push the remaining changes into the code base
  # Prepare for final evaluation

September 24 - September 27

  # Submit the code to Google for final evaluation
  # Wait for the final evaluation result

Post GSoC

GSoC is just the beginning of the project it needs to be localized for some more Indic languages and internationalized as well. I would like to take up the responsibility of working on this project further and internationalizing the flask based SILPA website as well.So that we have support for some of the Indic languages which are most widely used.


Why me?

I have already installed the source code on my machine and I am familiar with the smc code base. Also I have a good understanding for the web technologies and python which will be helpful for me in completing the project. I am fluent in Hindi and know Bhojpuri a bit which can help me in translation and internationalization.I have worked on multi-lingual android apps before which included translating into Tamil,Hindi and Kannada. I have an idea of how jquery.i18n and jquery.web-fonts work. As I am mostly free in the summer I believe I can do some quality work on the project.