@@ -16,9 +16,12 @@ Next.js client for **DevFlow**, the open-source team task-management product. Co
1616A task board lives or dies on how fast you can see state and act on it. The client is built
1717around three rules:
1818
19- - ** Nothing blocks the view.** Mutations update the list immediately; failures roll back.
20- - ** Persian is first-class.** Layout is written logical-first so RTL is not an afterthought.
21- - ** Live by default.** WebSocket events patch the store, so the board is never stale.
19+ - ** The page says what actually runs.** Every claim on the home page maps to shipped code, and
20+ the status pill probes ` devflow-api ` 's readiness endpoint from the browser.
21+ - ** Components are tested, not eyeballed.** Each component has a Vitest test that fails if the
22+ component breaks.
23+ - ** CI is the gate.** Lint, production build, tests and a Docker build run on every push to
24+ ` main ` and on every pull request.
2225
2326## Stack
2427
@@ -34,43 +37,59 @@ around three rules:
3437``` bash
3538git clone https://github.com/OwlGuild/devflow-web.git
3639cd devflow-web
40+ cp .env.example .env
3741npm install
3842npm run dev
3943```
4044
41- App: ` http://localhost:3000 ` .
45+ App: ` http://localhost:3000 ` . ` DEVFLOW_API_URL ` (server-side, read at request time) points the
46+ status pill at an API instance; Render sets it to the deployed one.
4247
4348## Structure
4449
4550```
4651src/
4752 app/
48- layout.tsx document shell and metadata
49- page.tsx home
53+ layout.tsx document shell and metadata
54+ page.tsx home page (server component)
5055 page.test.tsx
5156 components/
52- StatusBadge.tsx board status pill
57+ SiteHeader.tsx logo and navigation
58+ SiteHeader.test.tsx
59+ FeatureCard.tsx one building block of the stack
60+ FeatureCard.test.tsx
61+ BoardPreview.tsx planned board columns
62+ BoardPreview.test.tsx
63+ LiveStatus.tsx client-side readiness probe
64+ LiveStatus.test.tsx
65+ StatusBadge.tsx board status pill
5366 StatusBadge.test.tsx
54- vitest.config.mts test runner configuration
67+ vitest.config.mts test runner configuration
5568```
5669
5770## Testing
5871
5972``` bash
6073npm test # vitest run
74+ npm run lint
6175npm run build # production build, also runs in CI
6276```
6377
64- The suite covers component rendering and status variants: 6 tests, running in CI on every push.
78+ The suite covers every component — rendering, links, status variants and the readiness probe's
79+ success, failure and unconfigured paths:
6580
6681``` bash
6782npm test
6883
6984✓ src/components/StatusBadge.test.tsx (4 tests)
70- ✓ src/app/page.test.tsx (2 tests)
71-
72- Test Files 2 passed (2)
73- Tests 6 passed (6)
85+ ✓ src/components/LiveStatus.test.tsx (5 tests)
86+ ✓ src/components/FeatureCard.test.tsx (2 tests)
87+ ✓ src/components/BoardPreview.test.tsx (3 tests)
88+ ✓ src/components/SiteHeader.test.tsx (2 tests)
89+ ✓ src/app/page.test.tsx (6 tests)
90+
91+ Test Files 6 passed (6)
92+ Tests 22 passed (22)
7493```
7594
7695## Roadmap
@@ -89,7 +108,7 @@ Both maintainers of [OwlGuild](https://github.com/OwlGuild) commit here.
89108| App routing, state, data fetching | [ @AhmadGolbooee ] ( https://github.com/AhmadGolbooee ) |
90109| UI components, design system, Tailwind | [ @AhmadGolbooee ] ( https://github.com/AhmadGolbooee ) |
91110| Client-side API contract | [ @AhmadGolbooee ] ( https://github.com/AhmadGolbooee ) |
92- | Live-update handling | shared with [ @MarziehAkrami ] ( https://github.com/MarziehAkrami ) |
111+ | Realtime integration (planned) | shared with [ @MarziehAkrami ] ( https://github.com/MarziehAkrami ) |
93112| CI, Docker, docs | shared |
94113
95114## Related
0 commit comments