A Rails application for managing Dungeons & Dragons crafting components and recipes. This tool helps players track harvested components from monsters and manage their party's crafting inventory for creating magical items.
Harcraft Helper is designed for D&D players and Dungeon Masters who want to keep track of monster-derived crafting components. In D&D, players can harvest components from defeated monsters to craft magical items, potions, and other equipment. This application provides:
- Component Inventory Management: Track components harvested from different monster types
- Crafting Recipes: View items that can be crafted from available components
- Harvesting Information: See required skills, DCs, and special properties for each component
- Party Management: Organize components by adventuring party
- Import Tools: Bulk import component and recipe data from CSV/JSON sources
The harvesting and crafting systems are based on Heliana's Guide to Monster Hunting and its comprehensive crafting system. The project exists to solve the problem of managing complex crafting systems in D&D campaigns, where players need to remember which monsters provide which components and how to combine them for crafting.
This project serves as a testbed for evaluating various AI coding agents and their capabilities in building real-world applications. The goal is to assess the strengths and weaknesses of different AI models when working on complex Rails applications with modern frontend technologies.
Currently tested agents:
- GPT-4.1
- GPT-4o
- Grok Code Fast 1
Future plans:
- Gemini 2.5
- Claude Sonnet 4
- GPT-5
Each agent contributes features and improvements, allowing for comparative analysis of their coding patterns, problem-solving approaches, and ability to maintain code quality across a full-stack application.
- Ruby 3.4.2 (see
.ruby-version) - SQLite 3.8.0 or later
- Node.js (for asset compilation)
- Rails 8.0.2
-
Clone the repository:
git clone <repository-url> cd harcraft-helper
-
Install Ruby dependencies:
bundle install
-
Install JavaScript dependencies:
bin/importmap pin --download
-
Create the database:
bin/rails db:create
-
Run migrations:
bin/rails db:migrate
-
Load seed data (optional):
bin/rails db:seed
The application includes import scripts to populate component and craftable item data:
-
Import components from JSON:
bin/rails components:import_from_json
-
Import craftable items from CSV:
bin/rails craftable_items:import_from_csv
You can also specify a custom file path:
bin/rails craftable_items:import_from_csv[lib/my-craftable-items.csv]
Start the development server with live CSS reloading:
bin/devThis uses Foreman to run both the Rails server and Tailwind CSS watcher simultaneously.
If you prefer to run services separately:
-
Start the Rails server:
bin/rails server
-
In another terminal, start the CSS watcher:
bin/rails tailwindcss:watch
The application will be available at http://localhost:3000.
Run the test suite:
bin/rails testRun system tests only:
bin/rails test:systemapp/models/- Data models (Component, CraftableItem, Party, etc.)app/controllers/- Rails controllers for managing parties and componentsapp/views/- ERB templates with Hotwire/Stimulus integrationapp/helpers/- View helpers for harvesting skill mappingslib/tasks/- Rake tasks for data importtest/- Test suite including system tests with Capybara
- Browse components by monster type and component type
- View harvesting requirements (DC, skills needed)
- See component properties (edible, volatile, notes)
- Filter and paginate through component lists
- Create adventuring parties
- Add harvested components to party inventory
- Track component quantities
- View craftable items based on available components
- Browse craftable items and their recipes
- See required components and quantities
- View crafting DCs and requirements
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Ensure all tests pass
- Submit a pull request
This project is open source. Please check the license file for details.