Home - Joe23/capelin-opac GitHub Wiki
The project was originally hosted in Google code. Due to the changes in the google code, it was migrated here.
Capelin Bibliography Search
Description
Capelin OPAC is designed for special collections which does not fit for your Integrated Library System (ILS), such as article, chapter, thesis, and etc. which do not need circulation, user account management and etc. This is a stand alone application which can also be the back bone of your library system.
Capline OPAC provides the functionalities to Search, Administration Create/Retrieve/Update/Delete (CURD), Email, Export data and much more.
In the technical point of view, Capelin-OPAC is a framework-like solution for Online Public Access Catalog (OPAC), which contains full back-end relational database, search index, and front-end search. This one has its own CURD for the catalog administration and etc. In addition, the capelin-core and capelin-transaction are also design for MARC21 converter and index generator(from marc to relational database, e.g. MySQL, PostgreSQL, and lucene index).
Feature include
capelin-core
- Record Import (MARC21)
- CSV Import
- Record export
- Extend-able and flexible for further customization.
- Sample code available in case new field added.
capelin-transaction
- Database connected
- Record CRUD
- Lucene index generator which can be used for Solr.
- Catalog Search (AND, OR, NOT, ? , Fuzzy Search and etc)
capelin-mvc
- Web interface for CRUD
- Web interface for Search
- Printing cart and print page
- Paginate for the search result.
- Sort search result
- Travel Search results
- Keep record
- Sort kept record
- Ranged search (search between years)
- Theme and colors
- Email the selected records.
- Browse the record by Author/Title and etc.
- AJAX integration (Using DWR)
- JQuery integration.
This is pure Java implementation and targets for multi-collections.
Note: Because this project can read and write to a relational database. It is very easy to integrate with Apache Solr using DataImportHander. In this case, it is very flexible to be search by Vufind, or Blacklight
Note: This project is not scoped as an ILS. There is no intention to add check in check out, user information, account payment in the near future. However, you can start another project uses this one. But please follow the GNU AGPL License.
Architecture
- Relational Database. (MySQL, MS SQL, Oracle and etc)
- Hibernate ORM for database CRUD.
- Hibernate Search (Lucene at back)
- Springframework to wire everything up.
- Java Servlet Container. (Tomcat, Jetty and etc).
Back End
There are basically two approaches represent data
- A generic "Document" format
- A collection of domain-specific vocabularies The latter one is expensive for resource, time, programmer, development and etc. but very flexible to meet the need. Thanks to Java as a object oriented program language, all different kind of records can extend from the basic one. In the other words, Capelin OPAC should be very easy to be customized to meet your needs.
The capelin-core is mainly focus on data conversion. It can read data from different format (MARC21, CSV) and parse it into a Pain Old Java Object (POJO). More functionality such as exporting is proposed.
With the help of hibernate, wildly vendor of relational databases can be adapted.
Note: Capelin OPAC uses dual storage: a relational database for full record information, and Lucene index for fast search. There are many way to extract the data out of the Capelin OPAC in case switching to other technologies. e.g. Use MySQL Admin to extract data to CSV file from MySQL database.
Control Layer
Hibernate(3.2) is used for CURD, and Springframework is used for dependency injection. Hibernate search could not only cooperate with the Lucene search, but also update the index on the fly. Lucene 3.0.3 for index and search.
View Layer
Spring MVC is used for presentation layer. Tomcat is tested as Java Servlet Container. As the Lucene index is created. You should be able to use Solr/Jetty to provide Ajax Service for search. DWR for ajax calls
Further information
You can get some technical information at https://github.com/Joe23/capelin-opac/wiki/Getting-Started