Skip to content

Commit 30da0de

Browse files
Add files via upload
1 parent 6a7b43e commit 30da0de

1 file changed

Lines changed: 229 additions & 0 deletions

File tree

README (1).md

Lines changed: 229 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,229 @@
1+
# HAAG Website
2+
3+
Static site for the Human-Augmented Analytics Group (HAAG), Georgia Tech.
4+
No build step, no framework, no server-side code — every page is a
5+
self-contained HTML file with its own embedded CSS, deployed as static
6+
HTML via Cloudflare Pages. This replaces the previous WordPress-based
7+
site — there is no WordPress, no PHP, and no CMS admin in this setup.
8+
9+
---
10+
11+
## 1. Why this redesign
12+
13+
The previous HAAG site (WordPress, `sites.gatech.edu`) had grown
14+
organically over several semesters into a large set of loosely
15+
connected pages. Two problems stood out:
16+
17+
- **No way to find people.** There was no researcher directory at all —
18+
faculty, PhD researchers, postdocs, and students were mentioned
19+
incidentally across program pages, blog posts, and project write-ups,
20+
with no single place to browse who was working on what.
21+
- **Inconsistent design across pages.** Program pages, the homepage, and
22+
ad-hoc posts (semester reports, buddy program announcements, project
23+
pages hosted on entirely separate `sites.gatech.edu` subsites) didn't
24+
share a visual system, making the group look fragmented rather than
25+
like one coherent lab.
26+
27+
This redesign addresses both directly:
28+
29+
- **`people.html`** is a new page that didn't exist before — a
30+
searchable, filterable directory of researchers by name, role, and
31+
research area, plus a "Recently Featured" section surfacing blog
32+
posts and publications by name. This is the direct fix for "no way to
33+
find faculty and their work."
34+
- **`project-explorer.html`** consolidates project information that was
35+
previously scattered across a dozen separate `sites.gatech.edu`
36+
subsites (one per project) into a single browsable gallery, grouped
37+
by research area, with researchers and faculty collaborators listed
38+
up front instead of buried in project-specific pages.
39+
- **One shared design system** (Section 4) ties every page — homepage,
40+
program pages, directory, project gallery — to the same navy/gold GT
41+
branding, type system, and card patterns, so the site reads as one
42+
product instead of a collection of separate WordPress posts.
43+
44+
---
45+
46+
## 2. Contributors
47+
48+
| Contributor | Contribution |
49+
|---|---|
50+
| **Armando** | Designed all pages except the Recruitment Status page — homepage, faculty directory, project explorer, and the four program pages (Faculty Affiliates, PhD/Post-Doc, Data Science Research, Project Management), including the shared navy/gold design system all of them run on. |
51+
| **Mohammad** | Built the pipeline to get the codebase onto GitHub and deployed correctly on Cloudflare Pages. |
52+
| **Ash** | Designed the Recruitment Status page, contributed to the Faculty Affiliates page, and contributed to the overall site design. |
53+
54+
---
55+
56+
## 3. Site map
57+
58+
| File | Page | Owner / status |
59+
|---|---|---|
60+
| `index.html` | Homepage | New |
61+
| `faculty-affiliates.html` | Faculty Affiliates (FATE program) | New |
62+
| `phd-postdoc.html` | PhD / Post-Doc (CLEAR program) | New |
63+
| `data-science-research.html` | Data Science Research (FAIR-CS / CS 8903 & CS 6999) | New |
64+
| `project-management.html` | Project Management (MGT 8803 & CS 8803 Practicum) | New |
65+
| `project-explorer.html` | HAAG Project Explorer (project gallery) | New |
66+
| `people.html` | Researcher directory | New |
67+
| `people.yml` | Data file behind `people.html` | New |
68+
| `recruitment.html` | Recruitment status | Existing (teammate) |
69+
| `team-matching.html` | Team matching results | Existing (teammate) |
70+
| `recruitment.yml` | Data file behind `recruitment.html` | Existing (teammate) |
71+
72+
The naming conflict that used to exist here (the recruitment page and
73+
the homepage both pointing to `index.html`) has been resolved —
74+
`index.html` is now exclusively the homepage, and the recruitment page
75+
lives at `recruitment.html` with its nav links updated to match.
76+
77+
Every page's nav bar and footer link to all of the above by filename, so
78+
once everything is dropped into the same folder, the site is fully
79+
cross-linked.
80+
81+
### What each redesigned page solves
82+
83+
| Page | Problem before | How it's solved now |
84+
|---|---|---|
85+
| `index.html` | Homepage mixed a photo-blog layout with dense text, no visual hierarchy | Clear hero → stats → mission → programs → milestone timeline, in one consistent visual system |
86+
| `people.html` | No researcher directory existed anywhere on the old site | Searchable, filterable (role + keyword) grid of every researcher, with tags for research area |
87+
| `project-explorer.html` | Projects were scattered across ~10 separate `sites.gatech.edu` subsites, each with its own layout | Single gallery page, grouped by research area, with researchers/collaborators visible at a glance |
88+
| `faculty-affiliates.html`, `phd-postdoc.html`, `data-science-research.html`, `project-management.html` | Long, syllabus-style walls of text with no visual structure | Same content, restructured into scannable cards, numbered steps, and a sidebar for related programs/contacts |
89+
90+
---
91+
92+
## 4. How to update content
93+
94+
### Adding or editing a researcher (most common update)
95+
Open **`people.yml`**. Each researcher is a block under `researchers:`:
96+
97+
```yaml
98+
- name: Dr. Sarah Chen
99+
role: Faculty # must be exactly: Faculty | PhD | Postdoc | Undergraduate
100+
role_label: Faculty Advisor · Computer Science
101+
tags: [NLP, Human-AI Trust]
102+
profile_url: "#"
103+
```
104+
105+
Add a new block, edit an existing one, or delete one — then commit and
106+
push. `people.html` fetches this file at page load and renders the grid,
107+
so **no HTML or JS needs to change.** The `role` field must match one of
108+
the four filter chip values exactly (case-sensitive) or that person
109+
won't show up when someone filters by role.
110+
111+
The "Recently Featured" strip at the bottom of the page works the same
112+
way — edit the `features:` block in the same file.
113+
114+
### Editing any other page's text
115+
There's no CMS — open the `.html` file and edit the text directly. Each
116+
page is one file with markup and copy interleaved; search for the
117+
sentence you want to change. There is no templating, so a fact repeated
118+
across pages (e.g. HAAG's founding date) has to be updated in each file
119+
individually.
120+
121+
### Editing shared chrome (nav bar, footer, utility bar)
122+
This is the one real maintenance cost of the current approach: the nav
123+
bar, utility bar, and footer markup are **duplicated in every file**
124+
rather than pulled from one shared include. If you add a new page or
125+
rename one, you need to update the nav `<a>` list in every other HTML
126+
file to match. See [Section 7](#7-known-limitations--future-work) for
127+
the fix if this becomes painful.
128+
129+
---
130+
131+
## 5. Design system reference
132+
133+
All pages share the same tokens, defined at the top of each file's
134+
`<style>` block:
135+
136+
```css
137+
--navy: #003057; /* GT brand navy — primary color */
138+
--navy-light: #0C4A7A; /* gradient accent */
139+
--gold: #B3A369; /* GT Tech Gold — accents, borders, buttons */
140+
--gold-mid: #A4925A; /* button hover state */
141+
--gold-dark: #857437; /* text on light gold backgrounds */
142+
--paper: #FAFAF8; /* page background */
143+
--ink: #1B1F23; /* body text */
144+
--mute: #5B6670; /* secondary/caption text */
145+
--line: #E2E5E8; /* borders */
146+
```
147+
148+
Typography: **Archivo** (headings, loaded from Google Fonts) and
149+
**IBM Plex Mono** (eyebrows, labels, badges, tags). Body copy uses system
150+
sans (Helvetica Neue / Arial).
151+
152+
If you want to change a color or font sitewide today, you'd do a
153+
find-and-replace across every file — see Section 7 for why, and how to
154+
fix it going forward.
155+
156+
---
157+
158+
## 6. Deployment
159+
160+
This site deploys as **static HTML on Cloudflare Pages** — not
161+
WordPress, not GitHub Pages, and not embedded into `sites.gatech.edu`.
162+
There is no PHP, no WordPress admin, no plugin layer, and no build step
163+
to configure.
164+
165+
1. Push all files (the HTML pages, `people.yml`, `recruitment.yml`) to
166+
the Git repo connected to the Cloudflare Pages project.
167+
2. In the Cloudflare Pages project settings: **no build command**, and
168+
set the build output directory to the repo root (or wherever these
169+
files live in the repo) since there's nothing to compile — Cloudflare
170+
just serves the files as-is.
171+
3. Cloudflare Pages auto-deploys on every push to the connected branch.
172+
Set up a preview branch/environment if you want to review changes
173+
before they go live on the production domain.
174+
4. Point HAAG's domain (or a `sites.gatech.edu` redirect, if that's
175+
being retired in favor of the new domain) at the Cloudflare Pages
176+
project once it's verified.
177+
178+
**Two things this depends on that a local double-click won't give you:**
179+
- `people.html` (and `recruitment.html`) **fetch a `.yml` file over
180+
HTTP.** Opening the file directly from your filesystem (`file://`)
181+
will fail with a CORS/fetch error — it must be served over HTTP, which
182+
Cloudflare Pages does automatically once deployed. If you want to test
183+
locally first, run `python3 -m http.server` in the folder and visit
184+
`http://localhost:8000/people.html`.
185+
- Google Fonts (Archivo, IBM Plex Mono) and the `js-yaml` library both
186+
load from CDNs at runtime. If GT's network ever blocks
187+
`fonts.googleapis.com` or `cdnjs.cloudflare.com`, fonts will silently
188+
fall back to system fonts and the YAML-driven pages will show a "could
189+
not load" error instead of a grid. Worth a one-time check from a
190+
campus network before launch.
191+
- **If deploying via Cloudflare's Direct Upload (drag-and-drop), drag
192+
the *contents* of the project folder, not the folder itself.**
193+
Zip downloads (e.g. GitHub's "Download ZIP") extract into a wrapper
194+
folder like `haag-project-explorer-main/`. If you drag that whole
195+
wrapper folder into Cloudflare's upload box, every file ends up
196+
nested one level too deep (`haag-project-explorer-main/index.html`
197+
instead of `index.html` at the root), and every page except whichever
198+
one Cloudflare's SPA fallback happens to serve will 404. Open the
199+
folder first, select everything *inside* it, and drag that selection
200+
instead. This is also the reason a fresh deployment or a rollback
201+
won't fix the problem if the upload itself has this nesting — check
202+
a deployment's **Assets uploaded** list under its Details page to
203+
confirm `index.html` (and the rest) show up at the top level, not
204+
inside a subfolder.
205+
206+
---
207+
208+
## 7. Known limitations & future work
209+
210+
These aren't blockers to shipping, but worth knowing about:
211+
212+
- **Duplicated chrome.** As noted above, the nav/footer/utility bar HTML
213+
is copy-pasted into all 9 files. Fine at this size; if the site grows
214+
past ~15 pages, consider moving to a static site generator that
215+
Cloudflare Pages can build directly (Eleventy, Astro, and Hugo are all
216+
supported with a build command in the Pages project settings) so
217+
nav/footer live in one shared layout file instead of being duplicated
218+
by hand.
219+
- **Placeholder data.** `people.yml` has 15 sample researchers with
220+
invented names/tags — swap in real people before publishing.
221+
- **Project Explorer's source is unconfirmed** — built from HAAG's
222+
public "On-Going Projects" listing since the exact live
223+
`/haag-project-explorer/` page wasn't directly reachable; confirm it
224+
matches before publishing.
225+
- **No mobile testing done beyond CSS breakpoints** — the responsive
226+
rules are in place but haven't been checked on an actual device.
227+
- **Real contact emails and named staff are embedded** (e.g. CLEAR's
228+
contact, Faculty Affiliates' contact) — confirm those people are still
229+
correct and comfortable being listed before this goes live.

0 commit comments

Comments
 (0)