84 lines
2.5 KiB
Markdown
84 lines
2.5 KiB
Markdown
# MTG Online Backend - Handoff Prompt
|
|
|
|
## Context
|
|
You are taking over the MTG Online Backend project. The project is a Python FastAPI application that integrates with MTGJSON API to provide Magic: The Gathering card data. The system downloads, processes, and stores MTGJSON datasets in PostgreSQL with a weekly refresh cycle.
|
|
|
|
## Current Status
|
|
- ✅ **All containers destroyed** and Docker pruned
|
|
- ✅ **Code is working** - last tested successfully with 5.4M+ cards loaded
|
|
- ⏸️ **Project paused** - ready for handoff
|
|
|
|
## Quick Start for New Thread
|
|
|
|
```bash
|
|
# 1. Read the handoff documentation
|
|
cat /home/wall-o/projects/mtgonline/HANDOFF.md
|
|
|
|
# 2. Check current state
|
|
cat /home/wall-o/projects/mtgonline/state.json
|
|
|
|
# 3. Rebuild and deploy
|
|
cd /home/wall-o/projects/mtgonline
|
|
docker build -t mtgonline_backend backend/
|
|
docker compose -p mtgonline up -d
|
|
|
|
# 4. Monitor startup
|
|
docker logs -f mtgonline_backend
|
|
```
|
|
|
|
## Key Information
|
|
|
|
**Location**: `/home/wall-o/projects/mtgonline`
|
|
**Last Commit**: `ad2742c` - "Fix MTGJSON download: use .gz URLs and handle pre-uncompressed files"
|
|
|
|
**Core Service**: `backend/app/services/mtgjson_manager.py`
|
|
- Downloads MTGJSON data from `https://mtgjson.com/api/v5`
|
|
- Handles both gzip-compressed and pre-uncompressed JSON files
|
|
- Upserts to PostgreSQL with `ON CONFLICT DO UPDATE`
|
|
- Weekly refresh cycle (7 days)
|
|
- Container marked unhealthy if data corrupted
|
|
|
|
**Known Issues Fixed**:
|
|
1. MTGJSON URL scheme changed from `.json` to `.json.gz`
|
|
2. Some files are pre-uncompressed (not actually gzipped)
|
|
3. Large files need 60-minute download timeout
|
|
|
|
## What to Do Next
|
|
|
|
1. **Rebuild and test** the deployment
|
|
2. **Verify MTGJSON data loads** correctly
|
|
3. **Review the codebase** and make any needed improvements
|
|
4. **Consider**:
|
|
- Incremental updates (vs full refresh)
|
|
- Better error handling
|
|
- Database optimization
|
|
- Monitoring and alerting
|
|
|
|
## Important Files
|
|
- `HANOFOFF.md` - Complete documentation
|
|
- `state.json` - Project state
|
|
- `backend/app/services/mtgjson_manager.py` - Core MTGJSON integration
|
|
- `docker-compose.yml` - Container orchestration
|
|
- `.env` - Configuration
|
|
|
|
## State Tracking
|
|
Update `state.json` after each significant change:
|
|
```json
|
|
{
|
|
"task_description": "...",
|
|
"current_step": "...",
|
|
"files_created": [...],
|
|
"files_modified": [...],
|
|
"decisions": [...],
|
|
"next_steps": [...],
|
|
"blockers": [...],
|
|
"commit_hash": "...",
|
|
"timestamp": ...
|
|
}
|
|
```
|
|
|
|
## Git
|
|
- Credentials: `/home/wall-o/projects/gitea_credentials.txt`
|
|
- Commit after each milestone
|
|
- Push changes regularly
|