Skip to content

claytondukes/dibo-api

Folders and files

NameName
Last commit message
Last commit date
Jan 9, 2025
Jan 13, 2025
Jan 25, 2025
Jan 25, 2025
Jan 9, 2025
Jan 13, 2025
Jan 12, 2025
Jan 12, 2025
Jan 12, 2025
Jan 25, 2025
Jan 4, 2025
Jan 6, 2025
Jan 11, 2025
Jan 4, 2025

Repository files navigation

DIBO API (Diablo Immortal Build Optimizer)

A RESTful API for analyzing Diablo Immortal game data and generating optimal build recommendations. The API processes game data including gems, essences, and their interactions to suggest the most effective character builds.

Features

  • Game Data Access

    • Class-specific skills and essences
    • Equipment sets and bonuses
    • Gem stats and synergies
    • Build constraints and requirements
  • Inventory Management

    • Store personal inventory in GitHub Gists
    • Track owned gems and their ranks
    • Consider available items for build recommendations
  • Authentication

    • Secure GitHub OAuth 2.0
    • JWT-based authorization
    • User profile management

Implementation Plans

Quick Start

  1. Prerequisites

    • GitHub account for authentication
    • Python 3.13+
    • Valid GitHub OAuth credentials
  2. Setup

    # Clone the repository
    git clone https://github.com/yourusername/dibo-api.git
    cd dibo-api
    
    # Create and activate virtual environment
    python -m venv venv
    source venv/bin/activate  # On Windows: .\venv\Scripts\activate
    
    # Install dependencies
    pip install -r requirements.txt
    
    # Set up environment variables
    cp .env.example .env
  3. Configuration

    # Required environment variables
    GITHUB_CLIENT_ID=your_github_client_id
    GITHUB_CLIENT_SECRET=your_github_client_secret
    GITHUB_CALLBACK_URL=https://your-api-domain/auth/github/callback

Project Structure

dibo-api/
├── api/                 # API implementation
│   ├── auth/           # Authentication endpoints
│   ├── builds/         # Build generation logic
│   ├── core/           # Core functionality
│   ├── models/         # Data models and schemas
│   ├── routes/         # API routes
│   ├── services/       # Business logic
│   └── utils/          # Utility functions
├── data/               # Game data
│   └── indexed/        # Processed game data
│       └── classes/    # Character class data
├── tests/              # Test suites
├── docs/               # Documentation
│   └── api/           # API documentation
└── .github/            # GitHub templates and workflows
    └── ISSUE_TEMPLATE/ # Issue templates

Documentation

Roadmap

Data Management

  • Core game data indexing

    • Character classes and skills
    • Equipment and set bonuses
    • Gems and their progression
    • Stats and synergies
  • Data validation and constraints

    • Build requirements
    • Equipment compatibility
    • Skill combinations
    • Gem restrictions
  • Advanced Data Features

    • Real-time data updates via GitHub Gists
    • Versioned data schemas
    • Custom data extensions

API Improvements

  • Performance optimizations

    • Efficient data loading
    • Response caching
    • Query optimization
  • API Security

    • Rate limiting
    • Input validation
    • Error handling

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

Character Class Data

I need help implementing JSON data files for additional character classes. See our Character Class Data Implementation template for details on how to contribute.

Current status:

  • Barbarian - Complete reference implementation
  • Wizard - Not started
  • Necromancer - Not started
  • Crusader - Not started
  • Blood Knight - Not started
  • Tempest - Not started
  • Demon Hunter - Not started
  • Monk - Not started

Commit Message Format

Use semantic commit messages with the following prefixes:

  • feat: New feature
  • fix: Bug fix
  • tweak: Minor adjustments
  • style: Code style updates
  • refactor: Code restructure
  • perf: Performance improvement
  • test: Test updates
  • docs: Documentation updates
  • chore: Maintenance tasks
  • ci: CI/CD changes
  • build: Build system changes
  • revert: Revert changes
  • hotfix: Urgent fixes
  • init: New project/feature
  • merge: Branch merges
  • wip: Work in progress
  • release: Release preparation

TODOs

Missing Gem Ranks

  1. Igneous Scorn

    • Only have rank 10 data:

      Your critical hits cause explosions that deal 120% base damage +486 to nearby enemies. 
      These explosions cannot occur more often than once every 6 seconds. 
      After triggering an explosion, your damage is increased by 10% for 2 seconds.
      
    • Need to find ranks 1-9

  2. Mossthorn

    • Only have rank 10 data (Two-Star Gem):

      Taking damage activates Mossthorn for 6 seconds. While active, each attack you receive 
      triggers a retaliatory piercing thorn (no more than once every 0.5 seconds), dealing 
      50% base damage + 201 to enemies. Cannot activate more often than once every 20 seconds. 
      While Mossthorn is active, damage you take is reduced by 8%
      
    • Need to find ranks 1-9

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Blizzard Entertainment for Diablo Immortal
  • The Diablo Immortal community for their support and feedback
  • My awesome f'n clan :)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages