|
|
(One intermediate revision by the same user not shown) |
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
| | == GSoC 2014 proposal == |
| at http://github.com/diadara . My irc handle is diadara
| | http://wiki.smc.org.in/User:Diadara/GSoC2014 |
| | |
| ==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.
| |