Doop
Doop: 오픈소스 멀티플레이어 디자인 캔버스 및 AI 에이전트용 MCP
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
A framework-free single-page app: a custom hash router, 5 views, and 8 teams across 3 sports, with standings, schedules and playoff brackets built from a JSON data layer.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A brand identity carried all the way into a working product: one forged shield expands into three sport marks, eight neighborhood franchises, a 3D crest and a data-driven fan portal for a fictional civic sports league.
/portal/). A single-page app in plain JavaScript ES modules with no framework: a small hash router (portal/js/router.js) renders five views (home, standings, schedule, bracket, team) from a JSON data layer covering eight teams across three sports./crest/). The same shield geometry rebuilt in Three.js with drag and keyboard rotation, plus a static SVG fallback.Static site, no build step. From the repository root:
python3 -m http.server 4173
Open http://localhost:4173/. The portal needs a local server because it loads its JSON with fetch().
Or, with Node 22+: npm run serve.
The site has no build step; the tests are the only reason this repo has a package.json.
npm install
npm test # unit + data tests (Node's built-in runner, no dependencies)
npx playwright install chromium # first time only
npm run test:e2e # browser and accessibility tests (Playwright + axe-core)
tests/unit/router.test.js): static and parameter routes, URL decoding, segment counts, route order.tests/unit/data.test.js): win percentage, games behind, date formatting, schedule splits and sort order, team, seed and league-wide lookups.tests/unit/season-integrity.test.js): recomputes every team's record, points and streak from the raw game results and checks they match the standings; checks the full round robin, seeding, 1 v 4 / 2 v 3 semifinals, that the bracket and schedule show identical games, and that every roster is complete. This is what backs the claim that every view tells the same story.tests/e2e/portal.spec.js): every route for every sport renders, sets the page title, announces itself and moves focus to the heading; schedule filters update the results and the live count; unknown routes show friendly messages; no console errors.tests/e2e/pages.spec.js): project home, case study and crest load cleanly, and the crest falls back to its static SVG when Three.js can't load.tests/e2e/accessibility.spec.js): an axe-core WCAG 2.2 AA scan of every page type, on desktop and phone sizes. Automated scans catch only part of what matters, so keyboard and screen reader checks are still done by hand.GitHub Actions runs everything on every push and pull request (.github/workflows/tests.yml). Test files are excluded from the Vercel deploy by .vercelignore.
index.html Project home
case-study/ Case study page
crest/ Three.js crest study
portal/ Fan portal (ES modules, hash router, JSON data)
assets/ Shared CSS, fonts, images, vendored Three.js r128
tests/ Unit, data, browser and accessibility tests
The league, franchises, venues, scores, rosters and schedules are fictional portfolio content.
Designed and built by Michael L. Lawson, design engineer and creative developer · mll-creativeeng.com · LinkedIn