eScholarship, the institutional repository and Open Access (OA) publishing platform for the University of California, is developed and provided by the California Digital Library. Content from eScholarship’s manuscript management/peer review system (a customized instance of the Open Journal System) and manual submission system (for all non-journal publications) is used by people across the world via our front-end access system.
Open Code
The code driving each eScholarship component is openly available in public code repositories:
Environment
All eScholarship systems are hosted on Amazon Linux servers using various AWS services.
Access System Architecture
Category | eScholarship 5 |
server O/S | Amazon Linux |
web server | Puma |
server framework | Sinatra + Sequel (Ruby); node.js for server-side prerendering (so-called “isomorphic javascript”) |
front-end framework | React with plugins, ES6+ Javascript (via Babel) |
front-end paradigm | “Single-page” app: smart client, API-only server |
CSS | SCSS pre-processed |
mobile support | fully responsive |
asset bundling | WebPack |
dev compilation | Gulp detects changes, rebuilds using WebPack, then triggers automatic browser refresh |
full-text indexing | Amazon CloudSearch (based on Solr/Lucene) |
metadata store/index | MySQL 5.7 database |
PDF rendering | client-side using PDF.js |
PDF splash pages | Java servlet + iText 7 library |
high-availability | Load balancer + two large servers |
item data storage | MerrittExpress, backed by an Amazon S3 bucket |
file distribution caching | CloudFront |
media streaming | HTTP with ranges |
preservation | |
identifiers | ARKs for all primary content; DOIs additionally for eScholarship journal articles on a per journal basis. |