A modern, responsive guild DKP (Dragon Kill Points) management system built for EverQuest and other MMORPGs. Features automated log parsing, character management, raid tracking, and comprehensive DKP calculations.
- Smart Log Parsing - Automatically parse EverQuest raid logs to extract attendance
- Character Auto-Creation - Creates missing characters from log data with level/class detection
- Raid Management - Full CRUD operations for raids with tick-based DKP system
- Real-time Updates - Live parsing feedback and character creation previews
- Role-Based Access - Member, Officer, and Admin permission levels
- Multiple Log Formats - Supports EverQuest logs, who output, guild rosters, and simple lists
- Dark Mode - Complete dark/light theme support
- Responsive Design - Mobile-friendly interface
- Tick Management - Granular DKP tracking per raid event
- Item Distribution - Track DKP spending on raid loot
- Attendance Tracking - Comprehensive raid attendance reports
Supported Formats:
โข EverQuest chat logs: [Wed Aug 14 20:30:15 2024] Thorgan says, 'ready to pull'
โข Who output: [65 Warrior] Thorgan (Human) <Elements of War>
โข Guild rosters: Thorgan [65 Warrior] (Human) <Elements of War>
โข Simple lists: one character name per line
โข DKP patterns: Character +15 DKP
- Frontend: React 18 with Hooks
- Styling: Tailwind CSS
- Icons: Lucide React
- Build Tool: Create React App
- State Management: React Context + useState
- Node.js 14+ and npm
- Git
- Clone the repository
git clone https://github.com/yourusername/opendkp-app.git
cd opendkp-app- Install dependencies
npm install- Start development server
npm start- Open your browser
Navigate to
http://localhost:3000
npm run build- Set Your Role - Use the role selector in the top-right to simulate different permission levels
- Create a Raid - Navigate to Admin > Create Raid
- Add Ticks - Use the log parser to automatically extract attendance from raid logs
- Manage Characters - View auto-created characters or manually add new ones
- Go to Admin > Create Raid
- Click Add Tick
- Paste your raid log in the text area
- Click Parse Log for Attendance
- Review detected characters and their information
- Click Add Tick to save
- Characters are automatically created from parsed logs
- Levels, classes, and guilds are detected when available
- Existing characters are updated with new information
- Manual character creation available via Admin > Create Character
opendkp-app/
โโโ public/
โ โโโ index.html
โ โโโ manifest.json
โโโ src/
โ โโโ App.js # Main application component
โ โโโ index.js # React entry point
โ โโโ index.css # Global styles
โโโ package.json
โโโ README.md
โโโ .gitignore
- Summary - Dashboard overview with guild statistics
- Raids - Raid management with detailed tick system
- Characters - Character listing and management
- Items - DKP item distribution tracking
- Admin Tools - Settings, user management, creation forms
- CreateRaid - Advanced raid creation with log parsing
- Tick Management - Granular DKP event tracking
- Smart Parsing - Multi-format log analysis
- Auto-Creation - Intelligent character database population
The application currently uses mock data for demonstration. Key mock objects include:
mockCharacters- Sample character rostermockRaids- Example raids with tick datamockItems- DKP item distribution historymockFunctions- API simulation functions
- Modify
classColorsandrankColorsfor different styling - Update
navigationstructure for custom menu items - Adjust
mockFunctionsto integrate with your backend API
- Build the project:
npm run build - Deploy the
buildfolder to Netlify
- Install Vercel CLI:
npm i -g vercel - Run:
vercel --prod
- Install:
npm install --save-dev gh-pages - Add to package.json:
"homepage": "https://yourusername.github.io/opendkp-app" - Deploy:
npm run deploy
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow React best practices
- Use functional components with hooks
- Maintain responsive design principles
- Include console logging for API simulation
- Test across different screen sizes
The application includes mock functions that simulate API calls. To integrate with a real backend:
- Replace
mockFunctionswith actual API calls - Update state management to handle async operations
- Add error handling and loading states
- Implement authentication/authorization
// Replace mock functions with real API calls
const api = {
createRaid: (data) => fetch('/api/raids', { method: 'POST', body: JSON.stringify(data) }),
parseLog: (logText) => fetch('/api/logs/parse', { method: 'POST', body: logText }),
createCharacter: (char) => fetch('/api/characters', { method: 'POST', body: JSON.stringify(char) })
};This project is licensed under the MIT License - see the LICENSE file for details.
- EverQuest Community - For inspiring guild management solutions
- Tailwind CSS - For the excellent utility-first CSS framework
- Lucide - For the beautiful icon set
- React Team - For the amazing framework
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Wiki: Project Wiki
Made with โค๏ธ for the EverQuest community