User:Govindsmenokee: Difference between revisions

From SMC Wiki
Line 38: Line 38:
=== An overview of your proposal ===
=== An overview of your proposal ===
This proposal is for the idea “Building a system and API's for accessing and updating Malayalamgrandham Bibliography Data”. www.malayalagrandham.com is a website providing bibliographic information for a large number of books. The earlier version of the webapp was built in a short period of time, due to which it lacks many of the essential features such as dynamic visualization, crowd sourcing MARC21 and MARCXML support, no proper linking between the tables ie no proper ER structure, also there is a need for data validation to ensure the user enters valid data into the fields. This proposal aims at solving all of the problems mentioned.<br />
This proposal is for the idea “Building a system and API's for accessing and updating Malayalamgrandham Bibliography Data”. www.malayalagrandham.com is a website providing bibliographic information for a large number of books. The earlier version of the webapp was built in a short period of time, due to which it lacks many of the essential features such as dynamic visualization, crowd sourcing MARC21 and MARCXML support, no proper linking between the tables ie no proper ER structure, also there is a need for data validation to ensure the user enters valid data into the fields. This proposal aims at solving all of the problems mentioned.<br />
The following feature must be implemented in the final application:
The following feature will be implemented in the final application:
*Facility for adding/linking copyright expired books to malaylagrandha vivaram
*Facility for adding/linking copyright expired books to malaylagrandha vivaram
*Adding ISBN & ISBN based seller discovery
*Adding ISBN & ISBN based seller discovery
Line 47: Line 47:
*MARC21 and MARCXML support
*MARC21 and MARCXML support
*A dynamic visualisation interface for book information browsing
*A dynamic visualisation interface for book information browsing
*proper API , and app work flow documentation
*proper API , and app work flow documentation.
The implementation is done using Django as a back end and Bootstrap as front end also mysql database will be used to store and retrive data.


=== The need you believe it fulfills ===
=== The need you believe it fulfills ===

Revision as of 14:04, 1 May 2013

Google Summer of Code 2013 Proposal for Swathanthra Malalayalam Computing

Building a system and API's for accessing and upadating Malayalamgrandham Bibligiography Data

Personal Information

Email Address                    ː govindsmenokee@gmail.com
Blog URL                         ː http://blogspotwith.blogspot.in/
Freenode IRC Nick                ː govindsmenokee
University and current education ː Calicut University, B.Tech Computer Science And Engineering


Why do you want to work with the Swathanthra Malayalam Computing?

Swathanthra Malayalam Computing (SMC) is a free software collective engaged in development, localization, standardization and popularization of various Free and Open Source Softwares in Malayalam language. I would really love to be a part of such an open source community. Localization can help many more people to come into the world wide web scenario.

Do you have any past involvement with the Swathanthra Malayalam Computing or another open source project as a contributor?

As of now no, but i would really love to contribute to an open source project

Did you participate with the past GSoC programs, if so which years, which organizations?

No, I have not participated in any of the previous GsoC programs.

Do you have other obligations between May and August ?

My semester exams end on May 29th. After that I will be able to work 40 hours a week.

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 will continue to support the Malayala Grandhavivaram project. My area of interest is Django web developments.

Why should we choose you over other applicants?

I have been a FOSS enthusiast for quite some time and this proposal is for Building a system and API's for accessing and upadating Malayalamgrandham Bibligiography Data which can be done using Django framework as a back-end. I have done my semester project in Django and have quite a good experience in working with Django framework. My semester project was done in Django 1.5 and is quite similar to this project. So I feel confident that I can do this project. The Details of my semester project are given below:
GITHUB: https://github.com/govindsmenokee/projectdequeue
ONLINE PORTAL: www.projectdequeue.cz.cc
INTRODUCTION: https://www.youtube.com/watch?v=4EFwVfpUsBk


Proposal Description

An overview of your proposal

This proposal is for the idea “Building a system and API's for accessing and updating Malayalamgrandham Bibliography Data”. www.malayalagrandham.com is a website providing bibliographic information for a large number of books. The earlier version of the webapp was built in a short period of time, due to which it lacks many of the essential features such as dynamic visualization, crowd sourcing MARC21 and MARCXML support, no proper linking between the tables ie no proper ER structure, also there is a need for data validation to ensure the user enters valid data into the fields. This proposal aims at solving all of the problems mentioned.
The following feature will be implemented in the final application:

  • Facility for adding/linking copyright expired books to malaylagrandha vivaram
  • Adding ISBN & ISBN based seller discovery
  • uilding Interface for Publishers through with they can contribute their publication bibliography .
  • Similar module for Libraries . That will be added to found in library section of each book
  • A module for building qr code of bibliography with a malayalagrandham link
  • Crowd sourced way for input and an approval queue interface for submissions.
  • MARC21 and MARCXML support
  • A dynamic visualisation interface for book information browsing
  • proper API , and app work flow documentation.

The implementation is done using Django as a back end and Bootstrap as front end also mysql database will be used to store and retrive data.

The need you believe it fulfills

The website www.malayalagrandham.com will provide users with a option to search for books from a large and growing database. Crowd sourcing will lead to rapid growth in th size of the database. The support for mobile devices will bring more number of users to the web application. The qrcodes will help in easier transfer of links to a book information that is stored in a central online repo. The application provides searches based on different parameters like Author, ISBN, Year etc.

