Initial commit: OpenFUT Core + Bridge scaffold
Two-repo monorepo for an offline FUT backend inspired by SPT. openfut-core: game-independent REST API backend (Axum, SQLite, SQLx) - 19 API endpoints: auth, profiles, clubs, cards, packs, squads, objectives, SBCs, match rewards, NPC market, statistics - JSON-driven card/pack/objective/SBC data (fully moddable) - SQLx migrations, weighted pack generator, SBC validation engine - 5 integration tests passing openfut-bridge: FIFA 23 traffic proxy + reverse-engineering scaffold - Catch-all HTTP proxy with request capture to captures/ - Known-route mapper (FUT paths → Core API calls) - Placeholder responses for unknown endpoints - Admin endpoints: captures, unknown endpoint list - 4 unit tests passing cargo fmt ✓ cargo clippy -D warnings ✓ cargo test ✓ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
# OpenFUT Core — TODO
|
||||
|
||||
Small, independently completable tasks.
|
||||
|
||||
## Foundation
|
||||
- [ ] #1 Add `.env.example` with all supported env vars documented
|
||||
- [ ] #2 Add `CONTRIBUTING.md` with dev setup instructions
|
||||
- [ ] #3 Write modding guide (`docs/modding.md`) with full JSON schemas
|
||||
- [ ] #4 Add database schema diagram to `docs/`
|
||||
- [ ] #5 Add GitHub Actions CI workflow (fmt + clippy + test)
|
||||
|
||||
## Cards
|
||||
- [ ] #6 Add more bronze card JSON entries (target: 30+ cards)
|
||||
- [ ] #7 Add silver card JSON entries (target: 20+ cards)
|
||||
- [ ] #8 Add rare gold card JSON entries (target: 10+ cards)
|
||||
- [ ] #9 Add TOTW placeholder cards
|
||||
- [ ] #10 Add Hero placeholder cards
|
||||
- [ ] #11 Implement card image_path support (placeholder PNG serving)
|
||||
- [ ] #12 Add `GET /cards/:card_id` endpoint for single card lookup
|
||||
|
||||
## Packs
|
||||
- [ ] #13 Add TOTW pack definition
|
||||
- [ ] #14 Add Icon pack definition
|
||||
- [ ] #15 Implement `POST /packs/buy` (purchase a pack with coins)
|
||||
- [ ] #16 Add pack opening animation hints to the response
|
||||
|
||||
## Squad Builder
|
||||
- [ ] #17 Implement chemistry calculation (same club/league/nation bonuses)
|
||||
- [ ] #18 Add formation validation (11 players, 1 GK, etc.)
|
||||
- [ ] #19 Add `GET /formations` endpoint listing available formations
|
||||
- [ ] #20 Add multiple squad support (save/load named squads)
|
||||
|
||||
## Objectives
|
||||
- [ ] #21 Add weekly objective JSON data
|
||||
- [ ] #22 Add milestone objective JSON data
|
||||
- [ ] #23 Implement `POST /objectives/claim` to claim completed reward
|
||||
- [ ] #24 Add season-level objective tracking
|
||||
- [ ] #25 Reset daily objectives at midnight
|
||||
|
||||
## SBCs
|
||||
- [ ] #26 Add 5 more SBC definitions in JSON
|
||||
- [ ] #27 Add club requirement validation to SBC engine
|
||||
- [ ] #28 Add max_overall requirement validation
|
||||
- [ ] #29 Add chemistry requirement validation
|
||||
- [ ] #30 Add `GET /sbc/:id` endpoint for single SBC
|
||||
|
||||
## Market
|
||||
- [ ] #31 Schedule automatic daily NPC market refresh (via tokio background task)
|
||||
- [ ] #32 Add market listing expiry cleanup job
|
||||
- [ ] #33 Add `GET /market?min_overall=X&position=Y` filtering
|
||||
- [ ] #34 Add sell price floor/ceiling validation
|
||||
- [ ] #35 Add market transaction history endpoint
|
||||
|
||||
## Matches
|
||||
- [ ] #36 Add `GET /matches` history endpoint
|
||||
- [ ] #37 Implement Squad Battles opponent generator (random AI clubs)
|
||||
- [ ] #38 Add Draft mode: generate random squad + play matches
|
||||
- [ ] #39 Add seasonal rank tracking for Squad Battles
|
||||
- [ ] #40 Add `mode` enum: squad_battles, seasons, draft, friendly
|
||||
|
||||
## Statistics
|
||||
- [ ] #41 Add per-position goal stats
|
||||
- [ ] #42 Add win streak tracking
|
||||
- [ ] #43 Add `GET /statistics/history` (last N matches)
|
||||
|
||||
## Settings
|
||||
- [ ] #44 Add `GET /settings` and `PUT /settings` endpoints
|
||||
- [ ] #45 Store difficulty preference in settings
|
||||
- [ ] #46 Store preferred formation in settings
|
||||
|
||||
## Events
|
||||
- [ ] #47 Design JSON schema for limited-time events
|
||||
- [ ] #48 Implement event activation/deactivation
|
||||
- [ ] #49 Add TOTW event that enables special pack
|
||||
|
||||
## Hardening
|
||||
- [ ] #50 Add request body size limits
|
||||
- [ ] #51 Add rate limiting middleware (prevent accidental loops)
|
||||
- [ ] #52 Add proper logging correlation IDs
|
||||
- [ ] #53 Write additional integration tests for SBC engine
|
||||
- [ ] #54 Write integration test for full pack open flow
|
||||
- [ ] #55 Add SQLite WAL mode for better concurrency
|
||||
Reference in New Issue
Block a user