User:Diadara/GSOC2013proposal/

Google Summer of Code 2013 Proposal for Swathanthra Malalayalam Computing

Personal Information
# Email Address                        : nithin111@gmail.com # Telephone                            : +917737673502 # Freenode IRC Nick                    : diadara # University and Education             : Dual degrees in Physics and Computer Science from BITS Pilani,Pilani Campus

Why do you want to work with the Swathanthra Malayalam Computing ?
SMC's goal of bringing computing to indic languages appeals to me and I have come to like and respect the community members from the short time I have spent interacting with them.I can identify with the aim of SMC as well as like the community and would love to contribute

Do you have any past involvement with the Swathanthra Malayalam Computing or another open source project as a contributor?
No, I have not worked with SMC before the gsoc application period.I haven't contributed much to other open source organisations apart from a few bug reports

Did you participate with the past GSoC programs, if so which years, which organizations?
No,this is my first time

Do you have other obligations between May and August ?
No, I don't have any major obligations this summer and I am confident in finishing the project in time.I can devote 40 hours a week for the project.

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 would like to contribute more to SILPA ,First of all I would like to volunteer for the maintenance of SILPA modules and the website.I am also interested in Natural Language Processing and would love to work on something by making use of SILPA and also contribute back.

Why should we choose you over other applicants?
I have a very clear Idea about what has to be done and what is the utility of the project.I am familiar with the old silpa framework as well as the flask based silpa.I have already ported one of the old silpa modules to the new format and I am also comfortable using flask and read most of the documentation relevant to my part of the project.I have experience with MVC frameworks like ruby on rails, Spring MVC and python knowledge as well as experience in front-end development using jQuery ajax calls and web services.I am confident of completely porting all the python based modules into flask based silpa and repackage them for PyPi with their templates in the given time.

A brief Overview
The original SILPA project was a monolithic app with a fair number of dependencies and provide a large number of language processing tools.The project is currently being rewritten so that the tools can be separated and used by anyone and a flask based app which makes use of these modules to provide a web interface for these tools as well as a JSONRPC interface for other applications to make use of these tools.The current implementation requires the templates to be included in the template folder of the main Flask based app.My job will be to restructure individual modules by including their templates in their respective python packages,re-write SILPA flask to use the template files from the python package and also port the rest of the modules to the new format by creating templates and packaging them as well as testing them.

The need you believe it fulfills
1. Separation of templates takes care of this issue

Separation allows for easier development of new modules as well as allows the main app to be installed with a smaller set of modules and main application can be agnostic of the installed modules

2. Porting remaining modules to silpa-flask This allows for more of the modules to be used as stand alone modules as well as extends the sipa-flask app with more installable modules

How do you plan to implement the proposal
Jinja2 has a Package loader method for loading templates from packages ,This will be used for loading templates from packages.

I have already ported one of the simple old  modules into a standalone SILPA-flask compatible packages .The same will be done to rest of the packages.Also templates have to be made for these modules.These templates will be made using twitter bootstrap and Jquery to get a consistent look with the already ported modules.

I will also write unit tests for each of the modules and browser based tests using selenium for silpa-flask.

Previous Experience
I have also completed SaaS course offered on edX by UC Berkeley with a certificate of accomplishment and thus familiar with agile development pattern.I am a FOSS enthusiast and was a distro hopper before I settled on arch linux. I am also a bit of a linux evangelist at my collage and successfully converted a fair number of people.I use vim for most of my work because it is really fast in getting things done.I have been using git for a year now to maintain my projects and I am fairly comfortable using it.

Things that I have made
During my internship at VISL,SAIL,Bhadravathi,I made a intranet news website for the organisation.I also made a google maps based website to display the public land records of the company township. I am currently doing an internship as part of an industry exchange programme at 24-7xs.com where I am building a Jquery and angularjs based web client for a REST api. I have also built some rails apps like the social food share app I made during a social hackathon conducted at my college which is intended to be used for sharing home made food to people who can't cook. Most of the things I have made are available at github.

Timeline
I am quite familiar with the code base and the technologies involved so I will use this time to get familiar with unit testing in python and browser based test suites like selenium,smoke etc. Also since my project involves a lot of python packaging,I will use this time to get familiar with peps recommendations on conventions to be followed while packaging.

week 1 and 2
Restructure silpa and repackage one of the new packages with the template folder and write unit tests and selenium based browser testing

week 3 and 4
repackage all of the already ported packages and write tests for them.

week 5 and 6
General Bug Fixing ,Generate documentation using sphinx and integrate it to the site midterm evaluation

Week 7-11
From now onwards work on one module at a time and make the new templates ,package them and provide proper documentation.

Sphinx would be used to generate documentation for the whole system and added to the main site.

Week 12-13
Will be used as buffer and also general bug fixing.

Mentor
My proposal is based on two of the connected ideas from the suggested ideas which I feel can fit into duration of a gsoc project.I have talked to copyninja and jishnu7 at the irc channel.