- Comprehensive commercial product documentation for BuiltByBit marketplace - 5 detailed documents covering all aspects of commercial development - Complete implementation guide with all Gemini-provided code blocks - Full marketing strategy with BuiltByBit launch materials - Comprehensive testing guide with essential test cases - Support playbook for 2-5 hours/month sustainable operations COMMERCIAL VIABILITY: - Market validated: $9,600 proven revenue (competitor analysis) - Revenue projection: $1,000-6,750 year 1 (realistic: $3,000) - Development time: 8-10 hours (Gemini provided complete code) - Break-even: 40 sales (2-3 months at realistic pace) - ROI: Even worst case justifies build (saves 120 hours/year internal use) TECHNICAL ARCHITECTURE: - Backend: PHP/Laravel services (ModpackDetector, CacheService, 3 API providers) - Frontend: React/TypeScript status badge component - Database: Idempotent installation scripts (install.sh, remove.sh) - Platforms: CurseForge, Modrinth, FTB (Feed The Beast) - Caching: Egg Variable storage for performance - Auto-detection: File fingerprinting with graceful fallbacks PRODUCT FEATURES: - Standard tier ($14.99): CurseForge + Modrinth, manual checking - Professional tier ($24.99): + FTB + cron automation + Discord webhooks - Zero-click monitoring (status badges on dashboard) - Auto-detection (no manual configuration) - Manual override capability - Graceful API failure handling DOCUMENTATION COMPLETE: 1. README.md - Executive summary, architecture, strategy (11.6KB) 2. IMPLEMENTATION-PLAN.md - All code blocks organized by component (16.9KB) 3. MARKETING-STRATEGY.md - BuiltByBit launch materials, SEO copy (16.7KB) 4. TESTING-GUIDE.md - QA procedures, test cases, beta testing (13.7KB) 5. SUPPORT-PLAYBOOK.md - Operations guide, sustainable support (15.2KB) MARKET POSITIONING: - Unique value: MONITORING tool (competitors only install) - Solves Day 2-365 problem (maintenance, not setup) - Complementary to existing installers (not competitive) - Professional tier features unique to market (cron automation) RESEARCH SOURCE: - Complete Gemini Pro research session (4 hours, February 22, 2026) - Competitor analysis, technical architecture, commercial strategy - Operations planning, marketing materials, support strategy - Compressed months of traditional planning into single night This commercial product is READY TO BUILD when resources available. Expected execution: 8-10 hours assembly + testing + launch. Built by: The Chronicler #21 Research partner: Gemini Pro For: Firefrost Gaming (internal use) + BuiltByBit marketplace (passive income) Purpose: Generate $1,000-6,750/year passive revenue while solving internal need Fire + Frost + Foundation = Where Innovation Generates Income
563 lines
12 KiB
Markdown
563 lines
12 KiB
Markdown
# MODPACK VERSION CHECKER - TESTING GUIDE
|
|
|
|
**Complete quality assurance procedures before launch**
|
|
|
|
---
|
|
|
|
## ⚠️ CRITICAL SAFETY RULE
|
|
|
|
**DO NOT TEST ON LIVE FIREFROST NODES (TX1 Dallas or NC1 Charlotte)**
|
|
|
|
**Why:**
|
|
- One bad database query = panel lockup
|
|
- Risk to 11 production servers
|
|
- Potential data corruption
|
|
|
|
**Solution:**
|
|
- Use $5/month test VPS with fresh Pterodactyl install
|
|
- Test on isolated environment
|
|
- Only deploy to Firefrost after complete validation
|
|
|
|
---
|
|
|
|
## 🧪 TESTING ENVIRONMENT SETUP
|
|
|
|
### Test VPS Requirements
|
|
|
|
**Minimum specs:**
|
|
- 2GB RAM
|
|
- 20GB SSD
|
|
- Ubuntu 22.04 LTS
|
|
- Fresh Pterodactyl Panel v1.11.x or v1.12.x
|
|
- Blueprint Framework (latest)
|
|
- PHP 8.1, 8.2, or 8.3
|
|
|
|
**Recommended providers:**
|
|
- Vultr ($5/month)
|
|
- Hetzner Cloud (€4/month)
|
|
- DigitalOcean ($6/month)
|
|
|
|
### Installation Steps
|
|
|
|
1. Deploy Ubuntu 22.04 VPS
|
|
2. Install Pterodactyl Panel (clean)
|
|
3. Install Blueprint Framework
|
|
4. Create 3-5 test servers with different modpacks
|
|
5. Upload sample modpack files (manifest.json, instance.json, modrinth.index.json)
|
|
|
|
---
|
|
|
|
## ✅ ESSENTIAL TEST CASES (Critical Priority)
|
|
|
|
**All must pass before BuiltByBit launch**
|
|
|
|
### Test 1: Clean Installation
|
|
|
|
**Objective:** Verify extension installs without errors
|
|
|
|
**Steps:**
|
|
1. Upload `.blueprint` file to test panel
|
|
2. Run `blueprint -install modpackmonitor.blueprint`
|
|
3. Check for any error messages
|
|
4. Verify database variables created
|
|
|
|
**Expected Result:**
|
|
- ✅ Installation completes successfully
|
|
- ✅ Success message displayed
|
|
- ✅ No errors in logs
|
|
- ✅ Database contains `MODPACK_PLATFORM` and `MODPACK_ID` variables
|
|
|
|
**Pass Criteria:**
|
|
- Zero errors during installation
|
|
- Variables exist in `egg_variables` table
|
|
- UI loads without breaking
|
|
|
|
**If Fails:**
|
|
- Check install.sh script syntax
|
|
- Verify database credentials parsed correctly
|
|
- Check MySQL permissions
|
|
|
|
---
|
|
|
|
### Test 2: CurseForge Detection
|
|
|
|
**Objective:** Verify CurseForge modpack detection works
|
|
|
|
**Steps:**
|
|
1. Create test server with CurseForge modpack
|
|
2. Upload `manifest.json` to server root
|
|
3. Load server page in panel
|
|
4. Check status badge
|
|
|
|
**Expected Result:**
|
|
- ✅ Platform detected as "curseforge"
|
|
- ✅ Project ID extracted from manifest
|
|
- ✅ Badge displays on server page
|
|
- ✅ Egg Variables populated correctly
|
|
|
|
**Sample manifest.json:**
|
|
```json
|
|
{
|
|
"minecraft": {
|
|
"version": "1.20.1"
|
|
},
|
|
"manifestType": "minecraftModpack",
|
|
"manifestVersion": 1,
|
|
"name": "Test Pack",
|
|
"version": "1.0.0",
|
|
"projectID": 123456
|
|
}
|
|
```
|
|
|
|
**Pass Criteria:**
|
|
- Auto-detection works
|
|
- Correct project ID stored
|
|
- No manual configuration needed
|
|
|
|
---
|
|
|
|
### Test 3: Modrinth Detection
|
|
|
|
**Objective:** Verify Modrinth modpack detection works
|
|
|
|
**Steps:**
|
|
1. Create test server with Modrinth modpack
|
|
2. Upload `modrinth.index.json` to server root
|
|
3. Load server page
|
|
4. Check status badge
|
|
|
|
**Expected Result:**
|
|
- ✅ Platform detected as "modrinth"
|
|
- ✅ Version ID extracted
|
|
- ✅ Badge displays correctly
|
|
- ✅ Works without API key
|
|
|
|
**Sample modrinth.index.json:**
|
|
```json
|
|
{
|
|
"formatVersion": 1,
|
|
"game": "minecraft",
|
|
"versionId": "abc123xyz",
|
|
"name": "Test Modrinth Pack"
|
|
}
|
|
```
|
|
|
|
**Pass Criteria:**
|
|
- Auto-detection works
|
|
- No API key required
|
|
- Instant functionality
|
|
|
|
---
|
|
|
|
### Test 4: FTB Detection
|
|
|
|
**Objective:** Verify FTB modpack detection works
|
|
|
|
**Steps:**
|
|
1. Create test server with FTB modpack
|
|
2. Upload `instance.json` to server root
|
|
3. Load server page
|
|
4. Check status badge
|
|
|
|
**Expected Result:**
|
|
- ✅ Platform detected as "ftb"
|
|
- ✅ Modpack ID extracted
|
|
- ✅ Professional tier feature works
|
|
- ✅ No API key required
|
|
|
|
**Sample instance.json:**
|
|
```json
|
|
{
|
|
"modpackId": 789,
|
|
"versionId": 1234,
|
|
"name": "FTB Test Pack"
|
|
}
|
|
```
|
|
|
|
**Pass Criteria:**
|
|
- Auto-detection works
|
|
- Correct modpack ID stored
|
|
- Works immediately
|
|
|
|
---
|
|
|
|
### Test 5: API Timeout Handling
|
|
|
|
**Objective:** Verify graceful degradation when API is unreachable
|
|
|
|
**Steps:**
|
|
1. Block internet access temporarily on test server
|
|
2. OR use invalid API endpoint in code
|
|
3. Load server page
|
|
4. Check error handling
|
|
|
|
**Expected Result:**
|
|
- ✅ Panel doesn't crash
|
|
- ✅ Badge shows "API Offline" or similar
|
|
- ✅ Yellow/gray color (not green/red)
|
|
- ✅ User can still access panel
|
|
|
|
**Pass Criteria:**
|
|
- No white screen of death
|
|
- Clear error message to user
|
|
- Panel remains functional
|
|
|
|
**If Fails:**
|
|
- Add try/catch around all API calls
|
|
- Implement timeout handling
|
|
- Add default fallback values
|
|
|
|
---
|
|
|
|
### Test 6: Clean Uninstallation
|
|
|
|
**Objective:** Verify extension removes cleanly without breaking panel
|
|
|
|
**Steps:**
|
|
1. Run `blueprint -remove modpackmonitor`
|
|
2. Check database for leftover variables
|
|
3. Check UI for broken elements
|
|
4. Verify panel still functions
|
|
|
|
**Expected Result:**
|
|
- ✅ Database variables removed
|
|
- ✅ UI restored to original state
|
|
- ✅ No orphaned data in database
|
|
- ✅ Panel functions normally
|
|
|
|
**Pass Criteria:**
|
|
- Complete cleanup
|
|
- No broken UI elements
|
|
- No database errors
|
|
|
|
**If Fails:**
|
|
- Check remove.sh script
|
|
- Verify CASCADE foreign keys working
|
|
- Manually clean database if needed
|
|
|
|
---
|
|
|
|
## 🔄 SECONDARY TEST CASES (High Priority)
|
|
|
|
### Test 7: Force Re-scan Button
|
|
|
|
**Steps:**
|
|
1. Load server with detected modpack
|
|
2. Click "Force Re-scan" button
|
|
3. Verify re-detection occurs
|
|
|
|
**Expected:**
|
|
- Egg Variable resets to "auto"
|
|
- Fresh detection runs
|
|
- Cache updates with new result
|
|
|
|
---
|
|
|
|
### Test 8: Manual Override
|
|
|
|
**Steps:**
|
|
1. Go to server Startup tab
|
|
2. Manually set MODPACK_PLATFORM to "curseforge"
|
|
3. Manually set MODPACK_ID to "123456"
|
|
4. Load server page
|
|
|
|
**Expected:**
|
|
- Manual values used (not auto-detected)
|
|
- Badge shows manually configured platform
|
|
- Wrench icon (🔧) indicates manual config
|
|
|
|
---
|
|
|
|
### Test 9: API Key Configuration (CurseForge)
|
|
|
|
**Steps:**
|
|
1. Access admin panel
|
|
2. Navigate to extension settings
|
|
3. Add CurseForge API key
|
|
4. Test CurseForge modpack server
|
|
|
|
**Expected:**
|
|
- API key saves correctly
|
|
- CurseForge detection works
|
|
- Multiple users can use same key
|
|
|
|
---
|
|
|
|
### Test 10: Multiple Servers Performance
|
|
|
|
**Steps:**
|
|
1. Create 10 test servers with different modpacks
|
|
2. Load server list page
|
|
3. Check for performance issues
|
|
4. Monitor database query count
|
|
|
|
**Expected:**
|
|
- Page loads in <2 seconds
|
|
- Database caching prevents redundant queries
|
|
- No performance degradation
|
|
|
|
---
|
|
|
|
## 🐛 EDGE CASE TESTING
|
|
|
|
### Edge Case 1: No Manifest Files
|
|
|
|
**Scenario:** Server has no modpack manifest files
|
|
|
|
**Expected:**
|
|
- Platform detected as "unknown"
|
|
- Yellow badge: "Platform Unknown"
|
|
- Manual override option available
|
|
- No crashes
|
|
|
|
---
|
|
|
|
### Edge Case 2: Corrupted JSON
|
|
|
|
**Scenario:** manifest.json is malformed/corrupted
|
|
|
|
**Expected:**
|
|
- JSON parse error caught
|
|
- Yellow badge: "JSON Parse Error"
|
|
- Helpful error message
|
|
- Panel remains functional
|
|
|
|
---
|
|
|
|
### Edge Case 3: Multiple Platform Files
|
|
|
|
**Scenario:** Server has both manifest.json AND modrinth.index.json
|
|
|
|
**Expected:**
|
|
- Detection priority followed (FTB > Modrinth > CurseForge)
|
|
- Most recently modified file wins
|
|
- Clear indication which was detected
|
|
|
|
---
|
|
|
|
### Edge Case 4: Custom Modpack (No Public ID)
|
|
|
|
**Scenario:** Private/custom modpack with no public project ID
|
|
|
|
**Expected:**
|
|
- Auto-detection fails gracefully
|
|
- Manual override works
|
|
- User can link to public ID if desired
|
|
- Or leave as "unknown" without issues
|
|
|
|
---
|
|
|
|
## 📊 PERFORMANCE TESTING
|
|
|
|
### Load Test: 50 Servers
|
|
|
|
**Objective:** Ensure extension scales to hosting company size
|
|
|
|
**Steps:**
|
|
1. Create 50 test servers
|
|
2. Mix of CurseForge, Modrinth, FTB
|
|
3. Load server list page
|
|
4. Monitor response time and resource usage
|
|
|
|
**Acceptable Performance:**
|
|
- Page load: <3 seconds
|
|
- Memory usage: No significant increase
|
|
- Database queries: Cached (not 50 queries per page)
|
|
|
|
---
|
|
|
|
### Stress Test: API Rate Limiting
|
|
|
|
**Objective:** Verify rate limit protection works
|
|
|
|
**Steps:**
|
|
1. Configure cron job to check 100 servers simultaneously
|
|
2. Monitor API request rate
|
|
3. Check for rate limit errors
|
|
|
|
**Expected:**
|
|
- Randomized delays between requests (sleep function)
|
|
- No rate limit blocks
|
|
- Graceful handling if limits hit
|
|
|
|
---
|
|
|
|
## ✅ BETA TESTING PROGRAM
|
|
|
|
### Beta Tester Recruitment
|
|
|
|
**Target:** 3-5 experienced Pterodactyl users
|
|
**Source:** Pterodactyl Discord community
|
|
**Duration:** 1 week
|
|
**Incentive:** Free Professional tier license
|
|
|
|
### Beta Test Objectives
|
|
|
|
**Primary goals:**
|
|
1. Identify bugs in real-world environments
|
|
2. Test edge cases (weird modpack configs)
|
|
3. Validate user experience
|
|
4. Gather feature requests for v2.0
|
|
|
|
### Beta Tester Feedback Form
|
|
|
|
**Questions:**
|
|
1. How easy was installation? (1-5 scale)
|
|
2. Did auto-detection work for your modpacks? (Yes/No)
|
|
3. Did you encounter any errors? (Describe)
|
|
4. How useful is this extension? (1-5 scale)
|
|
5. What features would you want added? (Open)
|
|
6. Would you recommend to others? (Yes/No)
|
|
|
|
### Beta Test Success Criteria
|
|
|
|
**Required for launch:**
|
|
- ✅ 3+ beta testers complete testing
|
|
- ✅ No critical bugs reported
|
|
- ✅ 4+ average "usefulness" rating
|
|
- ✅ 80%+ "would recommend" rate
|
|
|
|
---
|
|
|
|
## 📝 PRE-LAUNCH FINAL CHECKLIST
|
|
|
|
**Complete before clicking "Publish" on BuiltByBit:**
|
|
|
|
### Functionality Tests
|
|
- [ ] Clean install on fresh Pterodactyl VPS
|
|
- [ ] CurseForge detection works
|
|
- [ ] Modrinth detection works
|
|
- [ ] FTB detection works
|
|
- [ ] API timeout handling (no crashes)
|
|
- [ ] Clean uninstall (restores UI)
|
|
- [ ] Force re-scan button functional
|
|
- [ ] Manual override works
|
|
- [ ] API key admin panel functional
|
|
- [ ] Multiple servers perform well
|
|
|
|
### Code Quality
|
|
- [ ] All PHP code follows PSR-12 standards
|
|
- [ ] All React components use TypeScript
|
|
- [ ] No console errors in browser
|
|
- [ ] No PHP errors in logs
|
|
- [ ] Database queries optimized
|
|
|
|
### Documentation
|
|
- [ ] README.md complete
|
|
- [ ] Installation guide written
|
|
- [ ] Troubleshooting guide written
|
|
- [ ] User documentation published
|
|
- [ ] API documentation complete
|
|
|
|
### Beta Testing
|
|
- [ ] 3-5 beta testers recruited
|
|
- [ ] 1 week testing period complete
|
|
- [ ] Feedback collected and addressed
|
|
- [ ] Critical bugs fixed
|
|
- [ ] Feature requests documented for v2.0
|
|
|
|
---
|
|
|
|
## 🚨 CRITICAL BUGS VS. MINOR BUGS
|
|
|
|
### CRITICAL (Block launch)
|
|
- Panel crashes or becomes unusable
|
|
- Database corruption
|
|
- Data loss
|
|
- Security vulnerabilities
|
|
- Installation fails on supported versions
|
|
|
|
### MINOR (Launch with known issues)
|
|
- Visual glitches (cosmetic)
|
|
- Edge case detection failures
|
|
- Slow performance on 100+ servers
|
|
- Missing features (can be v2.0)
|
|
|
|
**Document known minor issues in changelog**
|
|
|
|
---
|
|
|
|
## 📊 POST-LAUNCH MONITORING
|
|
|
|
### Week 1 Monitoring
|
|
|
|
**Monitor daily:**
|
|
- BuiltByBit reviews/ratings
|
|
- Discord support tickets
|
|
- Error reports
|
|
- Installation success rate
|
|
|
|
**Respond to:**
|
|
- All support tickets within 24 hours
|
|
- All negative reviews with solutions
|
|
- All bug reports immediately
|
|
|
|
### Month 1 Monitoring
|
|
|
|
**Track:**
|
|
- Total sales
|
|
- Average rating
|
|
- Support ticket volume
|
|
- Common issues/questions
|
|
|
|
**Actions:**
|
|
- Create FAQ from common questions
|
|
- Fix high-frequency bugs
|
|
- Plan v1.1.0 update if needed
|
|
|
|
---
|
|
|
|
## 🔧 TROUBLESHOOTING COMMON ISSUES
|
|
|
|
### Issue: "Blueprint not found"
|
|
|
|
**Cause:** User doesn't have Blueprint installed
|
|
**Solution:** Add to FAQ, require Blueprint in listing
|
|
**Prevention:** Big red warning on BuiltByBit page
|
|
|
|
---
|
|
|
|
### Issue: "Database variables not created"
|
|
|
|
**Cause:** MySQL permissions issue
|
|
**Solution:** Check user has CREATE/INSERT permissions
|
|
**Prevention:** Add permission check to install.sh
|
|
|
|
---
|
|
|
|
### Issue: "API timeout" for all servers
|
|
|
|
**Cause:** Firewall blocking outbound connections
|
|
**Solution:** Document firewall requirements
|
|
**Prevention:** Add connectivity check during install
|
|
|
|
---
|
|
|
|
### Issue: "Detection not working"
|
|
|
|
**Cause:** Modpack files in non-standard location
|
|
**Solution:** Manual override documentation
|
|
**Prevention:** Support multiple file locations in v2.0
|
|
|
|
---
|
|
|
|
## ✅ TESTING COMPLETION CRITERIA
|
|
|
|
**This testing phase is COMPLETE when:**
|
|
|
|
✅ All 10 essential test cases pass
|
|
✅ All 4 edge cases handled gracefully
|
|
✅ Performance tests pass (50 servers <3 sec)
|
|
✅ Beta testing complete (3+ testers, positive feedback)
|
|
✅ No critical bugs remain
|
|
✅ Documentation complete
|
|
✅ Pre-launch checklist 100% complete
|
|
|
|
---
|
|
|
|
**Fire + Frost + Foundation = Where Testing Ensures Quality** 💙🔥❄️
|
|
|
|
**Testing guide created:** February 22, 2026
|
|
**Created by:** The Chronicler #21
|
|
**Purpose:** Ensure bug-free commercial launch
|