FanZone 2026 · FAQ

Frequently asked questions

Quick answers to the most-asked questions. For the engineering deep-dive see docs/STORY.md; for verifying every claim, see the judge checklist.

What is FanZone 2026?

A Gemini 3 agent (Google ADK) that helps fans plan their FIFA World Cup 2026 trip across the USA, Canada and Mexico. The data plane is MongoDB — the agent talks to it through the official mongodb-mcp-server over MCP, plus 10 custom FunctionTools.

Is this the real FIFA 2026 schedule?

The 16 host cities, 16 venues, opening match (Mexico City, June 11) and final (MetLife, July 19) are real and public. Group-stage match-to-city assignments are illustrative — for 100% authoritative info always check FIFA.com. The seed generator at data/_gen_matches.py is deterministic so the same dataset reproduces exactly.

Why seven MongoDB capabilities? Isn't one enough?

Most hackathon entries pick one MongoDB feature and stop. The brief asked for a meaningful partner integration — so the agent surfaces all the layers an agent actually benefits from: CRUD for tool execution, aggregations for analytics, vector search for semantic similarity, geospatial for "what's near me", full-text for free-text fan questions, time series for tool-call telemetry, and change streams for a live activity feed. Every capability is visible as a green/grey tool chip in the chat or as a real-time tile on /dashboard.

What happens when Gemini quota runs out?

Two-axis fallback: per turn, the agent cycles through 5 Gemini models (3-pro → 3.1-pro → 3.1-flash-lite → 2.5-pro → 2.5-flash). Within each model, it rotates across the keys in GEMINI_API_KEYS on 429. Yellow chips in the chat tell you when a fallback fired. When everything's exhausted you get a friendly message, not a crash — and the dashboard / MongoDB tools / Swagger UI keep working.

Can I run it without a Gemini key?

Yes — most of the app works. The chat needs a key, but the dashboard, every /api/* endpoint, /cities/*, /teams/*, /schedule, /docs and the Change Streams live feed all work without one. Get a free Gemini key at aistudio.google.com/apikey and paste it into .env to enable the chat.

How do I deploy it to Google Cloud?

One-shot Cloud Run + Atlas + AI Studio key script at deploy/deploy.sh. Vertex-AI-without-API-key path documented in deploy/README.md §2. CI on every push uses the cloudbuild.yaml.

How do I migrate to MongoDB Atlas?

Change one env var (MONGODB_URI). Vector Search auto-promotes from in-pipeline cosine to $vectorSearch when the URI contains mongodb+srv and the city_embedding_idx vector index exists — index def is committed at deploy/atlas-vector-index.json. Full step-by-step at docs/ATLAS.md.

What's the "AI poster" button?

When you save an itinerary, the green card has a 🎨 AI poster button that asks Gemini's image-generation models for a vintage-style travel poster of your trip. The PNG is cached as a document in MongoDB (itinerary_posters collection) so subsequent views are instant. Falls back gracefully when the image-gen daily quota is exhausted.

Is FanZone affiliated with FIFA?

No. It's an unofficial fan-planning tool. The repository carries the MIT license. No FIFA logos, trademarks or paid ticketing content is included or implied.

Can I contribute?

Yes — see CONTRIBUTING.md. The Codespaces config means a contributor can be up and editing in their browser in ~60 s.

Built for the Google Cloud Rapid Agent Hackathon — MongoDB track.