# Group Progress Reports

Static site for hosting progress reports across group projects.

The site is designed for Cloudflare Pages with no build step. Each project has one landing page, and each progress report is a standalone HTML file under that project.

## Structure

```text
/                         Global navigation homepage
/projects/                Project directory
/projects/<project-slug>/  Editable project landing page
/projects/<project-slug>/reports/YYYY-MM-DD-short-title.html
```

Core files:

- `index.html` is the main homepage.
- `projects/index.html` lists all projects.
- `data/projects.json` is the project and report manifest.
- `templates/project-template.html` is copied when adding a project.
- `templates/report-template.html` is copied when adding a report.
- `assets/site.css` and `assets/site.js` provide shared styling and navigation behavior.

## Cloudflare Pages

Recommended deployment settings:

- Framework preset: none/static
- Build command: leave blank
- Build output directory: `.`
- Production branch: `main`

## Add A Project

1. Choose a stable project slug, such as `robust-control`.
2. Create a directory at `projects/<project-slug>/`.
3. Copy `templates/project-template.html` to `projects/<project-slug>/index.html`.
4. In the copied project page, replace `PROJECT_SLUG_HERE` with the chosen slug.
5. Edit the visible project title, summary, status, contacts, and links.
6. Add the project to `data/projects.json`.

Example manifest entry:

```json
{
  "slug": "robust-control",
  "title": "Robust Control",
  "summary": "Progress reports for the robust control project.",
  "status": "active",
  "landingPath": "/projects/robust-control/",
  "reports": []
}
```

## Add A Report

1. Copy `templates/report-template.html`.
2. Save it under the relevant project:

```text
projects/<project-slug>/reports/YYYY-MM-DD-short-title.html
```

3. Edit the report content.
4. Add the report to that project's `reports` array in `data/projects.json`.

Example report manifest entry:

```json
{
  "date": "2026-05-14",
  "title": "Weekly Update",
  "period": "2026-05-08 to 2026-05-14",
  "authors": ["Name One", "Name Two"],
  "status": "on track",
  "path": "/projects/robust-control/reports/2026-05-14-weekly-update.html"
}
```

## Local Preview

From the repository root, run:

```sh
python3 -m http.server 8788
```

Then open:

```text
http://127.0.0.1:8788/
```
