Files
sonderau ea8484fca7 Imagery imported for icons and items. Live updates working.
Hover tooltip working. Features.md added for better tracking.
2025-10-28 08:41:04 +08:00

319 lines
9.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.*