diff --git a/README.md b/README.md index a1ca33d..879ef55 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@

This repository includes the documentation of the EOEPCA Resource Catalogue
- Explore the docs » + Explore the docs »
View Demo · @@ -44,8 +44,9 @@ ## Table of Contents -- [About the Project](#about-the-project) +- [Description](#description) - [Built With](#built-with) + - [Interfaces](#interfaces) - [Getting Started](#getting-started) - [Prerequisites](#prerequisites) - [Installation](#installation) @@ -60,92 +61,124 @@ -## About The Project +## Description -[![Product Name Screen Shot][screenshot1]](https://example.com) +The EOEPCA Resource Catalogue building block is built upon the upstream pycsw project. -Here's a blank template to get started: -**To avoid retyping too much info. Do a search and replace with your text editor for the following:** -`template-svce`, `twitter_handle`, `email` +pycsw is an OGC API - Records and OGC CSW server implementation written in Python. -### Built With +Started in 2010 (more formally announced in 2011), pycsw allows for the publishing and discovery of geospatial metadata via numerous APIs (CSW 2/CSW 3, OGC API - Records, STAC API, OpenSearch, OAI-PMH, SRU), providing a standards-based metadata and catalogue component of spatial data infrastructures. -- [Javalin framework](https://javalin.io/) -- [Log4j2](https://logging.apache.org/log4j/2.x/) + [YAML](https://yaml.org/) -- [Junit 5](https://junit.org/junit5/) +pycsw is Open Source, released under an MIT license, and runs on all major platforms (Windows, Linux, Mac OS X). It is an official [OSGeo Project](https://www.osgeo.org/projects/pycsw/). - +pycsw is [Certified OGC Compliant](https://www.ogc.org/resources/product-details/?pid=1661) and is an [OGC Reference Implementation](https://demo.pycsw.org/) -## Getting Started +[![Resource Catalogue Architecture][architecture]](https://resource-catalogue.demo.eoepca.org/) -To get a local copy up and running follow these simple steps. -### Prerequisites - -This is an example of how to list things you need to use the software and how to install them. +### Built With -- [Vagrant](https://www.vagrantup.com/docs/installation/) -- [EOEPCA Development Environment](https://github.com/EOEPCA/dev-env) +- [Python](https://www.python.org/) +- [pycsw](https://pycsw.org/) -### Installation +### Interfaces -1. Get into EOEPCA's development environment +The Resource Catalogue provides the following interfaces: +* OGC CSW 2.0.2 ([OGC Reference Implementation](https://www.ogc.org/resources/product-details/?pid=1661)) +* OGC CSW 3.0.0 ([OGC Reference Implementation](https://www.ogc.org/resources/product-details/?pid=1661)) +* OGC API - Records - Part1:Core ([Early Implementation](https://github.com/opengeospatial/ogcapi-records/blob/master/implementations.md#pycsw)) +* STAC API 1.0.0 ([Listed in STAC API Servers](https://stacspec.org/en/about/tools-resources/)) +* OpenSearch with OGC EO, Geo and Time extensions -```sh -vagrant ssh -``` +[![Resource Catalogue Landing Page Screen Shot][screenshot]](https://resource-catalogue.demo.eoepca.org/) -3. Clone the repo +The Resource Catalogue data model is based on ISO 19115-1/2 -```sh -git clone https://github.com/EOEPCA/template-svce.git -``` +Metadata registration can be done by the following ways: +* Transaction interfaces (OGC CSW-T or OGC API - Features - Part4: Create, Replace, Update, Delete) +* Data Access Registrar +* Data Access Harvester +* Workspace API +* Registration API +* pycsw Python API +* pycsw admin CLI utility -4. Change local directory + -```sh -cd template-service -``` +## Getting Started -### Testing +To get a local copy up and running in 4 minutes follow these simple steps. + + # Setup a virtual environment: + python3 -m venv pycsw && cd pycsw && . bin/activate + + # Grab the pycsw source code: + git clone https://github.com/geopython/pycsw.git && cd pycsw + pip3 install -e . && pip3 install -r requirements-standalone.txt + + # Create and adjust a configuration file: + cp default-sample.cfg default.cfg + vi default.cfg + # adjust paths in + # - server.home + # - repository.database + # set server.url to http://localhost:8000/ + + # Setup the database: + pycsw-admin.py setup_db --config default.cfg + + # Load records by indicating a directory of XML files, use -r for recursive: + pycsw-admin.py load_records --config default.cfg --path /path/to/xml/ + + # Run the server: + python ./pycsw/wsgi.py + + # See that it works! + curl http://localhost:8000 # OGC API - Records + curl http://localhost:8000/csw?service=CSW&version=2.0.2&request=GetCapabilities # CSW + + +### Deployment + +Resource Catalogue deployment is described [here](https://deployment-guide.docs.eoepca.org/current/eoepca/resource-catalogue/) in the [EOEPCA Deployment Guide](https://deployment-guide.docs.eoepca.org/current/eoepca/resource-catalogue/). -- `./gradlew build` runs only the unit tests -- `./gradlew integrationTest` runs only the integration tests (it compiles all source code beforehand). It does not package or deploy a build. - This is assumed to have been done in a prior build pipeline step. ## Documentation -The component documentation can be found at https://eoepca.github.io/template-svce/. +The component documentation can be found at https://docs.pycsw.org/en/latest/. + +EOEPCA related documents: +* [Resource Catalogue Interface Control Document](https://eoepca.github.io/rm-resource-catalogue/ICD/) +* [Resource Catalogue Software Design Document](https://eoepca.github.io/rm-resource-catalogue/SDD/) ## Usage -Use this space to show useful examples of how a project can be used. Additional screenshots, code examples and demos work well in this space. You may also link to more resources. +Resource Catalogue usage documentation is provided through the upstream pycsw project. + +* [pycsw Home Page](https://pycsw.org/) +* [pycsw Documenation](https://docs.pycsw.org/en/latest/) -_For more examples, please refer to the [Documentation](https://example.com)_ +A basic example of the Resource Catalogue usage: -### Running the template service +Using the landing page, the user can browse [collections](https://resource-catalogue.demo.eoepca.org/collections) and metadata [records](https://resource-catalogue.demo.eoepca.org/collections/metadata:main/items) through the HTML interface (provided by OGC API - Records) -Just execute the run task in Gradle +[![Resource Catalogue Items Page][screenshot1]](https://resource-catalogue.demo.eoepca.org/collections/metadata:main/items) -```sh -./gradlew run -``` +The user can find a catalogue record and browse the [metadata](https://resource-catalogue.demo.eoepca.org/collections/metadata:main/items/S2A_MSIL1C_20190920T104021_N0208_R008_T31UFQ_20190920T111121.SAFE) -### Upgrading Gradle Wrapper +[![Resource Catalogue Item Page][screenshot2]](https://resource-catalogue.demo.eoepca.org/collections/metadata:main/items/S2A_MSIL1C_20190920T104021_N0208_R008_T31UFQ_20190920T111121.SAFE) -Change the version number in the `build.gradle` wrapper task then run: +Alternatively the user can browse through the [JSON interface](https://resource-catalogue.demo.eoepca.org/collections/metadata:main/items?f=json) -```sh -./gradlew wrapper --gradle-version=4.10.2 --distribution-type=bin -``` +[![Resource Catalogue JSON Record][screenshot3]](https://resource-catalogue.demo.eoepca.org/collections/metadata:main/items/S2A_MSIL1C_20190920T104021_N0208_R008_T31UFQ_20190920T111121.SAFE?f=json) ## Roadmap -See the [open issues](https://github.com/EOEPCA/template-svce/issues) for a list of proposed features (and known issues). +See the [open issues](https://github.com/geopython/pycsw/issues) for a list of proposed features (and known issues). @@ -163,36 +196,38 @@ Contributions are what make the open source community such an amazing place to b ## License -Distributed under the Apache-2.0 License. See `LICENSE` for more information. +The EOEPCA components are distributed under the Apache-2.0 License. See `LICENSE` for more information. ## Contact -Your Name - [@twitter_handle](https://twitter.com/twitter_handle) - email +Angelos Tzotsos - [@tzotsos](https://twitter.com/tzotsos) - https://www.osgeo.org/member/angelos-tzotsos/ -Project Link: [https://github.com/EOEPCA/template-svce](https://github.com/EOEPCA/template-svce) +Project Link: [https://github.com/EOEPCA/rm-resource-catalogue](https://github.com/EOEPCA/rm-resource-catalogue) ## Acknowledgements -- []() -- []() - README.md is based on [this template](https://github.com/othneildrew/Best-README-Template) by [Othneil Drew](https://github.com/othneildrew). -[contributors-shield]: https://img.shields.io/github/contributors/EOEPCA/template-svce.svg?style=flat-square -[contributors-url]: https://github.com/EOEPCA/template-svce/graphs/contributors -[forks-shield]: https://img.shields.io/github/forks/EOEPCA/template-svce.svg?style=flat-square -[forks-url]: https://github.com/EOEPCA/template-svce/network/members -[stars-shield]: https://img.shields.io/github/stars/EOEPCA/template-svce.svg?style=flat-square -[stars-url]: https://github.com/EOEPCA/template-svce/stargazers -[issues-shield]: https://img.shields.io/github/issues/EOEPCA/template-svce.svg?style=flat-square -[issues-url]: https://github.com/EOEPCA/template-svce/issues -[license-shield]: https://img.shields.io/github/license/EOEPCA/template-svce.svg?style=flat-square -[license-url]: https://github.com/EOEPCA/template-svce/blob/master/LICENSE -[build-shield]: https://www.travis-ci.com/EOEPCA/template-svce.svg?branch=master +[contributors-shield]: https://img.shields.io/github/contributors/EOEPCA/rm-resource-catalogue.svg?style=flat-square +[contributors-url]: https://github.com/EOEPCA/rm-resource-catalogue/graphs/contributors +[forks-shield]: https://img.shields.io/github/forks/EOEPCA/rm-resource-catalogue.svg?style=flat-square +[forks-url]: https://github.com/EOEPCA/rm-resource-catalogue/network/members +[stars-shield]: https://img.shields.io/github/stars/EOEPCA/rm-resource-catalogue.svg?style=flat-square +[stars-url]: https://github.com/EOEPCA/rm-resource-catalogue/stargazers +[issues-shield]: https://img.shields.io/github/issues/EOEPCA/rm-resource-catalogue.svg?style=flat-square +[issues-url]: https://github.com/EOEPCA/rm-resource-catalogue/issues +[license-shield]: https://img.shields.io/github/license/EOEPCA/rm-resource-catalogue.svg?style=flat-square +[license-url]: https://github.com/EOEPCA/rm-resource-catalogue/blob/master/LICENSE +[build-shield]: https://www.travis-ci.com/EOEPCA/rm-resource-catalogue.svg?branch=master +[architecture]: images/resource_catalogue.png +[screenshot]: images/screenshot.png [screenshot1]: images/screenshot1.png +[screenshot2]: images/screenshot2.png +[screenshot3]: images/screenshot3.png diff --git a/images/resource_catalogue.png b/images/resource_catalogue.png new file mode 100644 index 0000000..74b7338 Binary files /dev/null and b/images/resource_catalogue.png differ diff --git a/images/screenshot.png b/images/screenshot.png new file mode 100644 index 0000000..6d1281a Binary files /dev/null and b/images/screenshot.png differ diff --git a/images/screenshot1.png b/images/screenshot1.png index 1d5bcf1..63f2c0e 100644 Binary files a/images/screenshot1.png and b/images/screenshot1.png differ diff --git a/images/screenshot2.png b/images/screenshot2.png new file mode 100644 index 0000000..12467d9 Binary files /dev/null and b/images/screenshot2.png differ diff --git a/images/screenshot3.png b/images/screenshot3.png new file mode 100644 index 0000000..24106b6 Binary files /dev/null and b/images/screenshot3.png differ