Technologies Used

High level overview

This is a very basic framework overview.


_images/framework_level_overview.png

Invenio

INVENIO

Invenio is a free software suite enabling you to run your own digital library or document repository on the web. The technology offered by the software covers all aspects of digital library management, from document ingestion through classification, indexing, and curation up to document dissemination. Invenio complies with standards such as the Open Archives Initiative and uses MARC 21 as its underlying bibliographic format. The flexibility and performance of Invenio make it a comprehensive solution for management of document repositories of moderate to large sizes.

Invenio has been originally developed at CERN to run the CERN document server, managing over 1,000,000 bibliographic records in high-energy physics since 2002, covering articles, books, journals, photos, videos, and more. Invenio is nowadays co-developed by an international collaboration comprising institutes such as CERN, DESY, EPFL, FNAL, SLAC and is being used by many more scientific institutions worldwide.

INSPIRE is build on top of latest Invenio currently version is 3.0.

For a detailed description of how we use the different Invenio modules, see the Invenio modules section.

Flask

Flask is a microframework for Python based on Werkzeug, Jinja 2 and good intentions.

Official documentation for Flask.

Related tutorial.

Werkzeug

Werkzeug is a WSGI utility library for Python.

Official documentation for Werkzeug.

Jinja

Jinja2 is a modern and designer-friendly templating language for Python, modelled after Django’s templates.

Official documentation for Jinja.

SQLAlchemy

SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL. It provides a full suite of well known enterprise-level persistence patterns, designed for efficient and high-performing database access, adapted into a simple and Pythonic domain language.

Official documentation for SQLAlchemy.

Celery

Celery is a simple, flexible and reliable distributed system to process vast amounts of messages, while providing operations with the tools required to maintain such a system. It’s a task queue with focus on real-time processing, while also supporting task scheduling.

Official documentation for Celery.

ElasticSearch

Elasticsearch is a distributed, RESTful search and analytics engine capable of solving a growing number of use cases. As the heart of the Elastic Stack, it centrally stores your data so you can discover the expected and uncover the unexpected.

In addition, Elasticsearch provides a full Query DSL based on JSON to define queries and it’s used by INSPIRE.

Official documentation for ElasticSearch.

DSL documentation for ElasticSearch.

Angular js

(under construction)