319 lines
9.8 KiB
Markdown
319 lines
9.8 KiB
Markdown
# Feature Implementation Status
|
||
|
||
This document tracks which features from the original `group-ironmen-master` project have been implemented in `os-league-tools-master`.
|
||
|
||
**Last Updated:** 2025-01-28
|
||
|
||
---
|
||
|
||
## ✅ IMPLEMENTED FEATURES
|
||
|
||
### Player Stats Display
|
||
- ✅ Hitpoints, Prayer, Energy bars with gradients
|
||
- ✅ World number and online/inactive status
|
||
- ✅ Last updated timestamp
|
||
|
||
### Skills Display
|
||
- ✅ All 23 skills in grid layout
|
||
- ✅ Skill boxes with current/true level display
|
||
- ✅ XP progress bars with color gradients (red→green)
|
||
- ✅ Background images (174-0.png, 175-0.png)
|
||
- ✅ Skill tooltips showing Total XP and XP until next level
|
||
- ✅ Skills reordered to match RuneLite's in-game order
|
||
- ✅ Combat level and Total level display
|
||
|
||
### Inventory Display
|
||
- ✅ 4×7 inventory grid with background image
|
||
- ✅ Item images (.webp format)
|
||
- ✅ Item quantities
|
||
|
||
### Equipment Display
|
||
- ✅ All 11 equipment slots with exact positioning
|
||
- ✅ Equipment background images
|
||
- ✅ Item rendering in correct slots
|
||
|
||
### XP Dropper
|
||
- ✅ Animated XP gain notifications
|
||
- ✅ Skill icons with XP amounts
|
||
- ✅ Stacked display when multiple skills gain XP
|
||
- ✅ 4-second scroll-up animation
|
||
- ✅ Correct skill mapping (alphabetical order from plugin)
|
||
|
||
### Group Management
|
||
- ✅ Multiple group support with localStorage
|
||
- ✅ Group token management
|
||
- ✅ Manual refresh button
|
||
- ✅ Auto-refresh every 2 seconds
|
||
- ✅ Expandable/collapsible member cards
|
||
|
||
### Backend Integration
|
||
- ✅ Spring Boot backend with MariaDB
|
||
- ✅ Case-insensitive member lookups
|
||
- ✅ REST API for group data
|
||
- ✅ Data transformation from backend arrays to frontend objects
|
||
|
||
---
|
||
|
||
## ❌ MISSING FEATURES
|
||
|
||
### High Priority - Core Features
|
||
|
||
#### 1. Item Tooltips
|
||
- **Status:** In Progress
|
||
- **Description:** Show item name, High Alch value, GE price on hover
|
||
- **Files Needed:** ItemBox.js updates, item database integration
|
||
- **Current State:** No tooltips on inventory/equipment items
|
||
|
||
#### 2. Bank Display
|
||
- **Status:** Not Started
|
||
- **Description:** Display player's bank inventory
|
||
- **Files Needed:** PlayerBank.js component
|
||
- **Current State:** Only showing equipment and inventory
|
||
- **Backend:** Data already available via API
|
||
|
||
#### 3. Items Page / Consolidated Inventory
|
||
- **Status:** Not Started
|
||
- **Description:** View all items across all players with filtering and sorting
|
||
- **Features:**
|
||
- View all items across all players
|
||
- Sort by quantity, value, alphabetical
|
||
- Player filter dropdown
|
||
- Search/filter functionality
|
||
- Pagination (200 items per page)
|
||
- Total GE value / High Alch value calculations
|
||
- **Files Needed:** ItemsPage.js, InventoryItem.js, InventoryPager.js
|
||
|
||
#### 4. Rune Pouch Display
|
||
- **Status:** Not Started
|
||
- **Description:** Special container for rune pouch contents
|
||
- **Files Needed:** RunePouch.js component
|
||
- **Backend:** Data available via rune_pouch field
|
||
|
||
#### 5. Seed Vault Display
|
||
- **Status:** Not Started
|
||
- **Description:** Display seed vault contents
|
||
- **Files Needed:** SeedVault.js component
|
||
- **Backend:** Data available via seed_vault field
|
||
|
||
---
|
||
|
||
### Medium Priority - Visualization & Tracking
|
||
|
||
#### 6. Skills Graphs / XP History
|
||
- **Status:** Not Started
|
||
- **Description:** Chart.js-based skill XP trends over time
|
||
- **Features:**
|
||
- Time period selector (Day, Week, Month, Year)
|
||
- Multi-player comparison on same chart
|
||
- Data table showing XP gains
|
||
- Overall skill breakdown
|
||
- **Files Needed:** SkillsGraphs.js, SkillGraph.js
|
||
- **Dependencies:** Chart.js library, backend XP history API endpoint
|
||
|
||
#### 7. Collection Log
|
||
- **Status:** Not Started
|
||
- **Description:** Track collection log completions across group
|
||
- **Features:**
|
||
- Collection log dialog with tabs (Bosses, Clues, Raids, PvM)
|
||
- Item completion tracking
|
||
- Which players have which items
|
||
- Completion percentages
|
||
- **Files Needed:** CollectionLog.js, CollectionLogTab.js, CollectionLogPage.js, CollectionLogItem.js
|
||
- **Backend:** Requires collection log API endpoint
|
||
|
||
#### 8. Quest Tracking
|
||
- **Status:** Not Started
|
||
- **Description:** Track quest completion across group
|
||
- **Features:**
|
||
- Quest list (Free, Members, Miniquests)
|
||
- Quest completion states (Not Started, In Progress, Finished)
|
||
- Quest points total
|
||
- Search/filter quests
|
||
- Difficulty indicators
|
||
- Wiki quick guide links
|
||
- **Files Needed:** PlayerQuests.js, quest data JSON
|
||
- **Backend:** Requires quests field in API
|
||
|
||
#### 9. Achievement Diaries
|
||
- **Status:** Not Started
|
||
- **Description:** Track achievement diary completion
|
||
- **Features:**
|
||
- 12 regional diaries
|
||
- Easy/Medium/Hard/Elite tier tracking
|
||
- Task-by-task completion
|
||
- Diary dialog with detailed tasks
|
||
- **Files Needed:** PlayerDiaries.js, DiaryCompletion.js, DiaryDialog.js, diaries data JSON
|
||
- **Backend:** Requires diary_vars field in API
|
||
|
||
#### 10. Interactive Map
|
||
- **Status:** Not Started
|
||
- **Description:** Canvas-based RuneScape world map with player tracking
|
||
- **Features:**
|
||
- Canvas-based world map rendering
|
||
- Player location markers
|
||
- Pan and zoom functionality (1x-6x)
|
||
- Multi-plane support (ground + 3 underground levels)
|
||
- Interacting markers (NPCs/objects)
|
||
- Location icons and labels
|
||
- Touch gesture support
|
||
- Real-time coordinate display
|
||
- **Files Needed:** MapPage.js, CanvasMap.js, Animation.js, map tiles, sprites
|
||
- **Backend:** Coordinates and interacting fields already available
|
||
|
||
#### 11. Player Interacting Display
|
||
- **Status:** Not Started
|
||
- **Description:** Show what NPC/object player is currently interacting with
|
||
- **Features:**
|
||
- Display NPC/object name
|
||
- NPC HP bar display
|
||
- 30-second stale timeout
|
||
- **Files Needed:** PlayerInteracting.js component
|
||
- **Backend:** Data already available via interacting field
|
||
|
||
---
|
||
|
||
### Low Priority - UI/UX Enhancements
|
||
|
||
#### 12. Search Functionality
|
||
- **Status:** Not Started
|
||
- **Description:** Global search for items and quests
|
||
- **Files Needed:** SearchElement.js component
|
||
|
||
#### 13. Multiple Panel View
|
||
- **Status:** Not Started
|
||
- **Description:** Dashboard view showing all players simultaneously
|
||
- **Files Needed:** PanelsPage.js layout
|
||
|
||
#### 14. Authentication
|
||
- **Status:** Not Started
|
||
- **Description:** User login/logout system
|
||
- **Current:** Using localStorage only
|
||
- **Files Needed:** LoginPage.js, LogoutPage.js, auth API integration
|
||
|
||
#### 15. Group Creation Wizard
|
||
- **Status:** Not Started
|
||
- **Description:** UI for creating and managing groups
|
||
- **Files Needed:** CreateGroup.js, GroupSettings.js, EditMember.js
|
||
|
||
#### 16. Setup Instructions
|
||
- **Status:** Not Started
|
||
- **Description:** Onboarding guide for new users
|
||
- **Files Needed:** SetupInstructions.js
|
||
|
||
#### 17. Donation/Social Links
|
||
- **Status:** Not Started
|
||
- **Description:** Support and social media links
|
||
- **Files Needed:** DonateButton.js, SocialLinks.js
|
||
|
||
#### 18. Loading Indicators
|
||
- **Status:** Partial
|
||
- **Description:** Better loading state management
|
||
- **Current:** Only shows "Loading..." text
|
||
- **Needed:** Full-screen loading spinner, LoadingScreen.js
|
||
|
||
#### 19. Confirm Dialogs
|
||
- **Status:** Not Started
|
||
- **Description:** Confirmation modal for destructive actions
|
||
- **Files Needed:** ConfirmDialog.js
|
||
|
||
---
|
||
|
||
### Infrastructure Differences
|
||
|
||
#### 20. Data Fetching Strategy
|
||
- **Current:** Polling every 2 seconds with forceReload
|
||
- **Original:** Pub/Sub event system with WebSocket-like updates
|
||
- **Trade-off:** More server load vs real-time feel
|
||
- **Future:** Consider WebSocket implementation for true real-time updates
|
||
|
||
#### 21. Item/Quest/Diary Data
|
||
- **Status:** Not Started
|
||
- **Description:** Comprehensive game data databases
|
||
- **Needed:**
|
||
- Item database with prices (High Alch, GE)
|
||
- Quest definitions database
|
||
- Diary tasks database
|
||
- **Current:** Minimal data models
|
||
|
||
---
|
||
|
||
## 📊 IMPLEMENTATION SUMMARY
|
||
|
||
| Category | Implemented | Total | Percentage |
|
||
|----------|-------------|-------|------------|
|
||
| **Core Display** | 5/7 | 7 | 71% |
|
||
| **Data Visualization** | 1/4 | 4 | 25% |
|
||
| **Tracking Systems** | 0/3 | 3 | 0% |
|
||
| **UI/UX Features** | 2/9 | 9 | 22% |
|
||
| **Overall** | **8/23** | **23** | **35%** |
|
||
|
||
---
|
||
|
||
## 🎯 RECOMMENDED IMPLEMENTATION ORDER
|
||
|
||
### Phase 1: Quick Wins (1-2 weeks)
|
||
1. ✅ Skill tooltips - **COMPLETE**
|
||
2. 🚧 Item tooltips - **IN PROGRESS**
|
||
3. Bank display component
|
||
4. Rune pouch display
|
||
5. Seed vault display
|
||
|
||
### Phase 2: Core Features (2-4 weeks)
|
||
6. Items page with sorting/filtering
|
||
7. Skills graphs / XP history
|
||
8. Player interacting display
|
||
9. Better loading indicators
|
||
|
||
### Phase 3: Advanced Tracking (4-6 weeks)
|
||
10. Collection log system
|
||
11. Quest tracking
|
||
12. Achievement diaries
|
||
13. Search functionality
|
||
|
||
### Phase 4: Advanced Features (6-8 weeks)
|
||
14. Interactive map with player locations
|
||
15. Multiple panel view
|
||
16. Authentication system
|
||
17. Group management UI
|
||
|
||
### Phase 5: Polish (1-2 weeks)
|
||
18. Setup instructions
|
||
19. Confirm dialogs
|
||
20. Donation/social links
|
||
21. WebSocket/real-time updates
|
||
|
||
---
|
||
|
||
## 📝 NOTES
|
||
|
||
### Technical Debt
|
||
- Consider migrating from 2-second polling to WebSocket for better performance
|
||
- Item/quest/diary databases need to be created or imported
|
||
- Map tile assets need to be sourced from original project
|
||
|
||
### Known Issues
|
||
- Auto-refresh every 2 seconds may cause high server load with many users
|
||
- No error handling for failed API requests beyond basic error messages
|
||
|
||
### Future Enhancements
|
||
- Mobile-responsive design improvements
|
||
- Progressive Web App (PWA) support
|
||
- Dark/light theme toggle
|
||
- Export data functionality (CSV, JSON)
|
||
- Group comparison tools
|
||
- Notification system for milestones
|
||
|
||
---
|
||
|
||
## 🔗 RELATED FILES
|
||
|
||
- **Backend:** `spring-backend/src/main/java/com/osleague/groupironmen/`
|
||
- **Frontend Components:** `os-league-tools-master/src/components/group/`
|
||
- **Data Models:** `os-league-tools-master/src/models/`
|
||
- **API Client:** `os-league-tools-master/src/client/group-ironmen-client.js`
|
||
- **Redux State:** `os-league-tools-master/src/store/group/`
|
||
|
||
---
|
||
|
||
*This document is maintained as features are added. Update the checkboxes and status fields as work progresses.*
|