Files
ClubLogos/vision.md
T
Tomáš Dvořák 0fc92f8464 first commit
2025-10-02 12:39:28 +02:00

2.9 KiB
Raw Blame History

🇨🇿 Czech Clubs Logos API

A fullstack project for serving high-quality, transparent background logos of Czech football & futsal clubs. Logos are mapped by FAČR UUIDs (from facr.tdvorak.dev ) to ensure consistency across projects.

Features

Fetch Czech clubs metadata from FAČR Scraper API.

🖼️ Upload & store full-quality transparent logos (SVG/PNG).

🔄 Reuse FAČR UUID as a unique identifier.

🌐 Serve logos through a simple CDN-style API.

📝 Optional metadata (club name, city, colors, competition).

📦 Self-hosted with Go backend + CDN storage.

🔧 Tech Stack

Backend: Golang (Gin or Fiber)

Storage:

Local /logos/{id}.svg

Or cloud (Supabase / Cloudflare R2 / S3)

Database: SQLite/Postgres (to link UUID ↔ metadata ↔ logo file)

External API: facr.tdvorak.dev

📂 Project Structure czech-clubs-logos-api/ │── backend/ │ ├── main.go # Go API entrypoint │ ├── routes.go # API routes │ ├── facr_client.go # Client for facr.tdvorak.dev │ ├── handlers/ │ │ ├── upload.go # Handle logo upload │ │ ├── logos.go # Serve logos │ │ └── clubs.go # Proxy FAČR API │ └── storage/ │ └── local.go # Logo saving/loading │── logos/ # Stored club logos (UUID.svg/png) │── frontend/ # (optional, for admin upload UI) │── db.sqlite # Database (UUID ↔ metadata) │── go.mod │── README.md

🚀 API Endpoints Search clubs

Proxy FAČR search to help find correct UUID:

GET /clubs/search?q=sparta → proxies facr.tdvorak.dev/club/search?q=sparta

Get club info GET /clubs/:id → proxies facr.tdvorak.dev/club/{id}

Upload logo

Upload a full-quality SVG/PNG logo mapped to a FAČR UUID:

POST /logos/:id FormData: file=@slavia.svg → Saves to ./logos/{id}.svg → Stores metadata in DB

Get logo

Serve logo by FAČR UUID:

GET /logos/:id → returns {id}.svg/png

Get logo with metadata GET /logos/:id/json { "id": "00000000-0000-0000-0000-000000000000", "club": "AC Sparta Praha", "type": "football", "logo_url": "https://cdn.example.com/logos/00000000-0000-0000-0000-000000000000.svg" }

📊 Example Workflow

Search for a club:

GET /clubs/search?q=Slavia → returns UUID: 11111111-2222-3333-4444-555555555555

Upload logo for club:

POST /logos/11111111-2222-3333-4444-555555555555 file=@slavia.svg

Get logo:

GET /logos/11111111-2222-3333-4444-555555555555 → returns full quality transparent SVG

🔮 Future Ideas

✍️ Web admin panel for uploading logos.

🎨 Auto background remover (e.g., remove.bg API).

🔎 Logo search by club name (maps internally to UUID).

📦 Publish as NPM package (@czech-football/logos) or Go module.

👉 This way, youll have a FAČR-aware logo CDN that anyone can integrate into websites, apps, or your SportCreative projects.