Overdrive API integration
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Evergreen |
Triaged
|
Wishlist
|
Jeff Davis |
Bug Description
SUMMARY:
Here is some code for integrating the Overdrive API into the TPAC. If possible, we'd like this code to be adopted and supported by the Evergreen community, ideally in time for the release of EG 2.8.
DETAILS:
Sitka has been developing some code that uses the Overdrive API to allow Evergreen users to perform certain Overdrive-related actions directly within the OPAC, including:
- check out a title
- place hold on a title
- view patron's current holds/checkouts
- suspend and cancel holds
The code for this project now lives in a contrib repo on the Evergreen git server:
http://
This is a Javascript-based add-on or overlay to the existing OPAC. It has a few dependencies that are new in Evergreen, including jQuery and require.js. The build-and-install process is outlined in the README. To actually enable/integrate it, a few minimal changes would need to be made in the TPAC, along the lines seen in Sitka's Evergreen repo here:
http://
Sitka has already deployed this in production for one of our libraries (we are running EG 2.6 with some customizations), but we don't want to retain ownership of the project in the long term. It would be great if the new functionality could be made generally available alongside the 2.8 release of Evergreen, either integrated directly into the main EG codebase (unlikely) or as a supported add-on (more likely).
A few considerations that have been raised so far:
1. As written, this code introduces new dependencies (jquery, jquery-ui, require.js) which aren't currently used by Evergreen. Are we comfortable with that? If not, can/should we rework the code to remove the dependencies, or re-implement Overdrive integration from scratch using whatever can be learned from this project, or...?
2. The code is written in Coffeescript and needs to be compiled to JS before deployment. This requires a recent version of node.js; the packaged version of node.js in Ubuntu 12.04 does not work (although 14.04 does). How should Evergreen accommodate these build requirements?
3. The code is tightly coupled to v1 of the Overdrive API. It may not be easily extensible to work with related APIs such as OneclickDigital's.
4. Some parts of this code are, as Galen put it, "delicate with respect to changes to the TPAC templates," so that minor changes to a .tt2 file could break Overdrive API integration.
5. The code was written under contract for Sitka (with copyright assigned to the BC Libraries Cooperative) and initially published under an MIT license, but the license and copyright statement were added to the source code relatively late, and not by the original developer. It may be desirable to further clarify copyright and licensing of the code.
6. I need to add more documentation. :)
Changed in evergreen: | |
milestone: | 2.8-beta → 2.next |
Changed in evergreen: | |
assignee: | nobody → Jeff Davis (jdavis-sitka) |
Adding initial review target of 2.8 beta as requested in IRC.