You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
2.1 KiB
Markdown

# RESILIENCE — Microsite
Single-page institutional microsite for the **RESILIENCE** research project
(*Residential Energy-Efficiency Strategies Incorporating Lifecycle Sustainability
and Circular Economy*), INESC Coimbra.
- **Project code (Streamline):** SLC20260008
- **Client:** INESC Coimbra — Álvaro Gomes
- **Methodology:** Spec-Driven Development — see [`specs/`](./specs)
## Stack
Vite · React · TypeScript · Tailwind CSS v4 · shadcn/ui · @tanstack/react-router
· framer-motion · lucide-react.
## Getting started
```bash
npm install
npm run dev # dev server (http://localhost:5173)
npm run build # type-check (tsc -b) + production build
npm run preview # preview the production build
```
> **Requisito:** Node.js ≥ 18 e npm instalados e disponíveis no PATH.
## Docker (funcionamento isolado — recomendado)
Não requer Node no host: o build corre dentro da imagem (multi-stage node→nginx).
```bash
docker build -t resilience-microsite .
docker run --rm -p 8080:80 resilience-microsite # http://localhost:8080
# ou:
docker compose up --build
```
Ver [`specs/06-deployment.md`](./specs/06-deployment.md) para detalhes.
## Structure
```
src/
data/project.ts # conteúdo canónico (fonte: input_files/)
lib/ # utils + scroll helper
components/
ui/ # primitivos shadcn (button, card, badge, dialog, sheet)
layout/ # Header, Footer, Section
sections/ # Hero, Goal, WorkPlan, Gantt, Indicators
App.tsx # composição da single page
router.tsx # @tanstack/react-router (rota /)
```
## Sections
Header (anchors: Home · Work plan · Indicators) → Hero → Goal & contribution →
Work plan (cards + interactive Gantt) → Indicators (clickable cards) → Footer
(partners + funding).
## Notes
- Conteúdo em inglês; fonte de verdade em `input_files/` (não inventar conteúdo).
- Logos dos parceiros são placeholders até serem fornecidos (ver `specs/CHANGELOG.md`).
- Paleta navy institucional definida em `src/index.css` (afinável).