Any relevant experience you have

I have done my semester project in Django and successfully completed it. I can easily work with Django framework in building back ends also have a great amount of experience working with the front ends like bootstrap. I run a web design company named WebopX which is a startup at Startup Village, Kochi. I have started working with the existing application, familiarized with the code and made some changes so as to run the application in the newer version of Django. After that started a new project from scratch stripped down the database with only the necessary details and started working with the application. Currently the results from the database are displayed on the web page after pagination limiting 10 result to a page.

How you intend to implement your proposal

The proposal for this project is a website with twitter bootstrap as front end and Django as its back end. The data will be stored in a mysql server(either the msqli driver or the mysql driver can be used). Django version 1.4.3 or above can be used for the project.

The final application will have the following features:
1. Users can anonymously search for book details.
2. Users can opt to register for a new account so as to add data or modify existing data.
3. There will be mainly 3 types of users:

1.Normal end user
2.The administrator
3.Verified authors or publishers

4. The normal end users can edit the data but it will be queued for admin verification.
5. There will be a proper interlinking between the data within the database.
6. The administrator can view the data logs and also modify the data using the administration module.
7. Fluid grid layouts or browser adaption techniques will be used in order to support mobile devices as majority of the users are having a smart phone and most of the web traffic is created by these devices. It will also be easier to create a browser based app for android, windows phone or any of the other platforms currently available.
8. Support for working with bibliographic data encoded in MARC21 using pymarc module.
9. Provide option for grouping incomplete tuples so as to easily fill up the missing details.
10. Django by default provides i18n support, so the application will have full i18n support. The default i18n can be activated by adding a line into the settings.py file(USE_I18N = True).
11. A qrcode will be associated with each book which can be generated from the weblink to that corresponding book.

Initially the login modules will be created, basically 3 types of users will be defined in the application as mentioned earlier. After the login system is created the administration module can be configured using which data can be visualized and edited. The following modules and plugins will be used to suppot the apllication:
1. Grappelli – Administration (cms)
2. Pymarc – For working with MARC21 formats.
3. Google chart api – dynamic qrcode generation
4. Django-bootstrapped – for enabling bootstrap template
5. Django-tagging-ng – for building taxonomy terms within the application
6. huey – for implementing the validation queues in administration modules
7. Django-pluggables – to produce reusable apps or api
8. Django-authority – for creating user types and set permissions
9. Django-balancer – this module will only be used if necessary ie, if the size of the database is very large and if the mysql server has large amounts of overloads then this module can be used to split up the data request among different databases.
10. Django-smuggler – for manipulating databses from within Django.


A rough timeline for your progress with phases


Duration Description Mile Stone
May 29 – June 16 Before Official Coding Period. Create a basic design and workflow. Collect all the necessary information regarding the modules and plugins and test them out.

Create a basic structure and workflow for the application and continue to work with the project which is already started(available at https://github.com/govindsmenokee/smc-grandham).

June 17 – July 1 Official Coding Period Starts Coding,Testing and Debugging of various modules of the the project.

Implement the modules according to the design and workflow created. implement all the basic back end features such as user registration, user authentication,search, addition of data, deletion, mapping etc Weekly contact and updates with the mentor regarding the project.

July 2 - July 20 Start workin on front end Start to work on the front end and create a miniature version of the application for the mid term evaluation.
July 21 - July 31 Prepare for mid term evaluation further enhancements to the application and detection and correction of errors in the application . Make the application perfect for the mid term evaluation.

Disussion with the mentor and addition and deletion of segments from the project.

August 1 - August 25 Advanced features

Implement the advanced features like MARC21 data import/export, qrcode generation, validation queues, crowd sourcing etc


August 26 - September 6 UX design and tweaking Implement the remaining front end design and improve the ux of the appplication tweak the ui so as to incorporate support mobile devices.
September 7 - September 13 Documentation Test the application for security flaws and make corrections as necessary. Do the documentation for the project.
September 14 onwards Extra time This is the extra time set aside so as to incorporate any delays in the development life-cycle.

If no delays occur this time can be utilized to further test the application and fix any other bugs. Prepare for the final evaluation.

Any other details you feel we should consider

It would be better if mobile support for the website is added will draw more number of users towards the application. Also a well defined taxonomy system can be implemented interlinking the terms such as Authors to books and vice-versa If possible Browser based mobile applications should be released onto multiple platforms so as to avoid fragmentation.

Tell us something about you have created

1. http://www.projectdequeue.cz.cc/
(Mirror:http://projectdequeue.webopx.com/projectdequeue.cz.cc/)
This is my semester project which consists of three inter-related components

1.A web server done using drupal core
2.A local server implemented using django
3.and a android application (works with the local server)

the local server which was done in django have some of the features required for this project such as qrcode generation etc. the link to the local server project is given below:
https://github.com/govindsmenokee/projectdequeue

My github profile is given below find other contributions there
https://github.com/govindsmenokee/


Have you communicated with a potential mentor? If so who?

Yes, I have communicated with the project mentor Anivar Aravind.

SMC Wiki link of your proposal

http://wiki.smc.org.in/User:Govindsmenokee