Giter Club home page Giter Club logo

Comments (1)

sdellis avatar sdellis commented on July 20, 2024

Here are my reasons for planning out a longer-term project and writing a "bookreader" to the IIIF spec using Backbone as the framework and the current BookReader as a guide:

  1. The IIIF Presentation API 2.0 Spec models content in a flexible way, however, it has an ontology unto itself. While concepts can be "mapped" to each other (canvas = leaf = page) during implementation, it makes more sense to use the vocabulary and models defined in the spec -- for clarity's sake, if for nothing else.
    2.The IIIF Presentation API is written with a strong bias towards client-server implementations (Single-page JS frontend with RESTful backend, delivering JSON). The BookReader, on the other hand, simply takes a list of images as its pages with no additional information. For the time being, I'm just developing with local storage since Backbone's Sync API allows one to seamlessly go from local storage to a wide array of REST-based server storage options. As for Node.js, I was thinking of spinning up a sample REST API with Node, Express and MongoDB. I think the fact that MongoDB stores objects as JSON and the IIIF Spec assumes JSON and the app is Javascript will allow at least a few less headaches.
  2. The Backbone framework is, as I said, lightweight. A complete annotated source code is available, which is not the case with the other frameworks, and it's important for me to be able to "dispell the magic" if I need to. It is built to be used as a front-end client to a RESTful API. I think that it's structure would alleviate a lot of the "Frankenstein" effect, and provide a starting point for others to be able to contribute and extend.
  3. In order for the BookReader to be more than just a "reader", but perhaps an editor and discovery tool as well, I think we need to be able to build it with or without certain dependencies. We need to break code out into modules, and allow for minimal (and lightweight) use as well as more robust use. It should be as easy to implement as a jQuery plugin (at least in its most minimal manifestation).
  4. Essentially, all of this leads up to taking account of the changes that have been taking place in front-end development since the BookReader was implemented (build tasks, linting, dependency management, unit testing, etc.). The amount of refactoring adds up to rewriting/reinvention anyway, so I think it might be better used as a guide, rather than a vehicle.

That said, I like that the BookReader is pretty much pure JS and jQuery (there are many more things I like about the BookReader). I want to know what's going on at every level of the code. I feel like Backbone is a pretty good compromise.

from bookreader.

Related Issues (16)

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.