MERN Trading Card Game Build

Job ID: 40150997

Budget: $15 – $25 USD

The goal is to turn my paper-prototype trading card game—think Magic: The Gathering—into a full, browser-based experience powered by the MERN stack. I already have card concepts and basic rules; what I need now is the code that makes it all come alive.

Core scope
• React will drive a responsive UI that lets players browse their collection and assemble decks through an intuitive drag-and-drop builder.
• A Node + Express backend, backed by MongoDB, will store user accounts, card data, decks, and match history.
• Real-time player-vs-player matches should run over WebSockets (Socket.io or similar), handling turn flow, card effects, and game-state sync with minimal latency.
• Players gain new cards exclusively by trading with one another, so a secure, peer-to-peer marketplace or trade lobby is essential. Think filtered search, request/offer workflow, and final confirmation screens to prevent scams.

Deliverables
1. Fully-functioning MERN codebase, cleanly separated into client and server folders.
2. Deck-building interface with search, filters, and sideboard support.
3. Match engine capable of two-player live games, including concede, timer, and reconnect logic.
4. Trading module where users can propose, review, and confirm swaps.
5. User authentication, session management, and basic admin panel for card updates.
6. Documentation: setup steps, environment variables, and a short walkthrough on adding new cards or rules.

Acceptance criteria
• Two new users can register, build decks from a seed collection, queue up, and complete a match without manual intervention.
• A card successfully traded in the lobby appears in the recipient’s collection and is removed from the sender’s.
• All core flows work in Chrome and Firefox, desktop and mobile widths.

If you’ve shipped real-time games or large React apps before, the code should feel straightforward. I’m happy to iterate on UI polish later; for now, stability, clear architecture, and well-commented logic are the priorities.