All projects
Client project

Prode Mundial 2026

🏆 Hackathon winner

FIFA World Cup 2026 prediction app with a real-time leaderboard, automatic scoring and an AI assistant.

Role
End-to-end development
Year
2026
Status
Winning project
Client
Taligent · internal hackathon
🏆
winning project
104
matches
2 min
sync cycle
Realtime
live leaderboard

Overview

Winner of Taligent's internal hackathon. A full-stack web application where users predict the results of all 104 FIFA World Cup 2026 matches, earn points based on how accurate their predictions are and compete on a leaderboard that updates in real time. The challenge was to build a functional product deployed to production, consuming a match API provided by the organisers.

Context

The problem

A World Cup prediction game has four concrete technical problems: official results change during the tournament, scores must be recalculated only when a match ends, nobody should see other people's predictions before kick-off, and entering 104 predictions by hand is tedious.

The solution

Each problem solved by a specific piece: a scheduled job syncing matches every 2 minutes, an idempotent scoring pipeline triggered by that sync, Row Level Security in Postgres making predictions public only once the match is over, and an AI assistant that suggests a result and pre-fills the form in one click.

What it does

Automatic result syncing

A scheduled job queries the official API every 2 minutes and updates matches and results with no intervention.

Idempotent scoring engine

Scoring is triggered by the sync and can run multiple times over the same match without duplicating points.

Privacy through Row Level Security

Predictions are invisible to everyone else until the match ends. The rule lives in the database, not in the application.

AI prediction assistant

It suggests a likely result and pre-fills the form, cutting 104 predictions down to a handful of clicks.

Live leaderboard

A Realtime subscription to Postgres: the standings reorder themselves without refreshing the page.

Technical decisions

  1. 01

    RLS instead of application-level filtering

    The rule “nobody sees other people's predictions before the match” is both a business and a security rule. Putting it in the database guarantees no badly written endpoint can bypass it.

  2. 02

    Idempotency as a requirement, not an optimisation

    With a sync every 2 minutes and results that can be corrected, the scoring pipeline had to be re-runnable without cumulative effects.

Stack

Frontend

  • React
  • TypeScript
  • Realtime subscriptions

Backend / Data

  • PostgreSQL
  • Row Level Security
  • Jobs programados
  • Pipeline de scoring

Auth

  • Google Sign-In

AI

  • Asistente de sugerencia de resultados

Next project

FNC Inmobiliaria