Skip to content

Repository files navigation

MVC Tree

CI

mvc.givan.se

A chronological visualization of the family of MVC patterns.

The site is a static Vite app in web/. Encyclopedia content and SVG layout math stay in app/ and are imported as the source of truth:

  • app/jsons — JSON:API fixtures (patterns, technologies, headers, columns)
  • app/templates/dpatterns and app/templates/technologies — article copy
  • app/lib/svg-layout — path-factory and grid geometry (do not rewrite the path algorithm)

An Ember 7.1 shell lives in ember/. It is a development/historical companion, not what you deploy.

Prerequisites

  • Git
  • Node.js 20 or 22 (with npm). Ember CLI 7.1 requires Node 20.19+.

Vite app (production)

git clone <repository-url>
cd mvc-tree/web
npm install
npm run dev

Visit http://localhost:5173.

Production-mode preview (what CI tests and Netlify serve):

npm run build
npm run preview

Visit http://localhost:4173.

Tests

From web/:

  • npm test — Vitest path snapshots + Playwright viz CI
  • npm run test:unit — path d snapshots and Handlebars port
  • npm run test:e2e — Playwright (builds and serves web/dist)

Ember 7.1 app (companion)

cd mvc-tree/ember
npm install
npm start

Visit http://localhost:4200.

npm test             # vite build --mode development && ember test --path dist

Both shells import the same app/jsons and app/lib/svg-layout. Do not make web/ a subpackage of the Ember app.

Deploy

The live site is https://mvc.givan.se on Netlify (site mvc). CI does not deploy. Merging to master does not publish. Squash-merge with [skip netlify] in the merge commit message.

Deploy Previews are already off (skip_prs=true; toml ignore is belt-and-suspenders). Do not set stop_builds. Auto git publishing stays on; ignore skips those production builds.

Intentional ship (CLI only): from web/ after npm run build, netlify deploy --prod --dir=dist (netlify login once, netlify link --name mvc). Alternative: a build hook (ignore does not cancel hooks). Commands: DEV_SETUP.md.

netlify.toml is the source of truth for remote builds: Base directory web, command npm ci && npm run build (or npm run build if install is separate), publish dist (i.e. web/dist), NODE_VERSION 24.

GitHub Actions still runs tests and may upload a site artifact; it does not publish.

See DEV_SETUP.md for the Node versions, both apps, and CI details.

About

🌳 A chronological visualization of the family of MVC patterns.

Topics

Resources

Stars

43 stars

Watchers

5 watching

Forks

Used by

Contributors

Languages