Skip to content

Latest commit

 

History

History
180 lines (121 loc) · 6.73 KB

File metadata and controls

180 lines (121 loc) · 6.73 KB

CubeCobra

An open source web application for building, managing, and playtesting Magic: the Gathering cubes.

About

CubeCobra is a modern web platform that enables Magic: The Gathering players to:

  • Build and Manage Cubes: Create custom draft environments with powerful card search and organization tools
  • Draft and Playtest: Experience your cube through online drafting with AI opponents and real players
  • Analyze and Optimize: Use analytics to understand your cube's balance and make data-driven improvements
  • Share and Discover: Explore thousands of community cubes and share your own creations

Features

Cube Management

  • Advanced card search with filters and syntax
  • Visual cube layout and organization
  • Version control and change tracking
  • Import/export support for various formats

Drafting Experience

  • Solo drafting with intelligent AI bots
  • Multiplayer drafting with friends
  • Various draft formats (8-person, Grid, Custom, etc.)
  • Draft analysis and statistics

Analytics & Insights

  • Card popularity and pick order statistics
  • Cube balance analysis
  • Power level assessments
  • Meta trend tracking

Community Features

  • Public cube browser with search and filtering
  • User profiles and cube collections
  • Feed and comments system
  • Featured cube rotations

Technology Stack

Backend

  • Node.js with Express 4 framework
  • DynamoDB for data persistence
  • S3 for file storage and static assets
  • TypeScript for type safety
  • Recommender Service - Dedicated ML microservice for AI recommendations

Frontend

  • React with TypeScript
  • TailwindCSS for styling
  • Webpack for bundling

Infrastructure

  • AWS for production deployment
  • LocalStack for local development
  • Docker for containerization
  • CDK for infrastructure as code

Development Tools

  • ESLint and Prettier for code quality
  • Jest for testing
  • GitHub Actions for CI/CD
  • Nearley for card filter parsing

Getting Started

Choose your preferred setup method:

🐳 Docker Setup (Recommended)

The fastest way to get CubeCobra running locally with all dependencies containerized.

→ Docker Setup Guide

🔧 Node.js Setup

Alternative setup for developers who prefer working directly with Node.js.

→ Node.js Setup Guide

📋 Prerequisites

Before starting either setup, review the required tools and accounts.

→ Prerequisites Guide

Documentation

Comprehensive documentation is available in the /packages/docs directory:

Architecture & Concepts

Configuration & Maintenance

Contributing

We welcome contributions from the community! Whether you're fixing bugs, adding features, or improving documentation, your help makes CubeCobra better for everyone.

→ Complete Contributing Guide

Quick Start for Contributors

  1. Join our Discord - Get help and connect with the community
  2. Request contributor role - Message @Dekkaru in Discord to gain access to development channels
  3. Set up your environment - Follow our setup guides
  4. Download data files - Run npm run download-data-files for first-time setup
    • ✅ Safe to run - downloads from public S3 bucket
    • ✅ No AWS credentials required
    • Downloads card data (~100MB) and ML models (~500MB)
  5. Start development servers - Run npm run dev to start all services (client, server, ML recommender)
  6. Find something to work on - Check Discord development channels for current needs
  7. Make your changes - Follow our coding standards and write tests
  8. Submit a pull request - We'll review and help you get it merged!

Our developers are happy to help get new folks started with the project - don't hesitate to ask questions in Discord!

Development Workflow

  1. Set up your development environment using our guides
  2. Create a feature branch for your changes
  3. Follow our coding standards (ESLint + Prettier)
  4. Write tests for new functionality
  5. Submit a pull request with a clear description

Areas for Contribution

  • Frontend Development: React components and user interfaces
  • Backend Development: API endpoints and data processing
  • Analytics: Card analysis and cube insights
  • Testing: Unit tests and integration tests
  • Documentation: Guides, tutorials, and API docs
  • Infrastructure: DevOps and deployment improvements

Community

  • Discord: Join our development community for real-time discussion and support
  • Bug Reports & Feature Requests: All managed through Discord development channels
  • GitHub: Used for code collaboration and pull requests

Getting Help

  • New Contributors: Join our Discord and message @Dekkaru for the contributor role to access development channels
  • Bug Reports: Report issues in Discord development channels
  • Feature Requests: Discuss new ideas in Discord development channels
  • Development Support: Get help with setup and development questions in Discord

Our development team is friendly and welcoming - we're always happy to help new contributors get started!

License

CubeCobra is open source software licensed under the ISC License.


CubeCobra is not affiliated with Wizards of the Coast. Magic: The Gathering is a trademark of Wizards of the Coast LLC.