Giter Club home page Giter Club logo

tabula's Introduction

tabula icon Tabula

js-standard-style

"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.

About tabula

Tabula organizes code in an MVC-like way, so developers who are used to Ruby on Rails (and similar frameworks) will find the approach familiar. The data modeling extends the ever popular and enduring Backbone models and collections. Tabula keeps code simple by adhering to the concepts put forth in Human Javascript, and much credit is due to Henrik Joreteg and the folks at &yet in the development of this approach. Read more at Ampersand.js.

Get Started

npm install
npm start

Demo

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.

Features

Manifesto Integration

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:

this.manifest.getLabel()

Manifest Authoring

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.

Persistence

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.

Authentication

Tabula provides an example of authenticating with GitHub's OAuth implementation. This is a simple helper that should serve as an example for mixing in other types of authentication schemes.

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.

Contributing

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.

Roadmap

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.

tabula's People

Contributors

sdellis avatar

Stargazers

Nicolas Mermoud-Ghraichy avatar Jamie Folsom avatar Raffaele Viglianti avatar María A. Matienzo avatar Régis Robineau avatar

Watchers

 avatar James Cloos avatar

tabula's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.