SimplyE is an Open Source Reading Platform built by libraries for libraries to improve access to ebooks from libraries.
The project aims to streamline the experience of borrowing electronic books from a public library. We offer:
- Mobile e-readers (iOS and Android) that focuses on patron experience and accessibility.
- Web Applications for Union eBook Catalog and integrated Web Reader
- Server Software for seamless integration of collections from multiple vendors.
- Easy access to a wide variety of public domain and open-access books.
Our goal is to make borrowing ebooks as easy as buying them.
This wiki is written by the Library Simplified developers and intended for use by technical staff at public libraries. For details on how to get your library involved, see the Library Simplified website.
Library Simplified is a collection of middleware, server software and mobile client applications for iOS and Android that libraries may use to deliver digital content to their patrons for experimentation or daily eBook services. It is designed to provide a unique user experience for the lending of eBooks and other digital content. It integrates with technologies and systems common to libraries like:
- A Integrated Library System/Library Management System (ILS/LMS)
- Online Public Access Catalogue (OPAC)
- Single Sign On (SSO) credential management system
- Commercial eBook hosting and distribution services
Front End (Mobile and Web)
Client-side Reader Applications
The client applications are currently contained in open repositories accept for the those DRM components that are derivative products which are in private repositories. Partner libraries may obtain access to the private repositories and the closed repositories for DRM that require a commercial license. Once the commercial license is obtained users can gain access to the code libraries that link to the commercial binaries distributed independently by the commercial DRM vendor.
- The iOS app is a native application written in Objective C and C++. There are optional cocoa pods for help ticket support. It can be built with or without DRM.
- The Android appis a native application written in Java and C++. There are optional components for help ticket support. It can be built with or without DRM.
Front-end Web Applications
There are three front-end web applications for the Simplified project:
- opds-web-client A generic catalog browser that can display any OPDS feed, and does not handle any circulation manager-specific OPDS extensions. The other applications build on this. This is a front-end application but the repo includes a demo server to run it. Demo: http://opds-browser-demo.herokuapp.com (Try this with NYPL's circ manager or Standard Ebooks)
- circulation-patron-web A patron-facing catalog app specifically for circulation managers. It does include circulation manager-specific things, and it can be themed differently for different libraries. This application has a Node server that runs independently of the circulation manager and does server-side rendering. This is currently only used in production by Open eBooks (https://catalog.openebooks.us). NYPL has a QA version.
- circulation-web The administrative interface for the circulation manager. This is the primary interface for system administrators to set up circulation manager settings and configure integrations, and it's used by every library that's deploying the circulation manager. It can also be used by libraries to edit book metadata and create lists and lanes. This is closely coupled to the circulation manager and requires a circulation manager to run. It will be served at "/admin".
- Web Reader A viewer application for web publications, based on Hadrien Gardeur's proof of concept
- The Circulation Manager is the main connection between a library's collection and Library Simplified's various client-side applications. It handles user authentication, combines licensed works with open access content from the Open Access Content Server, and data from the Metadata Wrangler. This application depends on the Server Core as a git submodule.
- The Server Core contains functionality common between various LS servers, including database models and essential class constants, OPDS parsers, and certain configuration details. The Open Access Content Server, Metadata Wrangler, and Circulation Managerall depend on this code base.
This functionality is being merged into the Circulation Manager as a core feature.
The Open Access Content Server collects and parses sources and preserves metadata for open access works, serving them up in a feed with verbose OPDS entries.
NOTE: This application depends on the Server Core as a git submodule.
- The Metadata Wrangler utilizes and intelligently amalgamates a wide variety of information sources for library ebooks and incorporates them into the reading experience for users by improving selection, search, and recommendations.
The data store contains information from a variety of sources, supporting the accurate classification and thorough metadata of book records. The Metadata Wrangler depends on the data store for its installation.
The project provides several tools for simplifying deployment of SimplyE Application servers.
Docker - Docker is an open-source project that automates the deployment of applications inside software containers, by providing an additional layer of abstraction and automation of operating-system-level virtualization on Linux. Docker can package an application and its dependencies in a virtual container that can run on any Linux server. This helps enable flexibility and portability on where the application can run, on premises, in a public cloud, on a private cloud, or bare metal machines.
Ansible - The Ansible is an opens source automation engine used to manage software and server environments. Ansible Playbooks are the files that are used by the open source automation engine, Ansible. The playbooks provide the instructions and information necessary to remotely provision the necessary Amazon Web Services environment to host the application. They also automate the deployment of the Library Simplified Circulation Manager Docker Containers, application servers, databases and other related applications.
Ansible Playbook Repositories
Amazon Web Services - Amazon EC2 provides a wide selection of instance types optimized to fit different use cases. Instance types comprise varying combinations of CPU, memory, storage, and networking capacity and give you the flexibility to choose the appropriate mix of resources for your applications. Each instance type includes one or more instance sizes, allowing you to scale your resources to the requirements of your target workload. For Library Simplified (at The New York Public Library) we are using a combination of T2 instances, Relational Database Services, Simple Storage Services, and Content Delivery Network services to implement a low cost, low latency, highly scalable Library Simplified environment.