Clash Cache is a React + Vite web app for exploring Clash Royale deck and leaderboard data, backed by Firebase Cloud Functions and Firestore.
I created this project to learn and practice React and modern web development in a hands-on, practical way. I wanted to build a fully functional application that required me to think through component design, state management, user interaction, and overall application architecture. This project gave me experience working with reusable components, managing props and state effectively, and structuring a front-end codebase in a clean and scalable way.
This application was developed as my final project for CS 571 at the University of Wisconsin–Madison (Fall semester). The course focuses on modern web and mobile application development, and this project served as a capstone opportunity to apply the concepts we covered throughout the semester. It required integrating core React principles with thoughtful UI design, problem solving, and real-world development practices.
- Browse deck-related pages (
Explore,Build, andCache). - View leaderboard experiences (
GlobalandFriends). - Serve data through Firebase HTTP endpoints.
- Keep top-player leaderboard and deck data refreshed with scheduled Cloud Functions.
- Frontend: React, Vite, React Router, React Bootstrap
- Backend: Firebase Cloud Functions (Node.js)
- Database: Firestore
src/– React app source codefunctions/– Firebase Cloud Functions for data ingestion and APIspublic/– Static assetsdocs/– Generated/static deployment assets
- Node.js (LTS recommended)
- npm
- Firebase CLI (for backend deployment)
npm install
cd functions && npm installnpm run devnpm run buildThe backend uses a secret API key for Clash Royale API access:
CLASH_API_KEY
Set it with Firebase CLI before deploying functions:
firebase functions:secrets:set CLASH_API_KEYnpm run dev– Start Vite dev servernpm run build– Build production frontendnpm run preview– Preview production build locally
Add your preferred license details here.