Skip to content

Dahgoth/di-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DI-Lab

Build Status License: AGPL-3.0-or-later Version

TypeScript Next.js

SemVer Conventional Commits Keep a Changelog Husky commitlint

Description

DI-Lab is a web application for optimizing legendary gems in Diablo Immortal. Similar to World of Warcraft tools like Raidbots and Ask Mr. Robot, DI-Lab helps players make data-driven decisions about gem upgrades to maximize their character's power.

The application analyzes your current gem build, considers available resources (platinum, Telluric Pearls, etc.), and provides prioritized upgrade recommendations based on power gain per resource cost.

Features

  • Gem Inventory: Upload screenshots or manually select legendary gems from a comprehensive database
  • Resource Management: Input available resources to get realistic upgrade recommendations
  • Optimization Engine: Algorithm that factors in resources, current build, and goals to recommend best upgrades
  • Character Sync: Battle.net OAuth with character verification (planned)
  • Build Management: Save, share, and compare builds (planned)

Tiers

  • Free Tier: Basic optimization, manual gem entry, limited selections
  • Paid Tier 1: Advanced algorithms, screenshot OCR, build saving/sharing
  • Paid Tier 2: Battle.net character sync, historical tracking, API access

Quick Start

Prerequisites

  • Bun runtime (recommended) or Node.js 20+
  • Bun is used as the primary package manager

Installation

# Clone the repository
git clone https://github.com/dahgoth/di-lab.git
cd di-lab

# Install dependencies
bun install

Usage

# Start development server
bun dev

# Build for production
bun build

# Start production server
bun start

Open http://localhost:3000 in your browser.

Contributing

We welcome contributions! Please follow our commit workflow:

Commit Workflow

This project uses Conventional Commits with automated validation:

# Type must be one of: feat, fix, docs, style, refactor, test, chore, perf, ci, build, revert
# Scope is optional but recommended for spec-specific changes

# Examples:
git commit -m "feat: add gem selector component"
git commit -m "fix(optimize): resolve resonance calculation error"
git commit -m "docs: update installation instructions"

Pre-commit Checks

Before each commit, the following checks run automatically:

  1. ESLint - Code quality and formatting
  2. TypeScript - Type checking
  3. commitlint - Commit message format validation

If checks fail:

  1. Run bun lint --fix to auto-fix formatting issues
  2. Fix type errors manually
  3. Rewrite commit message following conventional format

Pull Requests

  1. Create a feature branch from main
  2. Make your changes following conventional commits
  3. Create a PR using our template
  4. Ensure all CI checks pass
  5. Wait for review

Release Process

This project uses release-please-action for automated releases:

  1. Commits to main trigger a Release PR
  2. Review and merge the Release PR
  3. GitHub Release is created automatically
  4. Version in package.json is bumped automatically

See our contributing guidelines for more details.

License

This project is licensed under the GNU Affero General Public License v3.0 or later - see the LICENSE file for details.

Acknowledgments

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors