"Show, don't tell."
Tabula is a "starter kit" for native web applications (aka, "single-page apps") that make use of the IIIF Presentation API.
npm install npm start
You can log in with your GitHub username to play with tabula. The demo is in a rudimentary state and is set up as a simple slide show app, although not fully functional yet. It shows basic integration with GitHub repos (as potential annotation stores) and a Presentation library. This will be completed before the first release.
If you are just building a "read-only" application, you can take advantage of the wonderful Manifesto library, developed by the Universal Viewer lead developer, Ed Silverton (Digerati). Once you have retrieved your manifests using
fetch(), you have access to all the Manifesto methods. Here's a usage example for printing out a label:
One reason why Tabula does not make Manifesto more central to the core library is because it does not provide any "setter" methods. This may change in the future, but it has been more expedient, practical, and simple to use the Backbone/Ampersand architecture and all of the "freebies" that come with it, including authoring (setter) features. Authoring is under development.
The Tabula demo uses Repono (formerly Manifesto) as it's storage mechanism. Repono is a simple express.js server with a mongodb data store. Local storage could also be used without too much configuration. Other endpoints can easily be configured, but you will likely only be able to "read" and not write to them.
React and Hot Loading
Tabula uses a React view layer, which helps with managing state and performance. It also uses the react-hot-loader, so that code changes happen instantaneously in the browser, making for easy development. It also uses Stylus as a CSS pre-processor, which offers lots of power with utmost simplicity.
GitHub as an Annotation "Server"/Endpoint
One reason we have gone with GitHub as an authentication example is because GitHub can be used, with some facade-pattern-based middleware (currently vaporware), as an annotation endpoint. The current options for annotation servers with authentication is sparse, and can be hard to configure. GitHub provides a fairly simple API that can be used to create annotations. While one may authenticate using GitHub credentials, the ability to use it as an annotation store is still under development.
Contributions will be welcome after the initial release. Tabula uses Standard to enforce a simple code style. Unit tests are coming! They are the last step before official release of 1.0.0. All pull requests will need to pass tests and adhere to the Standard style guide.
As a "starter kit", Tabula seeks to be a simple reference application for the IIIF Presentation API. The name Tabula (latin for slate or tablet) was selected as a possible "namespace" for a suite of similar applications because it is a tablet with many possibilities. The notion of tabula rasa ("clean state" or "blank tablet") connotes a view of mind as originally blank, on which experience leaves marks. This notion is the basis of Empiricism and ultimately, the scientific method. Plans for instruction-oriented slide show (Tabula Eruditio) and musical "fakebook" (Tabula Musica) extension apps are already under way.