User:Deepakrocks0009

From SMC Wiki
Revision as of 18:51, 16 March 2014 by Deepakrocks0009 (talk | contribs) (GSOC'14 Proposal)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This is my proposal for project Grandham. Please suggest any required changes.

Introduction

Grandham is a project of an organization SMC to maintain and record bibliographic record. The current project allows authentic users to create bibliographic record (books), edit and update it. There are different tabs of books, authors, publishers and libraries. Feature to add book cover and searching of items on the basis of language are also there. But if we want to process the record, it is difficult for computers to read them in their original form. The records need to be in converted into proper format in order to make it machine readable that format should be internationally acceptable. So we want to introduce MARC 21 feature in Grandham for all types of bibliographic records. MARC 21 is a set of digital format for the description of items such as books, bibliographic record etc. There are several versions of MARC out of which MARC 21 is most predominant. Using the format of MARC we will convert record to machine readable form.

Project Goals

The main goal of the project is to introduce MARC 21 import/export feature in Grandham. The features which will be introduced are: 1. Import and parse bibliographic data from MARC 21 records. It basically means reading and decoding MARC 21 record so that we can understand it. (Reading and decoding operation)

2. Improving book table. Currently book table contains limited field columns and it need to be extended in order to accommodate extra fields.

3. If we have a bibliographic record, we need convert it into MARC 21 format so that it can be processed by machines. (encoding Operation)

4. We need to have export feature i.e. exporting data to existing MARC 21 record in case if we want to append some data. (writing operation)

5. Since there are large number of fields and sub fields in MARC 21 so we will have option feature for the user which fields of record must be shown on view page. However we need to import all the field to our database.

6. A small profile for authors and publishers can be made.

7. We need add comment option on each record in order to have review of users.

8. We need improve the Front end of the project in order to make more user friendly.

Future Development

The current project only deals with bibliographic record and it can be extended to other formats like authority records, communication information.

Implementation

In order to implement MARC 21 import/export feature in Grandham I need to understand it thoroughly. MARC 21 is a huge document having 800+ fields and 3000+ subfields and it follows a particular format for encoding /decoding data. 1. First we need to import MARC file which can be done through ruby’s ‘file_filed_tag’ which supports all type of file. Once the file is selected by browsing and submitted, we need to read it in controller. Moreover we will have an option to select files from existing records too. Once we read it as a string we can decode it using ruby-marc library function MARC::Reader.decode(string).

2. Once we have decoded data describing leader, tags, control fields, and field value now we need to match the fields and tags with database value and find what they exactly mean. If any of the field does not matches with database it will go to default row of table and will be assign null value. It will be a tough task to make a huge database of MARC 21 control fields and sub fields and for this we will be using rails’ STI method. Using single table inheritance method we will be avoiding extra tables. We can omit some of the fields which are rarely used.

3. For adding columns in book table we just need to create another table. This is necessary as we want to decode every field of MARC record.

4. Converting existing bibliographic record into MARC 21 format record is basically an encoding process and for this we will be using MARC8 encoding scheme. We need to first create a blank marc record file using MARC::Record.new function. And after this we will append data to this file and by using library function MARC::Writer.encode(record) we will get encoded MARC record. The main task in this process is to append data to record. Every record has title, language_id, price, isbn, pages, year and many other fields. From these fields we need to generate leader, directory of tags, fields, sub-field, and field value with the help of MARC 21 format. Once we have these array of data we can use ‘record.append’ function to append it to record.

5. For any changes in existing MARC record first it need to be decoded and after the proper changes it can be again change back to marc record. In another way if we need to add any particular filed and subfield value it can be done through append function.

6. Since there will be a lot of information in a MARC 21 record and all of it may be not useful for a reader so we will restrict the flow of data in view of record. However we need to extract every field of the record as it may contain useful information.

7. For making front end better we can use bootswatch.com themes. Features like how many people liked the record, and how many viewed the record can be made using gem socialization.

8. A small profile for authors and publishers can be introduced which will have fields like name, his books, his qualification etc.

9. Another feature which can be introduced for the books is comment for receiving users review. This can be simply implemented using gem ‘act_as_commentable’.

Timeline (19th may to 18th August) · 19th may to 25th June

Importing MARC file will and extracting leader, tag, fields and subfields.

· 26th may to 1st June

Creating database of marc tags, fields and subfields.

· 2nd June to 22nd June

Decoding the file with the help of database.

· 23rd June to 24th June

Once the import feature is created I will test it using different type of marc records and its efficiency with large MARC files and modify book table. So it will take another 2 days.

· 25th June to 5th July

Now for encoding process i.e. converting a bibliographic record into MARC I have to create tags, fields, subfields and data value from the book table fields.

· 6th July to 17th July

Appending these data to newly created record and encoding it.

· 18th July to 25th July

Creating view of the decoded MARC file and deciding the fields which need to be shown.

· 28th July to 4th Aug

Creating profile for authors, publishers and adding comment feature.

· 5th Aug to 11th Aug

Implementing Bootswatch.com theme and adding CSS to project and showing number of visitors to page.

· 11th Aug to 18th Aug

Enhancing the code, making test file, and modifying documentation.


About me

I am Deepak Kumar, a junior year undergraduate student of Department of Electronics Engineering at Indian Institute of Technology (B.H.U.) Varanasi, one of the India’s premier engineering Institute. I have good hand on knowledge of ruby on rails, HTML, CSS, JavaScript, and SQLite. I have worked on many web application and my best one is www.schoolmitra.com during my summer internship 2013. Features on which I had worked under this project are event management, send alerts, bulletin board, and student database management. I know two of my batch mates who have worked in GSOC’13 Bhardwaj Machiraju and Rishabh Yadav.