Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions .zenodo.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,17 @@
"affiliation": "The Ohio State University"
}
],
"description": "<p>Catalog app for Imageomics code, data, models, and spaces hosted on GitHub and Hugging Face. It was designed for improved discoverability and searchability of Imageomics products, and the content is updated in real-time through calls to the GitHub and Hugging Face APIs.</p>\n<p>Catalog website: <a href=\"https://imageomics.github.io/catalog/\">imageomics.github.io/catalog/</a>.</p>\n<p>The repository also serves as a template for others looking to create a similar website to catalog their group's code, data, models, and demos.</p>",
"description": "<p>Catalog app for Imageomics code, data, models, and demos hosted on GitHub and Hugging Face. It was designed for improved discoverability and searchability of Imageomics products, and the content is updated in real-time through calls to the GitHub and Hugging Face APIs.</p>\n<p>Catalog website: <a href=\"https://imageomics.github.io/catalog/\">imageomics.github.io/catalog/</a>.</p>\n<p>The repository also serves as a template for others looking to create a similar website to catalog their group's code, data, models, and demos.</p>",
"keywords": [
"imageomics",
"code",
"data",
"models",
"spaces",
"demos",
"GitHub",
"GitLab",
"Codeberg",
"Hugging Face",
"APIs",
"inventory",
Expand All @@ -31,9 +34,9 @@
"searchability"
],
"title": "Imageomics Catalog",
"version": "4.3.0",
"version": "5.0.0",
"license": "MIT",
"publication_date": "2026-07-08",
"publication_date": "2026-08-18",
"grants": [
{
"id": "021nxhr62::2118240"
Expand Down
14 changes: 7 additions & 7 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This file provides guidance for AI coding agents (e.g., GitHub Copilot) working

## Project Overview

This is a **template repository** for a web-based catalog of an organization's public code, datasets, models, and spaces. It fetches live data from the code repository platform (such as GitHub) API and the platform API for hosting datasets and models (Hugging Face) and renders a searchable, filterable catalog page as a static site via GitHub Pages. The default setup is for the Imageomics Organization's GitHub and Hugging Face products.
This is a **template repository** for a web-based catalog of an organization's public code, datasets, models, and demos. It fetches live data from the code repository platform (such as GitHub) API and the platform API for hosting datasets and models (Hugging Face) and renders a searchable, filterable catalog page as a static site via GitHub Pages. The default setup is for the Imageomics Organization's GitHub and Hugging Face products.

## Critical: Templated Design

Expand Down Expand Up @@ -35,7 +35,7 @@ Path | Purpose
`src/api/` | Data fetching modules (`fetchCodeRepos.js`, `fetchHfRepos.js`, etc.).
`src/ui/` | DOM manipulation, HTML templating (`render.js`), and URL/State routing.
`src/utils/` | Pure utility functions (filtering, sorting, tag normalization).
`scripts/` | Build-time Node scripts (`fetch-releases.js`, `export-tags.js`).
`scripts/` | Build-time Node scripts and helpers (`fetch-releases.js`, `export-tags.js`).
`tests/` | Vitest unit and integration tests. Subdirectories mirror the `src/` folder layout.
`docs/` | Developer-facing documentation.
`.github/workflows/` | CI/CD: tests on PR, deploy on push to `main`, weekly tag scan.
Expand All @@ -50,7 +50,7 @@ Resource type | List (org) URL | Detail (single repo) URL
---|---|---
Datasets | `{API_BASE_URL}datasets?author={org}&full=true` | `{API_BASE_URL}datasets/{owner}/{repo}`
Models | `{API_BASE_URL}models?author={org}&full=true` | `{API_BASE_URL}models/{owner}/{repo}`
Spaces | `{API_BASE_URL}spaces?author={org}&full=true` | `{API_BASE_URL}spaces/{owner}/{repo}`
Spaces (demos) | `{API_BASE_URL}spaces?author={org}&full=true` | `{API_BASE_URL}spaces/{owner}/{repo}`

`API_BASE_URL` defaults to `https://huggingface.co/api/` (set in `config.yaml`).

Expand All @@ -60,7 +60,7 @@ Resource type | Link URL
---|---
Datasets | `https://huggingface.co/datasets/{owner}/{repo}`
Models | `https://huggingface.co/{owner}/{repo}` *(no `/models/` prefix)*
Spaces | `https://huggingface.co/spaces/{owner}/{repo}`
Spaces (demos) | `https://huggingface.co/spaces/{owner}/{repo}`

### Models Require a Secondary Per-Model Fetch

Expand Down Expand Up @@ -102,11 +102,11 @@ When adding a new utility to `src/`, add a corresponding test file. Do **not** a

All runtime behavior is controlled by `public/config.yaml`. It is fetched at page load (not bundled), so changes take effect on the next page load without a rebuild. Key fields:

- `ORGANIZATION_NAME` — used in all code repository platform API calls (GitHub is not case-sensitive)
- `ORGANIZATION_NAME` — used in all code repository platform API calls
- `HF_ORGANIZATION_NAME` — used in all Hugging Face API calls (**case-sensitive**)
- `API_BASE_URL` — Hugging Face API base (default: `https://huggingface.co/api/`)
- `PLATFORM` — code repository platform; only `github` is currently supported
- `ADDITIONAL_REPOS` — forked or external GitHub repos to include
- `PLATFORM` — code repository platform; `github`, `codeberg`, and `gitlab` are currently supported
- `ADDITIONAL_REPOS` — forked or external code repos to include
- `ADDITIONAL_HF_REPOS` — Hugging Face repos from outside the org to include (each entry needs `repo` and `type`)

The validator in `src/validateConfig.js` is the authoritative list of required config fields and their shapes.
Expand Down
17 changes: 10 additions & 7 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
abstract: "Catalog app for Imageomics code, data, models, and spaces hosted on GitHub and Hugging Face. It was designed for improved discoverability and searchability of Imageomics products, and the content is updated in real-time through calls to the GitHub and Hugging Face APIs. The repository also serves as a template for others looking to create a similar website to catalog their group's code, data, models, and demos."
abstract: "Catalog app for Imageomics code, data, models, and demos hosted on GitHub and Hugging Face. It was designed for improved discoverability and searchability of Imageomics products, and the content is updated in real-time through calls to the GitHub and Hugging Face APIs. The repository also serves as a template for others looking to create a similar website to catalog their group's code, data, models, and demos."
authors:
- family-names: "Campolongo"
given-names: "Elizabeth G."
Expand All @@ -11,21 +11,24 @@ authors:
given-names: "Balaji"
affiliation: "The Ohio State University"
cff-version: 1.2.0
date-released: "2026-07-08"
date-released: "2026-08-18"
identifiers:
- description: "The GitHub release URL of tag v4.3.0."
- description: "The GitHub release URL of tag v5.0.0."
type: url
value: "https://github.com/Imageomics/catalog/releases/tag/v4.3.0"
- description: "The GitHub URL of the commit tagged with v4.3.0."
value: "https://github.com/Imageomics/catalog/releases/tag/v5.0.0"
- description: "The GitHub URL of the commit tagged with v5.0.0."
type: url
value: "https://github.com/Imageomics/catalog/tree/287b1a702ca3c4fd4c55ceb1949f8c1fb3e2b85b" # Update on release
value: "https://github.com/Imageomics/catalog/tree/<commit-hash>" # Update on release
keywords:
- imageomics
- code
- data
- models
- spaces
- demos
- "GitHub"
- "GitLab"
- "Codeberg"
- "Hugging Face"
- APIs
- inventory
Expand All @@ -37,6 +40,6 @@ license: MIT
message: "If you use this software, please cite it as below."
repository-code: "https://github.com/Imageomics/catalog"
title: "Imageomics Catalog"
version: "4.3.0"
version: "5.0.0"
doi: "10.5281/zenodo.17602801"
type: software
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ Thank you for your interest in contributing to the catalog! This document outlin

## Overview

This catalog is built with JavaScript and relies on API calls to code, data, model, and spaces repositories to populate the web app in real time. Deployment only requires a static site-capable web server. The [Imageomics instance](https://catalog.imageomics.org) is currently deployed via GitHub Pages.
This catalog is built with JavaScript and relies on API calls to code, data, model, and demo repositories to populate the web app in real time. Deployment only requires a static site-capable web server. The [Imageomics instance](https://catalog.imageomics.org) is currently deployed via GitHub Pages.

This is a template repository designed to be copied (with "Use this Template") and customized by different organizations to present their code, data, models, and spaces in a dynamic, searchable site. The default setup is for the Imageomics Institute's GitHub and Hugging Face products.
This is a template repository designed to be copied (with "Use this Template") and customized by different organizations to present their code, data, models, and demos in a dynamic, searchable site. The default setup is for the Imageomics Institute's GitHub and Hugging Face products.

## Getting Started

Expand All @@ -24,7 +24,7 @@ UI features should be tested locally through running a preview.

## Coding Style, Conventions, and Project Structure

Please refer to our [AGENTS.md](AGENTS.md). This also includes special notes on key differences between the repo types (datasets, models, and spaces) in Hugging Face API calls and returns, as well as important considerations for the templated design of this repository.
Please refer to our [AGENTS.md](AGENTS.md). This also includes special notes on key differences between the repo types (datasets, models, and spaces/demos) in Hugging Face API calls and returns, as well as important considerations for the templated design of this repository.

## Contribution Process

Expand Down
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
# Imageomics Catalog [![DOI](https://zenodo.org/badge/1054290236.svg)](https://doi.org/10.5281/zenodo.17602801)

Repository for web-based catalog of Imageomics code, data, models, and spaces. This template catalog is designed to fetch live data from an organization's code repository platform (e.g., GitHub) API and dataset, model, and spaces repository data from the Hugging Face API to render a searchable, filterable catalog page as a static site via GitHub Pages. The default setup is for the Imageomics Institute's [GitHub](https://github.com/Imageomics) and [Hugging Face](https://huggingface.co/imageomics) organizations.
Repository for web-based catalog of Imageomics code, data, models, and demos. This template catalog is designed to fetch live data from an organization's code repository platform (e.g., GitHub) API and dataset, model, and spaces (demos) repository data from the Hugging Face API to render a searchable, filterable catalog page as a static site via GitHub Pages. The default setup is for the Imageomics Institute's [GitHub](https://github.com/Imageomics) and [Hugging Face](https://huggingface.co/imageomics) organizations.

For those interested in creating a similar catalog website or contributing to this template, instructions for use and personalization are provided below, under [How to Use this Template](#how-to-use-this-template). More background on this site's creation is provided in the [docs](docs/).

## Features

The website is styled using the [tailwindcss](https://tailwindcss.com/) package.

* **Real-time Data Fetching:** Displays all public organization repositories, fetched through the GitHub and Hugging Face APIs. Includes semantically meaningful virtual markers:
* **Real-time Data Fetching:** Displays all public organization repositories, fetched through the code platform (GitHub, GitLab, or Codeberg) and Hugging Face APIs. Includes semantically meaningful virtual markers:
* "New" badge highlights products created within the last 30 days;
* "🚀 version-tag" badge indicates a new release within the last 2 weeks for GitHub repos, and links to that release;
* Star (⭐️) or like (❤️) counts displayed for GitHub or Hugging Face repos, respectively;
* Archived badge flags GitHub repos no longer under active development (read-only).
* "🚀 version-tag" badge indicates a new release within the last 2 weeks for code repos, and links to that release;
* Star (⭐️) or like (❤️) counts displayed for code platform or Hugging Face repos, respectively;
* Archived badge flags code repos no longer under active development (read-only).
* **Search Functionality:** Quickly find items by keyword.
* **Filtering:** Filter by repository type (Code, Datasets, Models, Spaces) and tags. Optionally include archived GitHub repos.
* **Filtering:** Filter by repository type (Code, Datasets, Models, Spaces) and tags. Optionally include archived code repos.
* **Sorting:** Sort items by last updated, date created, stars/likes ascending or descending, or alphabetically.
* **URL Parameter Support:** Persist and share search states via URL hash (`#type=datasets&q=fish`) or query parameters (`?type=datasets`). Supports `type`, `q` (search query), `sort`, and `tag` parameters.
* **Responsive Design:** The layout is optimized for use on computers and mobile devices.
Expand All @@ -30,7 +30,7 @@ The site runs based on four primary files:
* `style.css`: Custom styling for the application, including color schemes, layout, and animations. Colors are set via CSS custom properties that are populated from `config.yaml`.
* `main.js`: Application manager, handles config loading, event listeners, and coordinates UI updates based on API fetches for dynamic rendering of the catalog items.
* `src/`: Modular application logic, organized by purpose:
* `api/`: Data fetching modules for external platforms (GitHub and Hugging Face).
* `api/`: Data fetching modules for external platforms (code and Hugging Face).
* `ui/`: DOM manipulation, HTML templating, and URL/State routing.
* `utils/`: Utility functions such as data filtering, sorting, and tag (keyword) normalization.

Expand Down
Loading
Loading