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