← Back to portfolio

Selected work

TuxHuzz

A Clash Royale companion app that tracks player stats, analyzes decks, and roasts your gameplay with AI.

Summary

TuxHuzz is a full-stack Clash Royale stats tracker and deck analyzer built on top of the official Clash Royale API. Users can look up any player by tag to see live trophy counts, level, win/loss history, and battle stats, or pull up clan info and compare members. Beyond raw stats, the app runs an 8-card deck through a rule-based analysis engine that scores elixir curve, win conditions, and air/splash coverage, then surfaces strengths, weaknesses, and concrete suggestions. A lighter, more playful feature — AI 'roasts' — uses Groq to generate personalized (and increasingly savage) commentary on a player's performance based on their real stats.

Problem

A Flask/Python backend that talks directly to the official Clash Royale API for players, clans, and card data.A rule-based DeckAnalyzer service that scores an 8-card deck against configurable thresholds (elixir cost, air defense, splash damage, win-condition count) and generates human-readable suggestions.A Groq-powered 'roast' endpoint with selectable intensity (fun / savage / nuclear) that turns a player's win rate, trophy history, and three-crown rate into personalized AI commentary.JWT-based authentication (Flask-JWT-Extended) plus a SQL database (via SQLAlchemy, supporting MySQL/Postgres) to persist users and card data.

Solution

In-game Clash Royale stats screens are limited — players can't easily see deep trends in their own stats, get objective feedback on their deck composition, or share a fun, personalized summary of their play. Serious players and casual clashers alike often bounce between third-party stat sites, spreadsheets, and Discord chats to figure out what's actually wrong with a deck, with no single tool tying stats, analysis, and personality together. TuxHuzz unifies player/clan lookup, rule-based deck analysis, and AI-generated commentary into one dashboard, so anyone can paste in a player tag and immediately get both hard numbers and an easy-to-digest verdict.

Features

Player & clan lookupSearch any player tag to view live trophies, level, win/loss record, and clan membership pulled straight from the Clash Royale API.
Rule-based deck analyzerScores an 8-card deck on elixir curve, win conditions, and air/splash coverage, returning strengths, weaknesses, and an overall rating.
AI-powered roastsGroq-generated, stat-driven roasts of a player's performance with selectable intensity: fun, savage, or nuclear.
Stats dashboard & chartsReact + Chart.js dashboard visualizing win rate, trophy trends, and deck metrics at a glance.

Architecture

Frontend

ReactReact
ViteVite
Chart.jsChart.js
React RouterReact Router

Backend

PythonPython
FlaskFlask
SQLAlchemySQLAlchemy

Database

MySQLMySQL

DevOps & Tooling

VercelVercel
RenderRender

TuxHuzz follows a decoupled architecture with a React (Vite) frontend calling a Flask REST API backend.

The frontend is built with React, React Router, and Chart.js/react-chartjs-2 for the stats dashboard and deck charts.

The Flask backend is organized around blueprints — auth, players, cards, and roast — each handling a distinct slice of functionality.

Flask-JWT-Extended handles authentication and protects routes, while SQLAlchemy (MySQL/Postgres-compatible) persists users and seeded card data.

A ClashRoyaleAPI service wraps calls to the official Clash Royale API for player, clan, and card data.

A DeckAnalyzer service applies configurable thresholds to score deck composition and generate suggestions.

A roast service calls the Groq API to turn a player's real stats into personalized AI commentary, with a graceful fallback message if Groq is unavailable.

This separation keeps game-data fetching, analysis logic, and AI generation independently testable while the frontend stays a thin presentation layer.

Results

29 git clones in the last 14 days

20 unique cloners

6 total repo page views in the last 14 days

1 unique visitor