Giter Site home page Giter Site logo

alexis-catherine / ezcatalog Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ediorg/ezcatalog

0.0 0.0 0.0 387 KB

A customizable data catalog for users of the EDI Data Repository

License: Other

JavaScript 75.08% Python 4.35% CSS 6.26% HTML 14.31%

ezcatalog's Introduction

ezCatalog

A customizable data catalog for users of the EDI Data Repository

Live demo

ezCatalog is based on the PASTA-JavaScript-Search-Client developed by Tim Whiteaker for the Long-Term Ecological Research Network (LTER).

Motivation

Researchers and organizations publishing data in the EDI Repository may wish to create a searchable data catalog on their website. This project includes code supporting such functionality.

Usage for Your Site

  1. Fork this GitHub repository.
  2. Initialize GitHub Pages for your fork. Go to Settings > Pages and select Source to be /root of the main branch.
  3. Construct a filter query to identify your data in the EDI Repository and to be listed in your catalog using one of the following options:
    • Unique Keyword - A unique keyword identifying your research group and published in the metadata of each of your EDI data packages can be used as a filter. For example, the research lab of Cayelan Carey publishes data with the keyword "Carey Lab" and the filter query '&fq=keyword:"Carey Lab"' returns all their data.
    • Data Package Identifiers - A list of data package identifiers in the form id:scope.identifier. For example, '&q=id:edi.23+id:edi.101+id:edi.845'returns the newest versions of data packages: edi.23, edi.101, and edi.845.
    • Scope - For LTER only. The scope identifying your LTER site. For example, '&fq=scope:knb-lter-cap' returns all data of the Central Arizona-Phoenix LTER.
  4. Add the filter query to config.txt and commit the changes.
  5. Enable GitHub Actions to build your catalog with the build_catalog workflow. Go to Actions and enable. Under Workflows select Build catalog, then Run workflow. Wait for the workflow to complete, then click the Live demo page to see your catalog (it may take a few minutes to update). Subsequent pushes to your fork will automatically rerun the build_catalog workflow.
  6. Copy the HTML snippet below and paste it into the body of your webpage. This will reference the catalog hosted on GitHub Pages from within your website.
<iframe loading="lazy" src="https://alexis-catherine.github.io/ezCatalog/public/demo.html" scrolling="no" allow="fullscreen" width="100%" height="2700px"></iframe>

View the page source code of the Jornada Basin LTER Data Catalog for an example of embedding an <iframe> in a webpage or experiment using the W3Schools HTML Tryit editor.

Features

Autocomplete

Autocomplete is currently supported for the creator and taxonomy input fields. Try typing a couple of characters into the creator box of the demo page and see what happens.

Autocomplete requires creating a list of possible choices, which is automatically generated each time the GitHub Actions workflow build_catalog runs.

Pagination

ezCatalog allows you to limit the number of results returned per page. If you do not wish to use pagination, set the limit parameter in config.txt to a number higher than the number of datasets available for your group.

Caveats

The success of search queries depends upon the metadata provided when submitting data to the EDI Data Repository.

Support

Please contact [email protected] for help setting up your catalog or resolving issues.

Scope

ezCatalog is a basic data catalog. If interested in developing a more feature rich catalog, we recommend checking out the video on Using the PASTA+ Search API to Create a Local Data Catalog.

Acknowledgments

CSV export uses uselesscode's JS CSV serializer (MIT Licensed): http://www.uselesscode.org/javascript/csv/

We use Pixabay's autocomplete plugin. Thanks Pixabay!

ezcatalog's People

Contributors

clnsmth avatar alexis-catherine avatar actions-user avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.