UI Prototype
A modern web application prototype built with React, TypeScript, and Material-UI, featuring authentication, internationalization, and Figma integration.
UI Prototype
ð æŠèŠ
ãã®ãããžã§ã¯ãã¯ãã¢ãã³ãªæããç®æããReact + TypeScript + Material-UI (MUI)ã䜿çšããWebã¢ããªã±ãŒã·ã§ã³ã§ããèªèšŒæ©èœãå€èšèªå¯Ÿå¿ããã¹ãç°å¢ãMSWïŒMock Service WorkerïŒã䜿ã£ãã¢ãã¯APIãFigma MCPãµãŒããŒãšã®é£æºãªã©ã®æ©èœãå«ãã§ããŸãã
âš äž»ãªç¹åŸŽ
- ð èªèšŒã·ã¹ãã : èªèšŒãšã»ãã·ã§ã³ç®¡ç
- ð å€èšèªå¯Ÿå¿: æ¥æ¬èªã»è±èªå¯Ÿå¿ïŒreact-i18nextïŒ
- ð§ª å æ¬çãã¹ã: Vitest + React Testing Library + Playwright E2E
- ð ã¢ãã¯API: MSW ã«ããéçºæã®APIã¢ãã¯
- ðš Figma飿º: MCP ãµãŒããŒã«ãããã¶ã€ã³ã¢ã»ããååŸ
- ð± ã¬ã¹ãã³ã·ããã¶ã€ã³: ã¢ãã€ã«ã»ãã¹ã¯ããã察å¿ïŒãããªã«ã§ããŠãªãïŒ
ð æè¡ã¹ã¿ãã¯
- Frontend: React 19, TypeScript
- UI Framework: Material-UI (MUI)
- Build Tool: Vite
- State Management: TanStack Query (React Query)
- Routing: React Router
- Testing: Vitest, React Testing Library, Playwright
- Mocking: MSW (Mock Service Worker)
- Internationalization: react-i18next
- Code Generation: Orval (OpenAPI)
- Package Manager: pnpm
ð ã¯ã€ãã¯ã¹ã¿ãŒã
åææ¡ä»¶
- Node.js (v22) â»ãããžã§ã¯ãã«ããèªå管ç
- pnpm (v10.12.4) â»ãããžã§ã¯ãã«ããèªå管ç
ããŒãžã§ã³ç®¡ç:
- Node.js:
.npmrcã«ãã v22.17.0 ãèªåããŠã³ããŒãã»äœ¿çš- pnpm:
packageManagerãã£ãŒã«ãã«ãã v10.12.4 ãæšå¥šéçºè ãæåã§ããŒãžã§ã³ã管çããå¿ èŠã¯ãããŸããã
ã€ã³ã¹ããŒã«ãšå®è¡
# äŸåé¢ä¿ã®ã€ã³ã¹ããŒã«
pnpm install
# E2Eãã¹ãçšãã©ãŠã¶ã®ã€ã³ã¹ããŒã«ïŒååã®ã¿ïŒ
pnpm test:e2e:install
# ç°å¢å€æ°ã®èšå®ïŒãªãã·ã§ã³ïŒ
cp .env.sample .env
# .envãã¡ã€ã«ãç·šéããŠAPI URLãªã©ãèšå®
# OpenAPIã¹ããŒãããã³ãŒããšã¢ãã¯ãçæïŒååãŸãã¯ã¹ããŒãæŽæ°æïŒ
pnpm gen:api
# éçºãµãŒããŒã®èµ·å
pnpm dev
ã¢ããªã±ãŒã·ã§ã³ã¯ http://localhost:5173 ã§èµ·åããŸãã
ð ãããžã§ã¯ãæ§æ
src/
âââ adapters/ # å€éšãµãŒãã¹ãšã®æ¥ç¶å±€
â âââ axios.ts # HTTP ã¯ã©ã€ã¢ã³ãèšå®
â âââ generated/ # OpenAPI ããçæãããã³ãŒã
â âââ mocks/ # MSW ã¢ãã¯å®çŸ©
â âââ repositories/ # ããŒã¿ã¢ã¯ã»ã¹å±€
âââ app/ # ã¢ããªã±ãŒã·ã§ã³èšå®
â âââ providers/ # Context Providers
â âââ router/ # ã«ãŒãã£ã³ã°èšå®
â âââ types/ # ã¢ããªã±ãŒã·ã§ã³åå®çŸ©
âââ domain/ # ããžãã¹ããžãã¯å±€
â âââ constants/ # 宿°å®çŸ©
â âââ errors/ # ãšã©ãŒåå®çŸ©
â âââ models/ # ãã¡ã€ã³ã¢ãã«
â âââ utils/ # ãŠãŒãã£ãªãã£é¢æ°
âââ i18n/ # åœéåèšå®
â âââ config.ts # i18n èšå®
â âââ hooks/ # 翻蚳ããã¯
â âââ locales/ # èšèªãã¡ã€ã«
âââ presentations/ # ãã¬ãŒã³ããŒã·ã§ã³å±€
âââ components/ # å
±éã³ã³ããŒãã³ã
âââ hooks/ # ã«ã¹ã¿ã ããã¯
âââ layouts/ # ã¬ã€ã¢ãŠãã³ã³ããŒãã³ã
âââ pages/ # ããŒãžã³ã³ããŒãã³ã
ã¢ãŒããã¯ãã£ã®ç¹åŸŽ
- Clean Architecture: ãã¡ã€ã³é§åèšèšã®ååã«åºã¥ããå±€åé¢
- Repository Pattern: ããŒã¿ã¢ã¯ã»ã¹ã®æœè±¡å
- Provider Pattern: äŸåæ§æ³šå ¥ãšã³ã³ããã¹ã管ç
- Custom Hooks: ããžãã¹ããžãã¯ã®åå©çšæ§
ð§ äž»èŠæ©èœ
èªèšŒã·ã¹ãã
- JWT ããŒã¹ã®èªèšŒ
- ã»ãã·ã§ã³ç®¡çãšèªåæŽæ°
- ãã°ã€ã³/ãã°ã¢ãŠãæ©èœ
- èªèšŒç¶æ ã«åºã¥ãã«ãŒãã£ã³ã°
å€èšèªå¯Ÿå¿
- æ¥æ¬èªã»è±èªå¯Ÿå¿
- react-i18next ã«ããåçèšèªåæ¿
- åå®å šãªç¿»èš³ããŒ
APIéä¿¡
- Axios ããŒã¹ã®HTTPã¯ã©ã€ã¢ã³ã
- OpenAPI ã¹ããŒãããã®èªåçæ
- ãšã©ãŒãã³ããªã³ã°ãšãªãã©ã€æ©èœ
𧪠ãã¹ã
ãã¹ãå®è¡
# åäœãã¹ãïŒVitestïŒ
pnpm test # å
šãã¹ãå®è¡
pnpm test:watch # ãŠã©ããã¢ãŒã
pnpm test:coverage # ã«ãã¬ããžä»ãå®è¡
pnpm test:related src/path/to/changed-file.tsx # é¢é£ãã¹ãã®ã¿å®è¡
# E2Eãã¹ãïŒPlaywrightïŒ
pnpm test:e2e:install # ãã©ãŠã¶ã€ã³ã¹ããŒã«ïŒååã®ã¿ïŒ
pnpm test:e2e # å
šE2Eãã¹ãå®è¡
pnpm test:e2e:ui # ã€ã³ã¿ã©ã¯ãã£ãã¢ãŒã
pnpm test:e2e:debug # ãããã°ã¢ãŒã
E2Eãã¹ãã®è©³çް:
playwright/README.mdãåç §ããŠãã ãããååå®è¡æ:
pnpm test:e2e:installã§Playwrightãã©ãŠã¶ïŒChromiumãFirefoxãWebKitïŒãã€ã³ã¹ããŒã«ããŠãã ããã
ãã¹ãæŠç¥
- åäœãã¹ã: ã³ã³ããŒãã³ããããã¯ããŠãŒãã£ãªãã£é¢æ°ã®ãã¹ã
- çµ±åãã¹ã: ããŒãžã¬ãã«ã§ã®ãŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ãã¹ã
- E2Eãã¹ã: Playwright ã«ããå®éã®ãã©ãŠã¶ã§ã®ãšã³ãããŒãšã³ããã¹ã
- é¢é£ãã¹ãå®è¡:
test:relatedã³ãã³ãã«ããå¹ççãªãã¹ãå®è¡- 倿Žããããã¡ã€ã«ã«é¢é£ãããã¹ããã¡ã€ã«ã®ã¿ãèªåæ€åºã»å®è¡
- CI/CDç°å¢ã§ã®é«éãªãã£ãŒãããã¯ã«ãŒããå®çŸ
- 䞊åå®è¡ïŒshardïŒã«ãããã¹ãæéã®ççž®
- ã¢ãã¯æŠç¥:
- MSW ã«ãã API ã¬ã¹ãã³ã¹ã®ã¢ãã¯
- Repository ã¬ãã«ã§ã®éšåçãªã¢ãã¯
- ãã¹ããŠãŒãã£ãªãã£ã«ããå ±éå
ãã¹ãæ§æ
src/__fixtures__/: ãã¹ãçšã®ãã«ããŒãšã¢ãã¯ããŒã¿src/__tests__/: ã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã®ãã¹ã- åãã£ã¬ã¯ããªã®
__tests__/: ã³ã³ããŒãã³ãã»ããã¯åäœã®ãã¹ã
ð MCP (Model Context Protocol) 飿º
ãã®ãããžã§ã¯ãã§ã¯ãMCP ãµãŒããŒã䜿çšã㊠AI ããŒã«ãšé£æºããéçºãå¹çåã§ããŸãã
èšå®ãã¡ã€ã«
ãããžã§ã¯ãã§ã¯2çš®é¡ã®MCPèšå®ãã¡ã€ã«ã䜿çšããŸãïŒ
.mcp.json: Claude Code ãããžã§ã¯ãåäœã® MCP èšå®.vscode/mcp.json: VSCode / GitHub Copilot çšã® MCP èšå®
äž¡æ¹ã®ãã¡ã€ã«ã¯åã MCP ãµãŒããŒãèšå®ããŠããŸãããç°ãªãããŒã«ã§äœ¿çšãããŸãã
å©çšå¯èœãªMCPãµãŒããŒ
1. Figma MCP ãµãŒããŒ
Figma ãã¶ã€ã³ãã¡ã€ã«ããçŽæ¥ã¢ã»ãããååŸã§ããŸãã
ã»ããã¢ãã:
Figma ã® Personal Access Token ãèšå®ã«è¿œå ããŠãã ããïŒ
{
"servers": {
"figma": {
"type": "http",
"url": "https://mcp.figma.com/mcp"
}
}
}
å©ç𿹿³:
AI ããŒã«ã§ Figma ãã¶ã€ã³ããã³ã³ããŒãã³ããå®è£ ïŒ
Figma URL: https://www.figma.com/file/YOUR_FILE_KEY/...
ãã®Figmaãã¶ã€ã³ãåèã«ãLoginButtonã³ã³ããŒãã³ããå®è£
ããŠãã ããã
- styled.tsx ã«ã¹ã¿ã€ã«å®çŸ©ããŸãšãã
- Material-UIããŒã¹ã§å®è£
- ã¬ã¹ãã³ã·ã察å¿
- Figmaã®è²ã»ãµã€ãºã»äœçœãåæ
å©çšå¯èœãªæ©èœ:
- Figma ãã¡ã€ã«ã®ã¬ã€ã¢ãŠãæ å ±ååŸ
- Figma ããã®ç»åã»ã¢ã€ã³ã³ããŠã³ããŒã
2. Playwright MCP ãµãŒããŒ
E2Eãã¹ãã®èªåçæãšãã©ãŠã¶æäœãæ¯æŽããŸãã
ã»ããã¢ãã:
æ¢ã«èšå®æžã¿ã§ãã.vscode/playwright-config.json ã§èšå®ãã«ã¹ã¿ãã€ãºã§ããŸãã
{
"servers": {
"playwright": {
"type": "stdio",
"command": "pnpm",
"args": [
"dlx",
"@playwright/mcp@latest",
"--config",
".vscode/playwright-config.json"
]
}
}
}
å©ç𿹿³:
AI ããŒã«ã§ Playwright ãã¹ããçæã»å®è¡ïŒ
ãã°ã€ã³ããŒãžã®E2Eãã¹ããäœæããŠãã ããã
- ã¡ãŒã«ãšãã¹ã¯ãŒããå
¥å
- ãã°ã€ã³ãã¿ã³ãã¯ãªãã¯
- ããã·ã¥ããŒãã«ãªãã€ã¬ã¯ããããããšã確èª
å©çšå¯èœãªæ©èœ:
- Playwright ãã¹ãã³ãŒãã®èªåçæ
- ãã©ãŠã¶æäœã®ã¹ã¯ãªããäœææ¯æŽ
- Page Object Model ãã¿ãŒã³ã®å®è£ æ¯æŽ
ð§ éçºããŒã«è©³çް
MSW (Mock Service Worker) ã»ããã¢ãã
éçºæã®APIã¢ãã¯ã䜿çšããããã®èšå®ïŒ
# MSWã®åæåïŒå
¬éãã£ã¬ã¯ããªã«Service Workerãã¡ã€ã«ãçæïŒ
pnpm msw:init
ãã®ã³ãã³ãã«ãã public/mockServiceWorker.js ãçæããããã©ãŠã¶ã§ã®APIã¢ãã¯ãæå¹ã«ãªããŸãã
å©çšå¯èœãªã¹ã¯ãªãã
pnpm dev # éçºãµãŒããŒèµ·å
pnpm build # ãããã¯ã·ã§ã³ãã«ã
pnpm type-check # åãã§ãã¯
pnpm lint # ESLintå®è¡
pnpm format:check # Prettierã«ãããã©ãŒããããã§ãã¯ïŒãã§ãã¯ã®ã¿ïŒ
pnpm format:fix # Prettierã«ããã³ãŒããã©ãŒãããïŒã³ãŒããèªåæŽåœ¢ïŒ
pnpm preview # ãã«ãçµæããã¬ãã¥ãŒ
pnpm test # ãã¹ãå®è¡
pnpm test:run # watch ã¢ãŒããªãã§å®è¡
pnpm test:coverage # ã«ãã¬ããžä»ããã¹ã
pnpm test:related # é¢é£ãã¹ãã®ã¿å®è¡ïŒæå®ãã¡ã€ã«ã«é¢é£ãããã¹ããæ€åºïŒ
pnpm gen:api # OpenAPIããã³ãŒããšã¢ãã¯ãçæ
pnpm msw:init # MSW Service Workeråæå
ã³ãŒãçæ (Orval)
OpenAPI ã¹ããŒãããAPIã¯ã©ã€ã¢ã³ããšMSWã¢ãã¯ãèªåçæïŒ
# OpenAPI ã¹ããŒãããåãšAPIã¯ã©ã€ã¢ã³ããMSWã¢ãã¯ãçæ
pnpm gen:api
Orvalã«ãã以äžãèªåçæãããŸãïŒ
- APIã¯ã©ã€ã¢ã³ã:
src/adapters/generated/ã«åå®å šãªAPIã¯ã©ã€ã¢ã³ã - TypeScriptåå®çŸ©: OpenAPIã¹ããŒãã«åºã¥ããåå®çŸ©
- MSWã¢ãã¯:
src/adapters/mocks/handlers/ã«ã¢ãã¯ãã³ãã©ãŒ
èšå®ãã¡ã€ã«: schema/orval.config.ts
ç°å¢å€æ°èšå®
ãããžã§ã¯ãã§ã¯ç°å¢å€æ°ã䜿çšããŠAPI URLãªã©ãèšå®ã§ããŸãïŒ
# .env.sampleãã³ããŒããŠ.envãã¡ã€ã«ãäœæ
cp .env.sample .env
å©çšå¯èœãªç°å¢å€æ°:
VITE_API_BASE_URL: API ã®ããŒã¹URLïŒããã©ã«ã:http://localhost:3000/apiïŒ
ç°å¢å¥ã®èšå®äŸ:
# éçºç°å¢
VITE_API_BASE_URL=http://localhost:3000/api
# æ¬çªç°å¢
VITE_API_BASE_URL=https://api.your-domain.com/api
# ã¹ããŒãžã³ã°ç°å¢
VITE_API_BASE_URL=https://staging-api.your-domain.com/api
ç°å¢å€æ°ã¯èªåçã«Axiosã®baseURLãšMSWã¢ãã¯ãã³ãã©ãŒã®äž¡æ¹ã«é©çšãããŸãã
éçºç°å¢ã®èšå®
- ESLint: ã³ãŒãå質ã®ç¶æ
- TypeScript: åå®å šæ§ã®ç¢ºä¿
- Vite: é«éãªéçºäœéš
- pnpm: å¹ççãªããã±ãŒãžç®¡ç
Server Terkait
Alpha Vantage MCP Server
sponsorAccess financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
Revit MCP Python
A pyRevit-based MCP server for Autodesk Revit, enabling connection to any MCP-compatible client.
prolog-reasoner
SWI-Prolog execution for LLMs with CLP(FD) and recursion â boosts logic/constraint accuracy from 73% to 90% on a 30-problem benchmark.
Hyper MCP
A fast, secure, and extensible MCP server using WebAssembly plugins.
TLS MCP Server
Analyze TLS certificates using OpenSSL and zlint.
Roblox Studio MCP Server
An AI-powered MCP server for Roblox Studio development, featuring advanced NLP, semantic analysis, and multi-turn conversation capabilities.
MCPControl
Programmatically control Windows mouse, keyboard, window management, screen capture, and clipboard operations.
Figma
Interact with Figma files to view, comment on, and analyze designs.
SolHunt Solana Wallet Intelligence
Solana wallet health analysis platform and top-notch dev tool. Helps people and agents to recover their SOLs from burner and old wallets super securely. Features a complete trustless recovery flow natively via MCP: preview yields, build unsigned transactions, and sign locally.
IdeaJarvis
IdeaJarvis is an idea workspace for product builders. Use AI to structure brainstorming into detailed PRDs, conduct comprehensive market research, build prototypes, and gather real community feedbackâturning "what if" into "ready to launch.
Sequential Thinking Multi-Agent System (MAS)
An MCP agent that utilizes a Multi-Agent System (MAS) for sequential thinking and problem-solving.