Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

845 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Research Website of B. L. Alterman

This repository contains the source code for the personal academic and professional portfolio of B. L. Alterman, a research astrophysicist. The website is built as a static site using Next.js and is hosted on GitHub Pages. It is designed to be a clean, professional, and easily maintainable platform to showcase research, publications, and professional experience.

A key feature of this project is its set of automated data workflows, which use GitHub Actions to periodically fetch and process data, ensuring the content remains up-to-date with minimal manual intervention.

Automated Data Workflows

The website relies on a series of GitHub Actions to automate content updates. Here is a breakdown of the key workflows found in the .github/workflows/ directory:

  • update-site-data.yml: Runs every Monday at 01:23 UTC as a single job. It fetches citation metrics and the publication list from the NASA ADS API (via ORCID), merges invited talks, generates publication statistics, derives year-by-year citation counts from ads_metrics.json, and regenerates the publication, h-index, and citation timeline plots, committing everything as one [automated] commit.
  • deploy.yaml: Builds the Next.js static export (output: 'export' in next.config.ts) and publishes it to GitHub Pages. It runs after a successful update-site-data.yml or convert-pdfs.yml, every Monday at 08:23 UTC, or on manual dispatch.
  • audit-deployed-data.yml: Runs every Monday at 12:23 UTC and checks the live site's data against the repository.
  • convert-pdfs.yml: Triggers on a push that updates the research-corpus submodule. It converts each paper's fig_*.pdf figures to SVG under public/papers/<paper_id>/figures/, falling back to PNG for very large figures.

Deployment: Pushing to main does not deploy by itself. Changes go live after the next data update or the Monday 08:23 UTC scheduled deploy, or immediately with gh workflow run deploy.yaml --ref main.

Data Architecture and Content Pipeline

The site is built with Next.js using the App Router, which allows for a statically generated website (output: 'export') that is fast, secure, and ideal for hosting on GitHub Pages. All data used to build the site is consolidated in the /public/data directory, which serves as the single source of truth.

Below is a breakdown of the key data files and their role in the content pipeline.

Publication Data

  • ads_publications.json:
    • Origin: Auto-generated weekly by the update-site-data.yml workflow.
    • Purpose: Contains the comprehensive list of all publications from NASA ADS.
    • Usage: Consumed by the Publications Page (src/app/publications/page.tsx) to build the various publication tables. It is also a key input for the generate_figure_data.py script.
  • ads_metrics.json:
    • Origin: Auto-generated weekly by the update-site-data.yml workflow.
    • Purpose: Contains key citation statistics (h-index, total citations, etc.).
    • Usage: Consumed by the Publications Page to display the summary metric cards.
  • citations_by_year.json:
    • Origin: Derived weekly from ads_metrics.json by scripts/derive_citations_by_year.py, run by the update-site-data.yml workflow.
    • Purpose: Contains yearly citation counts.
    • Usage: Used by its corresponding script to generate the plot at public/plots/citations_by_year.svg.

Research Content Data

  • research-topics/*.json (per-topic files):
    • Origin: Manually curated.
    • Purpose: Each file defines a research topic with title, description, primary figure reference, related figure references, related topics, and paper citation metadata.
    • Usage: Consumed by the Research Pages (src/app/research/[slug]/page.tsx) to generate topic subpages. Figure references are resolved against the figure registry at build time.
  • figure-registry.json:
    • Origin: Generated by scripts/generate_figure_registry_from_corpus.py from research-corpus metadata.
    • Purpose: Central registry of all figures with rich metadata (summaries, keywords, usage tracking across topics).
    • Usage: Consumed by research topic pages and figure detail pages (src/app/research/figure/[paper_id]/[figure_id]/page.tsx).

Experience Data

  • education.json & positions.json:
    • Origin: Manually curated.
    • Purpose: Contain structured data about academic degrees and professional history.
    • Usage: Consumed by the Experience Page (src/app/experience/page.tsx) to populate the education and professional position cards.

Local Development

To run the website locally, follow these steps:

  1. Install Dependencies:

    npm install
  2. Run the Development Server:

    npm run dev

This will start the Next.js development server, typically on http://localhost:9002.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages