User:Diadara: Difference between revisions

From SMC Wiki
(Replaced content with "Moved my proposal here http://wiki.smc.org.in/User:Diadara/GSOC2013proposal/")
Line 1: Line 1:
'''GSOC 2013 proposal for Swathanthra Malalayalam Computing '''
Moved my proposal here http://wiki.smc.org.in/User:Diadara/GSOC2013proposal/
 
==Who are you ?==
I am Nithin P Saji pursuing dual degrees in Physics and Computer Science from
Bits Pilani,Pilani. Currently I am in my third year of study here.
I hail from Kollam, Kerala a small town at the southern tip of India,I have done my
pre university education here.I love reading fiction,non-fiction,manga,fan fictions,
tech blogs and also software docs.
 
You can mail me at nithin111[at]gmail[dot]com,you can look at some of the code I have written
at http://github.com/diadara . My irc handle is diadara
 
==What is you programming experience ?==
I started out with c++ from school,mostly written file handling stuff and other
simple console apps and a few interesting stuff with graphics.h, lately
I have been playing around with opengl and plan to build something.I have written code
in a number of languages c,c++,c#,Java,python,ruby,,haskell(I tried out Xmonad),lua,php and
consider myself fluent in python,ruby, c++ and Javascript.I have experience
in making web applications with traditional lamp stack from university
course on databases as well as asp.net web forms which I used for
making a entry/exit record keeper for my college's library that can
display peak times and also retrieve information for analysis.
 
== Things that I have built==
 
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.
 
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.
 
Unfortunately I haven't been introduced to SMC before GSOC considering that I speak Malayalam.
I have been quite amazed by the enthusiasm shown by the community members of SMC and I can identify
myself with the cause they are working for.
 
I have been using git for a year now to maintain my projects and I am fairly comfortable using it.
 
==What is you project ?==
 
The original SIPA 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.I
I would be completing the porting of them modules and separating the templates from
silpa-flask.
 
Currently the templates used by these modules are contained in the main app,my job will be to package these templates into their respective python packages and modify
the flask based app to load these templates dynamically using jinja2 's package
loader functionality. This is done so that silpa can be installed with a select
few of the modules without the main app having all of the templates.This will make
writing templates for new modules easier as the python module and templates can be
made and packaged into one package without adding any other dependencies allowing
modules to run standalone as well as nicely plug into the main silpa app to add
functionality.
 
Once the repackaging of the already ported modules are completed,I will be in a
position to port rest of the modules into the new format.This will involve creating
new jinja templates for each of these modules and packaging them.I have experience
working with twitter bootstrap and Jquery ajax, and  this can be done fairly quickly.
 
Some of the already ported modules make use of certain common tools such as detect
language which are currently packaged with each of them  causing some level of
code duplication this will be separated and packaged into a separate reusable
packages.
 
Also repackaging of the modules and templates also gives as an opportunity to write
tests for all of the modules as well as the web interface.There are reported and
unreported bugs with some of the modules and all the bugs will be reported and
bugs that can be solved within the time frame will be solved.
 
==Why me ?==
 
I am fluent in python and familiar with most of the source code in silpa-flask
repository as well as old silpa repository. I have been learning flask during
the last two weeks and I have built an app using templates loaded from a package.
I am familiar with the templating system  used and I have added jquery.ime input
method to the flask based silpa app.I have also ported one of the old
modules(syllabizer) to a silpa-flask compatible standalone package.Thus I have a
very good idea about the job involved.I can also read and write in Malayalam and
Hindi thus I am in good position to test the apps also.I have also completed SaaS
course offered on edX by UC Berkeley with a certificate of accomplishment and thus
familiar with agile development pattern.
 
==Contributions to SMC==
 
One of the proposed ideas was to add jquery.ime plugin to SILPA .I have added this
and my pull request has been accepted.I have also done some random code cleaning.
I have ported one the old modules to work with flask based silpa .It is functional as
a standalone package.The template for this package will be added once the structure
of the modules are finalised.
 
== Deliverability.==
 
Restructure silpa to use templates from packages.
 
Repackage already ported packages with templates
 
Port remaining  packages from old silpa to work as standalone
packages and also make new templates to be added to these packages to be
used by silpa.
 
Write unit tests for each of the individual packages along with their restructuring
 
General Bug fixing of the packages.
 
Add new documentation/add from old documentation
 
 
 
==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.
 
===Post Gsoc===
I would like to take care of the maintenance of the whole application suite.

Revision as of 16:01, 27 April 2013