minimalCM


Technological Architecture

minimalCM is a framework for building a very lightweight content management system intended for small or large digital libraries. It emphasizes a microservices approach. Also described as "microservice architecture", this approach structures an application as a collection of loosely coupled services which implement an intended purpose. A microservice architecture promotes simplicity and enables an evolving technology stack. The services defined for minimalCM are:

INDEXER

  • Accept metadata as input.
  • Add submitted metadata to a searchable index.
  • Configure index for field and full-text queries.
Solr (http://lucene.apache.org/solr/)

Installation Notes:

http://www.solrtutorial.com/solr-in-5-minutes.html


QUERY-RESULT

  • Accept user input in the form of search queries.
  • Execute search queries against an index.
  • Gather search results.
  • Send search results back to user as HTML.
Client Side option: SolrStrap - JavaScript (https://github.com/fergiemcdowall/solrstrap)

Server Side option: mini-euk - PHP (https://github.com/uklibraries/mini-euk)

Installation Notes:

A proxy for the Solr install is recommended if SolrStrap is used.

Some methods for this can be found at:

https://github.com/evolvingweb/ajax-solr/wiki/Solr-proxies


ITEM DISPLAY

  • Generate static HTML pages based on given metadata.
  • Store generated metadata pages within a Pair Tree directory structure.
  • Display static HTML pages for item view based on a URL.
minimalCM utilizes a static store of HTML pages in order to facilitate item views.

An example method for producing static HTML pages from JSON metadata can be found here. This is the method currently used to produce pages for the Kentucky Digital Newspaper Program.


EDIT

  • Web based metadata editing using static metadata files such as JSON or XML.
  • Version and store updated metadata files.
JSON formatted metadata is utilized within minimalCM. This facilitates easy indexing within Solr. minimalCM's static item view page generator also parses JSON formatted metadata. Any number of fields can be configured both for searching and for including in static item view pages. The JSON files containing metadata for minimalCM can be derived from any other metadata source such as CSV, XML, MARC, etc. minimalCM's metadata editor uses the JSONedit (https://github.com/mb21/JSONedit) opensource software. A demonstration site for this editor can be accessed here: http://mb21.github.io/JSONedit

Metadata editing is versioned. Edits to metadata also envoke re-indexing/indexing of content.


LOGO


Contributions

I conceived and continue to refine and extend the minimalCM framework. It is currently used to support the Daily Racing Form Archive (https://drf.uky.edu) and the Kentucky Digital Newspaper Program (https://kentuckynewspapers.org).