🎮 Add documentation for GAMEMASTER setup process
This commit is contained in:
124
code/websites/pokedex.online/GAMEMASTER_SETUP.md
Normal file
124
code/websites/pokedex.online/GAMEMASTER_SETUP.md
Normal file
@@ -0,0 +1,124 @@
|
||||
# Gamemaster Data System - Implementation Summary
|
||||
|
||||
## What Was Built
|
||||
|
||||
You now have a complete system for managing and sharing Pokemon GO gamemaster data across all apps on your site:
|
||||
|
||||
### 1. **Gamemaster API Server** (`server/gamemaster-api.js`)
|
||||
- **7 REST endpoints** for accessing gamemaster data
|
||||
- **POST /api/gamemaster/save** - Save processed data from GamemasterManager
|
||||
- **GET endpoints** for pokemon, moves, raw data, and status
|
||||
- **File storage** in `/server/data/gamemaster/`
|
||||
- Automatic error handling and validation
|
||||
|
||||
### 2. **GamemasterClient** (`src/utilities/gamemaster-client.js`)
|
||||
- **JavaScript client library** for accessing the API
|
||||
- **Caching support** to avoid repeated requests
|
||||
- **Helper methods** like `getPokemonById()` and `getMoveById()`
|
||||
- **File download support** for direct browser downloads
|
||||
- Works in any Vue component or JavaScript app
|
||||
|
||||
### 3. **Updated GamemasterManager** (`src/views/GamemasterManager.vue`)
|
||||
- **New "Save to Server" button** to persist data
|
||||
- **Server status section** showing available files and sizes
|
||||
- **Real-time updates** after saving
|
||||
- **Complete workflow**: Fetch → Process → Save → Share
|
||||
|
||||
### 4. **Comprehensive Documentation** (`GAMEMASTER_API.md`)
|
||||
- **Full API reference** with examples
|
||||
- **Client library usage guide**
|
||||
- **Setup instructions**
|
||||
- **Troubleshooting tips**
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────┐
|
||||
│ GamemasterManager (UI) │
|
||||
│ Fetch → Process → Save to Server │
|
||||
└────────────────────┬────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌──────────────────────────────┐
|
||||
│ Gamemaster API Server │
|
||||
│ /api/gamemaster/* │
|
||||
│ - Endpoints for all data │
|
||||
│ - File storage/retrieval │
|
||||
└────────────────┬─────────────┘
|
||||
│
|
||||
┌────────────┴────────────┐
|
||||
│ │
|
||||
▼ ▼
|
||||
┌────────────────┐ ┌──────────────────┐
|
||||
│ File Storage │ │ Other Apps │
|
||||
│ /server/data/ │ │ Use GamemasterC │
|
||||
│ /gamemaster │ │ Client │
|
||||
└────────────────┘ └──────────────────┘
|
||||
```
|
||||
|
||||
## How to Use
|
||||
|
||||
### Generate and Save Data
|
||||
1. Go to `/gamemaster` in your app
|
||||
2. Click "Fetch from PokeMiners"
|
||||
3. Click "Process & Break Up Data"
|
||||
4. Click "Save All Files to Server"
|
||||
5. Data is now available to all apps
|
||||
|
||||
### Access from Any App
|
||||
```javascript
|
||||
import { gamemasterClient } from '@/utilities/gamemaster-client.js';
|
||||
|
||||
// Get filtered pokemon
|
||||
const pokemon = await gamemasterClient.getPokemon();
|
||||
|
||||
// Get all forms (with costumes, events, shadows)
|
||||
const allForms = await gamemasterClient.getAllForms();
|
||||
|
||||
// Get all moves
|
||||
const moves = await gamemasterClient.getMoves();
|
||||
|
||||
// Check what's available
|
||||
const status = await gamemasterClient.getStatus();
|
||||
```
|
||||
|
||||
## Files Created/Modified
|
||||
|
||||
### New Files
|
||||
- `server/gamemaster-api.js` - API server
|
||||
- `server/data/gamemaster/` - Data storage directory
|
||||
- `src/utilities/gamemaster-client.js` - Client library
|
||||
- `GAMEMASTER_API.md` - Full documentation
|
||||
|
||||
### Modified Files
|
||||
- `src/views/GamemasterManager.vue` - Added save/status features
|
||||
- `server/oauth-proxy.js` - Integrated gamemaster API
|
||||
- `README.md` - Updated with new features and workflow
|
||||
|
||||
## Key Features
|
||||
|
||||
✅ **Centralized Data Storage** - One source of truth for gamemaster data
|
||||
✅ **Multiple Datasets** - Filtered and unmodified versions
|
||||
✅ **Real-time Access** - Any app can access latest data immediately
|
||||
✅ **Caching** - Client-side caching for performance
|
||||
✅ **Status Monitoring** - See what files are available and when they were updated
|
||||
✅ **Direct Downloads** - Download files from server or browser
|
||||
✅ **Error Handling** - Graceful fallbacks when data unavailable
|
||||
✅ **CORS Enabled** - Works across all apps on your site
|
||||
|
||||
## Data Types Available
|
||||
|
||||
1. **pokemon.json** - Base Pokemon + regional variants (Alola, Galarian, Hisuian, Paldea)
|
||||
2. **pokemon-allFormsCostumes.json** - Complete dataset with all variants, costumes, shadows, events
|
||||
3. **pokemon-moves.json** - All quick and charged moves
|
||||
4. **latest-raw.json** - Unmodified gamemaster data from PokeMiners
|
||||
|
||||
## Next Steps
|
||||
|
||||
You can now:
|
||||
- Build new Pokemon tools that use the centralized data
|
||||
- Create forms/filters based on gamemaster data
|
||||
- Share pokemon/move lookups across multiple pages
|
||||
- Keep data in sync when PokeMiners releases updates
|
||||
|
||||
Just import the `GamemasterClient` and start using it!
|
||||
Reference in New Issue
Block a user