Inspiration

Football fans on Discord suffer from fragmented information. Admins struggle to keep match updates live, while members are lost in chaotic chat logs. I wanted to build a centralized, reliable, and intelligent hub that serves both the community and the admin.

What it does

  • Admin Dashboard: A custom React-based control panel to manage matches and scores in real-time.
  • Discord Integration: A bot that pushes live match updates to specific channels chosen (defined via webhook) by the admin.
  • AI-Powered Assistant: Users can query the bot using /ai_ask. The AI acts as a sports analyst, summarizing match states based on live data, and can be configured with custom "personalities" via the dashboard.
  • Reliability First: Includes a /scores command for an instant, clear view of match results, ensuring the community stays informed even if the AI is not needed.

How I built it

  • Frontend: NextJS, TanStack Query + TypeScript (for the Admin Panel).
  • Backend & DB: Supabase (for persistent match data and server settings).
  • Bot: Discord.js for real-time interactions and message handling.
  • AI: Gemini API with a RAG-inspired approach, feeding live match context into the model based on the chosen personality.
  • Deployment: Vercel (for the web panel) and Railway (for the bot logic).

Challenges I ran into

The biggest challenge was ensuring data consistency between the admin dashboard and Discord. Solving this required a robust synchronization layer in the database. Another hurdle was creating a seamless "personality-switching" mechanism for the AI without causing latency in responses.

Accomplishments I am proud of

  • Built a fully functional MVP with an end-to-end data flow in under 48 hours.
  • Implemented a flexible architecture where the core features (scores/updates) remain operational regardless of external AI service availability.
  • Created a truly intuitive admin-to-bot workflow that removes manual channel configuration overhead.

What I learned

I learned the importance of prioritizing core features over "hero" design during time-constrained events. Keeping the stack focused on reliable technologies (NextJS + Supabase) allowed me to deliver a robust tool rather than a flashy but empty prototype.

What's next for FootMatches

  • Multi-sport support: Expanding the database schema to handle basketball, tennis, and more.
  • Advanced AI analytics: Training or fine-tuning the model for deeper game predictions.
  • Community Widgets: Browser-based widgets that display live match scores outside of Discord.

Built With

Share this project:

Updates

Submission history