Skip to main content

A Python package for StarCraft replay data ORM integration.

Project description

Starcraft Data Platform

Status: Work in Progress 🚧

This repository is under active development. It defines the database architecture for ingesting, storing, and analyzing Starcraft II replay data.


Overview

The Starcraft Data Platform is designed to:

  • Store raw replay data, player information, and event logs in a relational database.
  • Provide analytics views and materialized tables for advanced insights.
  • Enable machine learning workflows by supporting feature engineering and model outputs.

Planned Features

  1. Core Functionality:

    • Relational database schema for storing raw replay data.
    • Analytics views for player statistics and performance trends.
    • ML schema for storing model outputs and feature sets.
  2. Technology Stack:

    • PostgreSQL for database storage.
    • SQLAlchemy for ORM models.
    • Docker for containerized deployment.
  3. Future Enhancements:

    • Performance optimization for materialized views.
    • Expanded analytics for build orders and map-specific trends.

Current Focus

The current phase of development is focused on:

  • Designing the raw schema for replay ingestion.
  • Creating analytics views for player statistics.

Getting Started

⚠️ This project is not yet ready for deployment or public use. Setup instructions will be added as development progresses.


Planned Structure

This repository will be organized into the following structure:

  • db/: Contains all database-related files.

    • schema.sql: A consolidated SQL file for creating all database schemas, including raw, analytics, and ML schemas.
    • models/: A directory housing SQLAlchemy ORM models.
      • replay.py: ORM models for replay metadata tables (e.g., Info, Player, Team).
      • events.py: ORM models for event data (e.g., UnitBornEvent, SelectionEvent).
      • datapack.py: ORM models for unit and ability metadata (e.g., UnitType, Ability).
    • analytics/: SQL files for analytics views and materialized tables.
      • player_stats.sql: A view aggregating player performance metrics.
      • map_performance.sql: A view tracking win rates by map and race.
      • player_stats_summary.sql: A materialized view summarizing player statistics across replays.
  • tests/: Contains unit tests for validating schema and models.

    • test_schema.py: Tests to ensure the database schema is correctly defined.
    • test_models.py: Tests for ORM models to verify accurate data interaction.
    • test_analytics.py: Tests for analytics queries and performance.
  • Dockerfile: Configuration for containerizing the project, ensuring consistent environments for development and deployment.

  • README.md: This documentation file, providing an overview of the project and its structure.


How to Contribute

Contributions are welcome once the repository reaches a stable state. If you'd like to collaborate, please reach out or open an issue to discuss ideas.


License

[MIT License]


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

starcraft-data-orm-0.1.0.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

starcraft_data_orm-0.1.0-py3-none-any.whl (27.7 kB view details)

Uploaded Python 3

File details

Details for the file starcraft-data-orm-0.1.0.tar.gz.

File metadata

  • Download URL: starcraft-data-orm-0.1.0.tar.gz
  • Upload date:
  • Size: 14.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.9.21

File hashes

Hashes for starcraft-data-orm-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b30cd2a8d0488f7e49f8234a5b5f81f3f31a902d73d0358ac65044445bb78702
MD5 cce817a2978b780ed987360b4d63c9ba
BLAKE2b-256 55aef62e117267b6a9f8fe6b7c0bde131279e4542b3b0e79864f4dd570429a7e

See more details on using hashes here.

File details

Details for the file starcraft_data_orm-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for starcraft_data_orm-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 48a5db2ae7e659840d1ba8e3818b925db43705ddc703f5f6262e7782aa29df6d
MD5 cee5d2efc1169a3455e04e9cd3fb4c9d
BLAKE2b-256 89c80946f06c314129f7f21082e83f25c9b8adfe6bbc2da52c600cbcdb762c2d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page