11# Cloud Native Provence — Landing Page
22
3- Astro-based conference website with bilingual routing (` fr ` / ` en ` ) and translated slugs.
3+ Conference website for Cloud Native Provence, with bilingual routing (` fr ` / ` en ` ) and translated page slugs.
44
5- ## Development workflow (Makefile-first)
5+ ## Development workflow
66
77Use ` make ` commands from the repository root.
88
@@ -15,21 +15,28 @@ Main targets:
1515- ` make setup ` — install project dependencies
1616- ` make start ` — start local dev server (` application ` )
1717- ` make build ` — production build
18+ - ` make test-app ` — run application tests with coverage
1819- ` make lint ` — run linters/checks
1920- ` make lint-fix ` — run fixers
2021- ` make ci ` — lint + build + test pipeline
2122
22- Do not run ` npm run ... ` directly unless you are explicitly debugging Makefile behavior.
23+ ## Tests and coverage
24+
25+ Tests run with Vitest from ` application/ ` .
26+
27+ ``` bash
28+ make test
29+ ```
2330
2431## Dev Container
2532
2633This repository includes a VS Code Dev Container in ` .devcontainer/devcontainer.json ` .
2734
28- ### Recommended usage
35+ Quick start:
2936
30371 . Open the repository in VS Code.
31382 . Run ` Dev Containers: Reopen in Container ` .
32- 3 . Once inside the container, run :
39+ 3 . Inside the container:
3340
3441``` bash
3542make setup
@@ -45,31 +52,36 @@ The dev container provides:
4552
4653The app is available on port ` 4321 ` .
4754
48- ## Current routing model
55+ ## Routing model
4956
50- Routing is locale-first and centralized.
57+ Routing is locale-first and centralized:
5158
5259- ` / ` redirects to ` /fr `
5360- ` /fr ` and ` /en ` are localized homepages
54- - ` /{lang}/{translated-slug} ` for content pages
61+ - ` /{lang}/{translated-slug} ` serves localized content pages
5562
5663Key files:
5764
5865- ` application/src/pages/index.astro ` — root redirect
5966- ` application/src/pages/[lang]/index.astro ` — localized homepage
6067- ` application/src/pages/[lang]/[page].astro ` — localized dynamic pages
61- - ` application/src/i18n/routes.ts ` — route slug mapping + path helpers
68+ - ` application/src/i18n/routes.ts ` — slug mapping and path translation helpers
6269
63- Example translated slugs :
70+ Translated static pages :
6471
65- - FR: ` /fr/a-propos ` , ` /fr/charte-graphique ` , ` /fr/politique-de-confidentialite `
66- - EN: ` /en/about ` , ` /en/brand-guidelines ` , ` /en/privacy-policy `
72+ - ` about ` → ` /fr/a-propos ` / ` /en/about `
73+ - ` contact ` → ` /fr/contact ` / ` /en/contact `
74+ - ` sponsoring ` → ` /fr/sponsoring ` / ` /en/sponsoring `
75+ - ` brand-guidelines ` → ` /fr/charte-graphique ` / ` /en/brand-guidelines `
76+ - ` terms ` → ` /fr/conditions-generales-utilisation ` / ` /en/terms-of-service `
77+ - ` privacy ` → ` /fr/politique-de-confidentialite ` / ` /en/privacy-policy `
6778
68- ## Project structure (current)
79+ ## Project structure
6980
7081``` text
7182/
7283├── .devcontainer/
84+ ├── .github/
7385├── Makefile
7486├── Dockerfile
7587├── README.md
@@ -79,41 +91,37 @@ Example translated slugs:
7991 ├── public/
8092 │ ├── _headers
8193 │ ├── robots.txt
82- │ └── .well-known/appspecific/com.chrome.devtools.json
83- └── src/
84- ├── assets/
85- ├── components/
86- ├── i18n/
87- │ ├── ui.ts
88- │ ├── utils.ts
89- │ └── routes.ts
90- ├── layouts/
91- ├── pages/
92- │ ├── [lang]/
93- │ │ ├── index.astro
94- │ │ └── [page].astro
95- │ ├── [...blog]/
96- │ ├── home/
97- │ ├── about/
98- │ ├── contact/
99- │ ├── sponsoring/
100- │ ├── brand-guidelines/
101- │ ├── terms/
102- │ ├── privacy/
103- │ ├── index.astro
104- │ ├── rss.xml.ts
105- │ └── 404.astro
106- └── utils/
94+ │ └── logos/
95+ ├── src/
96+ │ ├── assets/
97+ │ ├── components/
98+ │ ├── content/
99+ │ ├── data/
100+ │ ├── i18n/
101+ │ ├── layouts/
102+ │ ├── pages/
103+ │ │ ├── [...blog]/
104+ │ │ ├── [lang]/
105+ │ │ ├── about/
106+ │ │ ├── brand-guidelines/
107+ │ │ ├── contact/
108+ │ │ ├── home/
109+ │ │ ├── privacy/
110+ │ │ ├── sponsoring/
111+ │ │ ├── terms/
112+ │ │ ├── 404.astro
113+ │ │ ├── index.astro
114+ │ │ └── rss.xml.ts
115+ │ └── utils/
116+ └── vendor/
107117```
108118
109- ## Configuration
110-
111- Primary site configuration: ` application/src/config.yaml ` .
112-
113- Astro framework configuration: ` application/astro.config.ts ` .
119+ ## Configuration and build
114120
115- ## Build output
121+ - Site and app settings: ` application/src/config.yaml `
122+ - Astro configuration and integrations: ` application/astro.config.ts `
123+ - Static build output: ` application/dist/ `
116124
117- Production build output is generated in:
125+ ## CI
118126
119- - ` application/dist/ `
127+ GitHub Actions CI runs from the ` application/ ` directory and builds the static site output in ` application/dist ` .
0 commit comments