Newer
Older
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:
```plantuml
@startuml
package "data.grandlyon.com" {
() "API" - [Core]
[Web Portal] .> [API] : uses
}
@enduml
```
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:
```plantuml
@startuml
package "3rd-party Client Application" {
[Some Component]
}
package "data.grandlyon.com" {
() "API" - [Core]
[Web Portal] .> [API] : uses
}
[Some Component] .> [API] : uses
@enduml
```
**This development project concerns the Web Portal component only.**
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 <br> F1 - Presenting metadata (title, description, terms, ...) <br> F2 - Showing tabular views of data (if applicable) <br> F3 - Showing map views of data (if applicable) <br> F4 - Showing linked resources (APIs, files) <br> F5 - Performing full-text searches against data and metadata <br> F6 - Performing faceted searches against metadata <br> F7 - Composing custom queries against the Core APIs | end-users
Users | F8 - Creating/updating/deleting accounts <br> F9 - Performing logins and logouts <br> F10 - Gaining access to restricted-access resources <br> | end-users
Editorial Content | F11 - Editing static pages (approach, terms of use, ...) <br> F12 - Displaying static pages (approach, terms of use, ...) <br> F13 - Editing articles <br> F14 - Displaying articles <br> F15 - Editing the catalog of partners (data producers, ...) <br> F16 - Displaying the catalog of partners (data producers, ...) <br> F17 - Editing the catalog of data reuses (applications, websites, articles, ...) <br> F18 - Displaying the catalog of data reuses (applications, websites, articles, ...) <br> F19 - Editing the catalog of the Open Source initiatives powering this project <br> F20 - Displaying the catalog of the Open Source initiatives powering this project | back-office <br> end-users <br> back-office <br> end-users <br> back-office <br> end-users <br> back-office <br> end-users <br> back-office <br> end-users
Support | F21 - Allowing users to contact the user support | end-users
<!-- * it showcases the datasets hosted by the Core component, presenting:
* metadata (title, description, terms, ...)
* tabular view (if applicable)
* map view (if applicable)
* linked resources (APIs, files)
* it allows users to
* perform full-text searches within data and metadata
* create accounts, establish authenticated sessions
* gain access to restricted-access datasets
* compose custom queries against the Core APIs
* contact the user support, provide feedback
* it shows editorial contents:
* static pages
* posts
* catalogs of
* partners (data producers, ...)
* reuses of data (applications, websites, articles, ...)
* Open Source software the project relies on -->
The data.grandlyon.com's Web Portal also features an independent GUI allowing the back-office users to administer the editorial content.
...an overview...
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 | Type | Website | Usage
--- | --- | --- | --- | ---
C1 | Legacy AUTH | custom | | AUTHN/AUTHZ service
C2 | PostgreSQL + PostGIS | off-the-shelf | [Link](https://postgis.net/) | Data Source
C3 | GeoNetwork | off-the-shelf | [Link](https://www.geonetwork-opensource.org/) | Metadata Catalog
C4 | MapServer | off-the-shelf | [Link](https://mapserver.org/) | WMS and MVT Server
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.
<!-- Notes:
* The component C1 is deemed as "legacy" because... -->
ID | Name | Website | Usage
--- | --- | --- | ---
A1 | Elasticsearch | [Link](https://www.elastic.co/fr/products/elasticsearch) | Search Engine
A2 | Ghost | [Link](https://ghost.org/) | Headless CMS
A3 | Kong | [Link](https://konghq.com/kong/) | API Gateway
A4 | Matomo | [Link](https://matomo.org/) | Web Analytics
A5 | MinIO | [Link](https://min.io/) | Object Store
A6 | Postfix | [Link](http://www.postfix.org/) | SMTP Server
ID | Name | Lang | Repo | Doc | Usage | Deps
--- | --- | --- | --- | --- | --- | ---
M1 | Legacy AUTH | TS | [Link](https://forge.grandlyon.com/web-et-numerique/web-et-numerique-internet/data.grandlyon.com/web-portal/components/middlewares/legacy-auth.md) | [Link](../components/middlewares/legacy-auth.md) | 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 | C1, S5
ID | Name | Repo | Doc | Usage | Deps
--- | --- | --- | --- | --- | ---
P1 | Web Mapping Services | [Link](https://forge.grandlyon.com/web-et-numerique/web-et-numerique-internet/data.grandlyon.com/web-portal/components/proxies/web-mapping-services) | [Link](../components/proxies/web-mapping-services.md) | Proxying requests that the Web Portal performs against the cartographic Web Services (WMS, MVT) hosted by data.grandlyon.com's Core macro-component| A1, C4
The following custom indexers are used to index documents in Elasticsearch (A1) in order to make them full-text searchable.
ID | Name | Repo | Doc | Usage | Deps
--- | --- | --- | --- | --- | ---
I1 | Editorial Content | [Link](https://forge.grandlyon.com/web-et-numerique/web-et-numerique-internet/data.grandlyon.com/web-portal/components/indexers/editorial-content) | [Link](../components/indexers/editorial-content.md) | Indexing the posts and pages edited via Ghost | A2
I2 | Metadata and Data | [Link](https://forge.grandlyon.com/web-et-numerique/web-et-numerique-internet/data.grandlyon.com/web-portal/components/indexers/metadata-and-data) | [Link](../components/indexers/metadata-and-data.md) | Indexing the metadata and data hosted, respectively, by data.grandlyon.com's catalog (C3) and database (C4) | C3, C4
### Tools
ID | Name | Repo | Doc | Usage | Deps
--- | --- | --- | --- | --- | ---
T1 | MinIO master-slave replication tool | [Link](https://forge.grandlyon.com/web-et-numerique/web-et-numerique-internet/data.grandlyon.com/web-portal/components/tools/minio-master-slave-mirror) | [Link](../components/tools/minio-master-slave-mirror.md) | Replicating/mirroring the assets stored in one "master" instance of MinIO to some other "slave" instances | A5
In alphabetical order:
ID | Name | Repo | Doc | Usage | Deps
--- | --- | --- | --- | --- | ---
S1 | Authentication | [Link](https://forge.grandlyon.com/web-et-numerique/web-et-numerique-internet/data.grandlyon.com/web-portal/components/services/authentication) | [Link](../components/services/authentication.md) | Allowing users to create accounts and to perform logins and logouts | A3, S5
S2 | Changelog | [Link](https://forge.grandlyon.com/web-et-numerique/web-et-numerique-internet/data.grandlyon.com/web-portal/components/services/changelog) | [Link](../components/services/changelog.md) | Keeping track of the new features available to users throughout the developments|
S3 | Credits | [Link](https://forge.grandlyon.com/web-et-numerique/web-et-numerique-internet/data.grandlyon.com/web-portal/components/services/credits) | [Link](../components/services/credits.md) | Catalog of the Open Source initiatives powering the data.grandlyon.com project | |
S4 | CSV Catalog Downloader | [Link](https://forge.grandlyon.com/web-et-numerique/web-et-numerique-internet/data.grandlyon.com/web-portal/components/services/csv-catalog-downloader) | [Link](../components/services/csv-catalog-downloader.md) | Allowing users to download cached CSV exports of the metadata catalog | C3 |
S5 | Mailer | [Link](https://forge.grandlyon.com/web-et-numerique/web-et-numerique-internet/data.grandlyon.com/web-portal/components/services/mailer) | [Link](../components/services/mailer.md) | Sending e-mails to both end- and back-office users | A6
S6 | Media Library | [Link](https://forge.grandlyon.com/web-et-numerique/web-et-numerique-internet/data.grandlyon.com/web-portal/components/services/media-library) | [Link](../components/services/media-library.md) | Managing the images shown across the various pages of the Web Portal (organizations, posts, ...) |
S7 | Organizations | [Link](https://forge.grandlyon.com/web-et-numerique/web-et-numerique-internet/data.grandlyon.com/web-portal/components/services/organizations) | [Link](../components/services/organizations.md) | A catalog of the partners of the data.grandlyon.com, typically Data Providers | S6
S8 | Resources Helper | [Link](https://forge.grandlyon.com/web-et-numerique/web-et-numerique-internet/data.grandlyon.com/web-portal/components/services/resources-helper) | [Link](../components/services/resources-helper.md) | Assisting users in the composition of custom queries against the Core APIs |
S9 | Reuses | [Link](https://forge.grandlyon.com/web-et-numerique/web-et-numerique-internet/data.grandlyon.com/web-portal/components/services/reuses) | [Link](../components/services/reuses.md) | A catalog of the known reuses of the data shared through data.grandlyon.com | S6
S10 | Social Media Share Helper | [Link](https://forge.grandlyon.com/web-et-numerique/web-et-numerique-internet/data.grandlyon.com/web-portal/components/services/social-media-share-helper) | [Link](../components/services/social-media-share-helper.md) | ... | ...
ID | Name | Repo | Doc | Usage | Deps
--- | --- | --- | --- | --- | ---
D1 | Web App | [Link](https://forge.grandlyon.com/web-et-numerique/web-et-numerique-internet/data.grandlyon.com/web-portal/components/custom-apps/web-app) | [Link](../components/custom-apps/web-app/overview.md) | Web Application representing the actual Web Portal as seen by its end-users | S[1,9]
D2 | Admin GUI | [Link](https://forge.grandlyon.com/web-et-numerique/web-et-numerique-internet/data.grandlyon.com/web-portal/components/custom-apps/web-app) | [Link](../components/custom-apps/admin-gui.md) | Back-office oriented web application allowing users to administrate some of the editorial content as well as the configuration of some functionality | S[1,3], S[6,9]
### Miscellaneous
ID | Name | Repo | Doc | Usage | Deps
--- | --- | --- | --- | --- | ---
M1 | Maintenance Page | [Link](https://forge.grandlyon.com/web-et-numerique/web-et-numerique-internet/data.grandlyon.com/web-portal/components/miscellaneous/maintenance-page) | [Link](../components/miscellaneous/maintenance-page.md) | A static HTML page to be used whenever the official site has to go offline because of some maintenance tasks |
<!-- <span id="test">mon test</span>
<a href='#test'>link</a> -->
# TODO
* Elasticsearch -> off-the-shelf app + custom cache & AUTHZ layer
* Scripts related to the Kong setup