User:VirajSinha

From SMC Wiki

Google Summer of Code 2013 Proposal for Swathanthra Malalayalam Computing

Personal Information

   # Email Address                         : virajssinha@gmail.com
   # Telephone                             : 918884210392
   # Blog URL                              : http://virajs07gsoc.wordpress.com/home/ 
   # Freenode IRC Nick                     : VirajSinha
   # University and Education              : Pursuing a B.Tech from Manipal Institute of Technology in Computer Science and Engineering


Why do you want to work with the Swathanthra Malayalam Computing?

Swathanthra Malayalam Computing is trying to bring Indic languages to the fore and also getting information to people in the local languages so that those who don't understand English can use it. Also the project requires HTML5, CSS and JavaScript which I have good knowledge of and personally have become fond of these web technologies


Do you have any past involvement with the Swathanthra Malayalam Computing or another open source project as a contributor?

No, I have never worked with Swathanthra Malyalam Computing or on any other open source project as a contibutor


Did you participate with the past GSoC programs, if so which years, which organizations?

No, I have never participated in GSoC before and this is my first time.


Do you have other obligations between May and August ?

No , I don't have any other work this summer and am mostly free so I think I will be able to devote 6-7 hours to this project daily and about 40 - 42 hours a week.


Will you continue contributing/ supporting the Swathanthra Malayalam Computing after the GSoC 2013 program, if yes, which area(s), you are interested in?

Yes I want to keep contributing to the community after my project as GSoC is just the beginning. I want to keep workig on extending SILPA in as many Indic languages as possible and if possible some international languages.


Why should we choose you over other applicants?

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.


Proposal Description

A brief Overview

The project is titled "Internationalize SILPA project with Wikimedia jquery projects". But it also includes " Improve the webfonts module in Silpa using jquery.webfonts and provide more Indic and complex fonts". The main aim of the project is to make a tool for people to input text in their own local languages and also translate the text on the website to their language so that they have a better understanding of the text. Also the application needs to be internationalized. This can be achieved using jquery.ime and jquery.18n which are javascript/jquery libraries to handle localisation and internationalization. The fonts can be used from webfonts module in SILPA for translation. jquery webfonts extension adds font embedding capability to jquery using the webfonts technology. The extension provides a flexible way to choose fonts from the font repository and add then to the html elements. So basically we are trying to bring the new FLASK based SILPA site to the people in a language they can read and write. The project can be summarized as :-

   1. Translation strings to be put in the respective module paths
   2. The localized strings to be loaded from the respective module paths when the user changes the preference.
   3. Storing the user's preference using HTML5 localStorage API and loading modules'  localised string from the preference set by the    user.
   4. Providing a tool for people to be able to input local Languages.  
   5.Improving the webfonts module in SILPA using jquery.webfonts which    is an extension to jquery. As per jquery.webfonts specifications we need to have a font repository and choose fonts from those repositories.
 6. Providing support for more Indic and Complex fonts.
 7. Document the usage of webfonts and creating a clean API(REST) so that other websites can call our webfonts in their website.


The need you believe it fulfills

   1. The need to give people a better understanding of the context in the site so that they can utilize it for their advantage.
   2. This is required because not many Indic languages are supported by Google. 
   3. Google supports 6 or 7 Indic languages and there are about 22 different official languages declared in the Constitution of India. 
   4. Making the knowledge available to people so that Language barrier is removed.


How do you plan to implement the proposal

The following technologies will be used and hence an understanding of it is required:-
   1. FLASK - the current framework for SILPA
   2. Python - for separating templates and initializing strings 
   3. Jquery.i18n and jquery.ime - the internationalization framework for making the website available in different languages
   4. Jquery.webfonts - to provide support for different fonts which will be rendered on website. This is an extension to jquery and can be easily integrated as it applies font based on the lang attribute of the elements which can be set on user click.
   5. Webfonts module - I need to enhance the present module in old silpa code and use jquery.webfonts to apply the fonts instead of the present way.
   6. Bootstrap - For the front-end work


Previous Experience

During my internship with Babajob I made an Android application for them. This was a multilingual app and had other languages like Hindi, Kannada and Tamil. I used i18n to do this as I was making the app using web technologies like HTML5, CSS and JavaScript.


Project Timeline

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 community about which fonts need to be added first as there is already support for 36 webfonts
   # Get to know the community better


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

   # Adding more fonts to the webfonts module in SILPA
   # Creating a repository for the fonts which van be called by jquery.webfonts which is a specification for using jquery.webfonts.
   # Re-writing the webfonts module to use jquery.webfonts instead of the css3  fontface feature
   

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

  # Writing a clean API so that webfonts module can be used by other    websites (REST API).
  # Implement the functionality for font preview and download options which will generate a link for the css file for the people and they can use the font on their site without having to download them.
  # Get the code reviewed from community and make changes.
 

July 29 - August 4 (Week 7)

  # Discuss about the UI for the font preview and download options.
  # Implement the UI for the site
  # Get the UI reviewed from the community
  # Rectify the UI and make the changes
  

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

  # Document the changes 
  # Push the code as a patch to the codebase so that it can go live.
  # Start work on the Internationalization part using i18n.
  # Collect translation strings  about the different languages that need to be implemented as a part of this project.
  # Make them into  JSON file out of these for the i18n to call on user's click.
  

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

  # Change the code to store user's preference using HTML5 localStorage so that the next time the site can start from the previously selected language for the user.
  # Provide the option on the website for user to click on a language and call i18n and jquery.ime. First the fonts need to be loaded and then the language text can be changed using i18n as it will call the respective json file holding the translation strings.
  # These localisation strings will be a part of different modules and hence have different paths.
 

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

  # After implementing i18n on the website we need to think of a tool on FLASK for people to be able to input in the language they have selected
  # Implement the tool and write the code for it.
  # Get it reviewed from the community and make changes to it.


September 16 - September 27 (Week 14 and Week 15)

  # Write the test Cases for the code
  # Test the code for all the cases
  # Bug fixes and implement the changes
  # Push the changes to the codebase so that they are live
  # Submit the code to Google for final review.



Things that I have made

1. 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.

2.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.

3. 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.

4. Besides these apps I have also made my college website using Php, HTML, CSS and Javascript/Jquery and other web technologies.

5. Some of the python projects and rest of things that I have done can be found at my http://www.github.com/virajs07 account.


Mentor

This project was already on the ideas page and is not suggested by me . The mentor's name written there was Hrishikesh K B. I have contacted him 3-4 times and had a conversation with him. Firstly he helped me in installing the source code. Then I read about jquery.ime and jquery.webfonts . Then he also suggested me that the localised strings should be a part of the modules and templates need to be moved to the respective module paths.

Wiki Link

http://wiki.smc.org.in/User:VirajSinha