# BR-CESSA Website

Full-stack official website for the **Belt and Road Climate, Environment and Sustainability
Scholar Alliance (BR-CESSA)**.

- **Frontend:** bilingual (English / 中文) multi-page site, navy & gold house style, interactive
  Belt-and-Road coverage map.
- **Backend:** Node.js + Express + EJS templates + SQLite. Online **Expression of Interest** form
  that saves submissions to the database, an **/admin** view with CSV export, and optional email
  notifications to the Secretariat.

## Run locally

```bash
cd website
cp .env.example .env     # set ADMIN_PASS
npm install
npm start                # http://127.0.0.1:3000
```

## Pages

| Route | Page |
|---|---|
| `/` | Home |
| `/about` | About / objectives |
| `/membership` | Two membership tiers |
| `/members` | Founding institutions, partner network, coverage map |
| `/governance` | Governance bodies |
| `/panels` | Climate / Environment / Sustainability panels |
| `/summit` | Inaugural Summit & timeline |
| `/fund` | International Collaboration Fund |
| `/news` | News & events |
| `/join` | **Online Expression of Interest form** → saves to DB |
| `/contact` | Contact the Secretariat |
| `/admin` | Submissions table + CSV (HTTP Basic Auth) |

## Project layout

```
website/
  server.js           Express app + routes + EOI handler + admin
  db.js               SQLite schema & queries
  mailer.js           optional SMTP notification
  views/              EJS (layout.ejs + pages/*.ejs)
  public/             css, js, images, jsvectormap lib
  deploy/             systemd service + nginx config
  DEPLOYMENT.md       step-by-step deploy to br-cessa.ust.hk
  SERVER-ACCESS.md    how to reach the VM (VPN + SSH)
```

See **DEPLOYMENT.md** to publish to the HKUST VM, and **SERVER-ACCESS.md** for server login.

## Editing content

- Text lives in the EJS pages under `views/pages/`. Each visible string has an English
  (`<span class="en">`) and Chinese (`<span class="zh">`) version — edit both.
- Founding institutions & logos: `views/pages/members.ejs` + `public/img/*.png`.
- Fund amounts, dates, timeline: the relevant page EJS.
- Sections marked `[...]` / `[content to be finalised]` are placeholders awaiting your input.
