Skip to content
Snippets Groups Projects
Name Last commit Last update
..
docs/overview/index.md

Overview

data.grandlyon.com is a web platform owned by the Métropole de Lyon, aiming at facilitating and promoting the sharing of (open) data provided by public and private actors of the Lyon metropolitan area.

data.grandlyon.com consists of two macro-components, a Web Portal and a Core:

In this respect, the Web Portal is just one among the (hopefully) many Core's clients, in the same way as 3rd-party client applications:

This development project concerns the Web Portal component only.

Main features

The data.grandlyon.com's Web Portal includes the following main features:

Concerned entity ID - Description Users
Datasets F0 - Download the entire dataset catalog as a CSV file
F1 - Presenting metadata (title, description, terms, ...)
F2 - Showing tabular views of data (if applicable)
F3 - Showing map views of data (if applicable)
F4 - Showing linked resources (APIs, files)
F5 - Performing full-text searches against data and metadata
F6 - Performing faceted searches against metadata
F7 - Composing custom queries against the Core APIs
end-users
Users F8 - Creating/updating/deleting accounts
F9 - Performing logins and logouts
F10 - Gaining access to restricted-access resources
end-users
Editorial Content F11 - Editing static pages (approach, terms of use, ...)
F12 - Displaying static pages (approach, terms of use, ...)
F13 - Editing articles
F14 - Displaying articles
F15 - Editing the catalog of partners (data producers, ...)
F16 - Displaying the catalog of partners (data producers, ...)
F17 - Editing the catalog of data reuses (applications, websites, articles, ...)
F18 - Displaying the catalog of data reuses (applications, websites, articles, ...)
F19 - Editing the catalog of the Open Source initiatives powering this project
F20 - Displaying the catalog of the Open Source initiatives powering this project
F21 - Sharing content on social media
back-office
end-users
back-office
end-users
back-office
end-users
back-office
end-users
back-office
end-users
any
Support F22 - Allowing users to contact the user support end-users

The data.grandlyon.com's Web Portal also features an independent GUI allowing the back-office users to administer the editorial content.

Architecture

[...an overview...]

microservice-architecture

Components

Core components

The following table lists, in alphabetical order, the components of data.grandlyon.com's Core macro-component that are used by the Web Portal:

ID Name Usage Type Website
C1 Legacy AUTH AUTHN/AUTHZ service custom
C2 PostgreSQL + PostGIS Data Source off-the-shelf Link
C3 GeoNetwork Metadata Catalog off-the-shelf Link
C4 MapServer WMS and MVT Server off-the-shelf Link

The latter components being provided by the Core macro-component of the data.grandlyon.com platform, their development is beyond the scope of this project.

Off-the-shelf applications

ID Name Usage Website
A1 Elasticsearch Search Engine Link
A2 Ghost Headless CMS Link
A3 Kong API Gateway Link
A4 Matomo Web Analytics Link
A5 MinIO Object Store Link
A6 Postfix SMTP Server Link

Middlewares

ID Name Usage Lang Repo Doc Deps
M1 Legacy AUTH Facilitating the interaction between the Web Portal Authentication Service (S1) and the AUTHN/AUTHZ Service (C1) hosted by data.grandlyon.com's Core macro-component TypeScript Link Link C1, S5

Proxies

ID Name Usage Lang Repo Doc Deps
P1 Web Mapping Services Proxying requests that the Web Portal performs against the cartographic Web Services (WMS, MVT) hosted by data.grandlyon.com's Core macro-component TypeScript Link Link A1, C4

Indexers

The following custom indexers are used to index documents in Elasticsearch (A1) in order to make them full-text searchable.

ID Name Usage Lang Repo Doc Deps
I1 Editorial Content Indexing the posts and pages edited via Ghost Python Link Link A2
I2 Metadata and Data Indexing the metadata and data hosted, respectively, by data.grandlyon.com's catalog (C3) and database (C4) Python Link Link C3, C4

Tools

ID Name Usage Python Repo Doc Deps
T1 MinIO master-slave replication tool Replicating/mirroring the assets stored in one "master" instance of MinIO to some other "slave" instances Python Link Link A5

Services

In alphabetical order:

ID Name Usage Lang Repo Doc Deps
S1 Authentication Allowing users to create accounts and to perform logins and logouts TypeScript Link Link A3, S5
S2 Changelog Keeping track of the new features made available to users TypeScript Link Link
S3 Credits Catalog of the Open Source initiatives powering the data.grandlyon.com project TypeScript Link Link
S4 CSV Catalog Downloader Allowing users to download cached CSV exports of the metadata catalog Python Link Link C3
S5 Mailer Sending e-mails to both front- and back-office users TypeScript Link Link A6
S6 Media Library Managing the images shown across the various pages of the Web Portal (organizations, posts, ...) TypeScript Link Link
S7 Organizations A catalog of the partners of the data.grandlyon.com, typically Data Providers TypeScript Link Link S6
S8 Resources Helper Assisting users in the composition of custom queries against the Core APIs TypeScript Link Link
S9 Reuses A catalog of the known reuses of the data shared through data.grandlyon.com TypeScript Link Link S6
S10 Social Media Share Helper Sharing editorial content on social media TypeScript Link Link A1

Custom applications

ID Name Usage Lang Repo Doc Deps
D1 Web App Web Application representing the actual Web Portal as seen by its end-users TypeScript, HTML, CSS Link Link S[1,9]
D2 Admin GUI Back-office oriented web application allowing users to administrate some of the editorial content as well as the configuration of some functionality TypeScript, HTML, CSS Link Link S[1,3], S[6,9]

Miscellaneous

ID Name Usage Lang Repo Doc Deps
M1 Maintenance Page A static HTML page to be used whenever the official site has to go offline because of some maintenance tasks HTML, CSS Link Link

# TODO

  • Elasticsearch -> off-the-shelf app + custom cache & AUTHZ layer
  • Scripts related to the Kong setup