diff --git a/docs/architecture/admin-gui.md b/docs/features/admin-gui.md similarity index 100% rename from docs/architecture/admin-gui.md rename to docs/features/admin-gui.md diff --git a/docs/architecture/admin-tools.md b/docs/features/admin-tools.md similarity index 100% rename from docs/architecture/admin-tools.md rename to docs/features/admin-tools.md diff --git a/docs/architecture/api-gateway.md b/docs/features/api-gateway.md similarity index 100% rename from docs/architecture/api-gateway.md rename to docs/features/api-gateway.md diff --git a/docs/architecture/cms.md b/docs/features/cms.md similarity index 100% rename from docs/architecture/cms.md rename to docs/features/cms.md diff --git a/docs/architecture/monitoring.md b/docs/features/monitoring.md similarity index 100% rename from docs/architecture/monitoring.md rename to docs/features/monitoring.md diff --git a/docs/architecture/services/authentication.md b/docs/features/services/authentication.md similarity index 100% rename from docs/architecture/services/authentication.md rename to docs/features/services/authentication.md diff --git a/docs/architecture/services/csv-catalog-downloader.md b/docs/features/services/csv-catalog-downloader.md similarity index 100% rename from docs/architecture/services/csv-catalog-downloader.md rename to docs/features/services/csv-catalog-downloader.md diff --git a/docs/architecture/services/elasticsearch/elasticsearch.md b/docs/features/services/elasticsearch/elasticsearch.md similarity index 100% rename from docs/architecture/services/elasticsearch/elasticsearch.md rename to docs/features/services/elasticsearch/elasticsearch.md diff --git a/docs/architecture/services/elasticsearch/indexer.md b/docs/features/services/elasticsearch/indexer.md similarity index 100% rename from docs/architecture/services/elasticsearch/indexer.md rename to docs/features/services/elasticsearch/indexer.md diff --git a/docs/architecture/services/legacy-auth-middleware.md b/docs/features/services/legacy-auth-middleware.md similarity index 100% rename from docs/architecture/services/legacy-auth-middleware.md rename to docs/features/services/legacy-auth-middleware.md diff --git a/docs/architecture/services/mail.md b/docs/features/services/mail.md similarity index 100% rename from docs/architecture/services/mail.md rename to docs/features/services/mail.md diff --git a/docs/architecture/services/media-library.md b/docs/features/services/media-library.md similarity index 100% rename from docs/architecture/services/media-library.md rename to docs/features/services/media-library.md diff --git a/docs/architecture/services/organizations.md b/docs/features/services/organizations.md similarity index 100% rename from docs/architecture/services/organizations.md rename to docs/features/services/organizations.md diff --git a/docs/architecture/services/resources.md b/docs/features/services/resources.md similarity index 100% rename from docs/architecture/services/resources.md rename to docs/features/services/resources.md diff --git a/docs/architecture/web-app.md b/docs/features/web-app.md similarity index 100% rename from docs/architecture/web-app.md rename to docs/features/web-app.md diff --git a/docs/overview/index.md b/docs/overview/index.md new file mode 100644 index 0000000000000000000000000000000000000000..c0e65ce57d08b6aee95bad9f1f9729c2d31986e6 --- /dev/null +++ b/docs/overview/index.md @@ -0,0 +1,132 @@ +# Overview + +data.grandlyon.com is a web platform developed 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 of the various Core's clients, together with 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 project concerns the **Web Portal** component only. + +# Main features + +The data.grandlyon.com's Web Portal includes the following main features, oriented towards its 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 account, 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. + +# Architecture + +...an overview... + + +## Core components + +In alphabetical order: + +ID | Name | Type | Website | Usage +--- | --- | --- | --- | --- +C1 | Legacy AUTH | specific | | 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 Server + +The latter components are provided by the Core macro-component of the data.grandlyon.com platform, therefore they are beyond the scope of this development project. + +<!-- Notes: +* The component C1 is deemed as "legacy" because... --> + +## Off-the-shelf applications + +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 | MinIO | [Link](https://min.io/) | Object Store +A5 | Postfix | [Link](http://www.postfix.org/) | SMTP Server + + + +## Middlewares + +ID | Name | Repo | Doc | Usage | Deps +--- | --- | --- | --- | --- | --- +M1 | Legacy AUTH | ... | ... | user services, | C1 + +## Proxies + +ID | Name | Repo | Doc | Usage | Deps +--- | --- | --- | --- | --- | --- +P1 | Map Proxy | ... | ... | ... | C5 + + + +## Indexers + +ID | Name | Repo | Doc | Usage | Deps +--- | --- | --- | --- | --- | --- +I1 | Editorial Content | ... | ... | ... | A2 +I2 | Metadata and Data | ... | ... | ... | C3, C4 + + +## Services + +In alphabetical order: + +ID | Name | Repo | Doc | Usage | Deps +--- | --- | --- | --- | --- | --- +S1 | Authentication | ... | ... | Allowing the users to create accounts and to perform logins and logouts | M1, S5 +S2 | Changelog | [Link](https://gitlab.alpha.grandlyon.com/refonte-data/service-changelog) | ... | Keeping track of the new features available to users througout the developments| +S3 | Credits | ... | ... | Catalog of the Open Source initiatives powering the data.grandlyon.com project | S6 | +S4 | CSV Catalog Downloader | ... | ... | Allowing users to download cached CSV exports of the metadata catalog | C3 | +S5 | Mail | ... | [Link](../features/services/mail.md) | Sending e-mails to both end- and back-office users | A5 +S6 | Media Library | ... | ... | Managing the images shown across the various pages of the Web Portal (organizations, posts, ...) | +S7 | Organizations | ... | ... | A catalog of the partners of the data.grandlyon.com, typically Data Providers | S6 +S8 | Resources Helper | ... | ... | Assisting users in the composition of custom queries against the Core APIs | +S9 | Reuses | ... | ... | A catalog of the known reuses of the data shared through data.grandlyon.com | S6