User:Xvidun/Gsoc proposal

Personal Information
Provided on melange.

Why do you want to work with the Swathanthra Malayalam Computing?
It would be awesome to be a part of an organisation that is making technology accessible with the contribution and research on indic languages and computing. Swanthanthra Malayalam Computing being an organisation that is native, it would be easier for me to relate, collaborate and contribute easily with no barriers.

Do you have any past involvement with the Swathanthra Malayalam Computing or another open source project as a contributor?
I've worked on some open source projects before I don't have any major contributions yet as I’m fairly new here. My github profile has a list of all my open source works.

Did you participate with the past GSoC programs, if so which years, which organizations?
This is my first attempt at GSoC.

Do you have other obligations between May and August ?
I can give around 40-45 hours a week. Although I have to take a max three day break in between to visit home reflected in the timeline, apart from this I have no other commitments. To ensure that I can give my full time without interruptions I am looking to get permission to stay back in the college(hostel) during summer, this way I will have all the resources in terms of connectivity and books required to ensure my productivity.

Will you continue contributing/ supporting the Swathanthra Malayalam Computing after the GSoC 2013 program, if yes, which area(s), you are interested in?
I will enhance, maintain, resolve issues, fix bugs for everything I develop this summer. Apart from this I have interests towards working on Braille keyboard layout and working with i18n on apps to support indic languages. This summer will provide me with the necessary resources, knowledge and great connections with the organisation to start begin working on contributions to Swathanthra Malayalam Computing.

Why should we choose you over other applicants?
It's been years since I've switched focus to FOSS products(Ubuntu and others) which has helped me in many ways to observe, learn and grow. Open communities has also taught me to collaborate and communicate well, one of the major skill in open source. I am passionate, enjoy and use open software on a regular basis giving back my little contributions where I can.

I've set up Grandham locally and have been hacking into the code-base for sometime now and have some clear understanding on the functionality, features and working. With guidance and feedback from mentor Ershad I have been learning more about Marc-21 metadata with their different fields from loc.gov. I even wrote a simple ruby script to handle Marc data using ruby-marc, looking to play around more with it.

I have been learning rails and its ecosystem for almost 4 months now and was also looking into Marc-21 for sometime now, using this experience along my enthusiasm will make me sufficient for working on this project.

I try to be as self-sufficient as possible using google and mailing lists effectively. To make sure of this I will use the pre-coding period to learn and improve upon the areas I lack in. I will also make updates and progress on my work in my blog for the mentor to keep track of where the project is heading. Project Description

An Overview of your proposal
Grandham is a web-based rails application built to hold and process bibliographical data. This application is mostly based on malayalagrandham with more features added. The aim of this project is to add the feature import/export Marc-21 data formats in the application. Marc is a machine readable digital data standard format for cataloging various formats of bibliographical metadata. Adding this feature will make a standardized format for bibliographic data available and also to use the bibliographical data from other libraries using the Marc-21 format, this way we can allow open usage and sharing of meta data.

The need you think it fulfills
Adding this feature to Grandham has the following benefits.


 * Making bibliographical data open using the Marc format, this will provide a standard format by which libraries across the world can use the Grandham bibliographical data.
 * Access to different bibliographical data from across the world that has Marc data formats. Most of the libraries have made their bibliographical data open to all with the standard Marc data format, this way Grandham can have access to all bibliographical data from libraries that have open MARC21 data.
 * The Marc data format have a lot of fields and subfields that make the bibliographical metadata as descriptive as possible, only 10% of the fields are commonly used. This project can give the flexibility to select the fields that are required to use and also personalize the description of the field in any way including localized language description.

Any relevant experience you have
I have decent experience working with rails, have used various learning resources for it in the past months. I use stackoverflow to answer rails related questions and learn.

I have been learning and working with rails for sometime now. I have set up grandham locally and have been looking into its codebase understanding the internals, features and functionalities. I have also been reading about MARC21 documentation and examples from the loc.gov website and have also identified the resources that would be useful for the same. For parsing MARC21 fields this project will use the ruby-marc gem, which I have been testing and playing around with.

How you intend to implement your proposal
There are some problems that we will have to solve to implement MARC record import and export.

 Migrating to MARC21 
 * Currently Grandham has a system to process bibliographical information. Implementing MARC21 would mean migrating the current system architecture to enable to use and process MARC21 data efficiently. This project should make some workaround to migrate the current cataloging structure to use MARC21 data structure in the database completely.
 * As there is a live version of Grandham with a lot of records running, feature must be added to compile the existing records into MARC format database to enable the use of existing records as MARC.

 MARC records 
 * MARC21 has a lot of records that will mostly go unused, this means that we will have to allow the flexibility for the admins to opt out from using particular fields.
 * Too many fields also means that we have to restrict the number of fields displayed in the view according to user.

 Export data to MARC21 
 * Once we completely migrate Grandham to use MARC21 inherently exporting can be easily handled. Export formats will include MARC21 and MARCXML
 * Exporting to MARC can also be done based on criteria.
 * Export all Grandham records.
 * Export records that belong to a particular library.
 * Export record based on publisher.
 * The above points can be made friendlier by placing links on view book page to download MARC21 data for the book.

 Import MARC21 
 * The import function can be handled to import MARC bibliographical data completely. The user can decide later as to what data can be displayed.

 Handling API 
 * Currently Grandham has support to handle API that can be used by client applications, additional feature will be worked on to handle API support with MARC using MARCXML.

Timeline
 Precoding Period (upto may 19): 
 * Get a familiar with Grandham architecture and the codebase.
 * Investigate and learn the required tools required for the project like marc-ruby gem noting the relevant support and drawbacks.
 * Bond with community while identifying required resources for learning or help.
 * Plan a basic approach to solving the project problems noting and clarifying on the issues involved.

 May 19 - June 5: 
 * Create list of all MARC records and work on creating database for the same.
 * Initial works on migrating Grandham structure is done.

 June 5 - June 15: 
 * Complete migration of Grandham to use MARC21.
 * Works on compiling existing bibliographic database to # MARC21 structure.

 June 11 - June 21: 
 * Work on interface to let user make preference for displaying MARC21 fields. User can also toggle to list all non-null fields from MARC21.
 * Work on displaying the MARC records according to the preference

 June 21 - June 30: 
 * Work on feature to import MARC21 records while displaying progress.
 * Work on polishing the interface.

 July 1 - July 10: 
 * Work on getting the basic export to Marc feature to work.
 * Work on the interface for the same.

 July 10 - July 30: 
 * Work on implementing complex export features like export by library, timeline, Grandham
 * Work on polishing the interface.

 July 20 - August 11: 
 * Work on implementation to handle MARCXML API's.
 * Write basic tests for the features.

 Upto August 21: 
 * Test the overall code, fix bugs, document the areas that are necessary while getting ready for the final evaluations.

Tell us something about you have created
List of things I’ve worked on, recent first.


 * Worked on a ruby gem to handle dogecoin crypto currency address generation and transactions, used the bitcoin-ruby fork for this.
 * Worked on integrating bitcoin payment and donation to the Privly-web stack.
 * Worked on a kick-start app, handling authentications using devise and omniauth(facebook, twitter, google) and uploads using paperclip gem on dropbox.
 * Contributed to making the College Tech Fest website, Anokha for the year 2012 using PHP.
 * Apart from this I’ve worked on several hobby projects on rails(part of the learning process) and several college projects.

Have you communicated with a potential mentor? If so who?
I have communicated and had discussions with mentor Ershad k.