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.
-
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
- Equipment System - Comprehensive plan for the equipment and set bonus system
-
Prerequisites
- GitHub account for authentication
- Python 3.13+
- Valid GitHub OAuth credentials
-
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
-
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
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
- API Reference - Complete API documentation
- Game Mechanics - Core game systems
-
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
-
Performance optimizations
- Efficient data loading
- Response caching
- Query optimization
-
API Security
- Rate limiting
- Input validation
- Error handling
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
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
Use semantic commit messages with the following prefixes:
feat:
New featurefix:
Bug fixtweak:
Minor adjustmentsstyle:
Code style updatesrefactor:
Code restructureperf:
Performance improvementtest:
Test updatesdocs:
Documentation updateschore:
Maintenance tasksci:
CI/CD changesbuild:
Build system changesrevert:
Revert changeshotfix:
Urgent fixesinit:
New project/featuremerge:
Branch mergeswip:
Work in progressrelease:
Release preparation
-
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
-
-
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
-
This project is licensed under the MIT License - see the LICENSE file for details.
- Blizzard Entertainment for Diablo Immortal
- The Diablo Immortal community for their support and feedback
- My awesome f'n clan :)