1.6 KiB
1.6 KiB
PROJ001: Initial Project Setup and Logic Refactoring (Node.js Migration)
Status: COMPLETED
Achievements
- Architecture: Pivoted from .NET to a Node.js Monolith structure to natively support real-time state synchronization via Socket.IO.
- Frontend Infrastructure: Configured React 19 + Vite + Tailwind CSS (v3) in
src/client. - Backend Infrastructure: Initialized Express server with Socket.IO in
src/serverfor handling API requests and multiplayer draft state. - Refactoring: Successfully ported legacy
gemini-generated.jslogic into specialized TypeScript services:CardParserService.ts: Regex-based list parsing.ScryfallService.ts: Data fetching with caching.PackGeneratorService.ts: Pack creation logic.
- UI Implementation: Developed
CubeManager,PackCard, andStackViewcomponents. - Cleanup: Removed all .NET artifacts and dependencies.
- Tooling: Updated
Makefilefor unified Node.js development commands.
How to Run
- Install:
make install(orcd src && npm install) - Run Development:
make dev(Runs Server and Client concurrently) - Build:
make build
Manual Verification Steps
- Run:
make dev - Access: Open
http://localhost:5173(Client). - Test:
- Click "Load Demo List" in the Cube Manager.
- Verify cards are fetched from Scryfall.
- Click "Generate Pools".
- Verify packs are generated and visible in Stack/Grid views.
Next Steps
- Implement
DraftSessionstate management insrc/server. - Define Socket.IO events for lobby creation and player connection.