Back to Projects

PraiaFinder

Next.js
FastAPI
Python
Tailwind CSS
Data Science

Real-time beach recommendation engine simplifying weather data into a 0-10 score.

Screenshot of PraiaFinder

PraiaFinder Demo

Find the perfect beach in Portugal, every time.

📌 Project Overview

PraiaFinder is a real-time beach recommendation engine that solves the "where should we go?" problem. Instead of drowning users in raw meteorological data (knots, swell period, etc.), it aggregates complex forecasts into a simple 0-10 score based on your intent.

Context-Aware Scoring

The core innovation is an algorithm that changes based on what you want to do:

  • 🏄 for Surfers: High waves and strong offshore winds = High Score.
  • 🏖️ for Families: Calm waters, low wind, and warm temps = High Score.

🛠️ Tech Stack & Architecture

Frontend (User Experience)

  • Next.js 14 (App Router): Server-side rendering for instant loads.
  • Tailwind CSS: Fully responsive, mobile-first design.
  • Framer Motion: Fluid animations for a premium feel.

Dashboard Interaction

Backend (Logic & Data)

  • FastAPI (Python): High-performance async API.
  • Custom ETL Pipeline:
    • Concurrent Fetching: Uses asyncio to query hundreds of beaches simultaneously without rate limits.
    • Smart Classification: Automatically detects if a beach is "Ocean" or "River" to apply the correct weather model.
    • Caching: Minimizes external API calls for speed and cost efficiency.

✨ Key Features

  1. Interactive Coast Map: Visualizes conditions across the entire Portuguese coastline.
  2. Smart Search: Filter by region, score, or specific beach features.
  3. Resilient System: Handles external API failures gracefully with retries and fallbacks.

🚀 Why I Built This

Living in Portugal, the weather varies drastically just a few kilometers apart. This project allowed me to solve a real-world problem while exploring advanced Python concurrency and building a polished React application.

Project Links