0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

How I Used React + Firebase to Build a Theme Park Finder App for Idaho Families

Posted at

How I Used React + Firebase to Build a Theme Park Finder App for Idaho Families

Building joyful experiences doesn’t stop at the rides — it can start with the code behind the scenes.

🎢 The Idea Behind the App

My inspiration came from a family trip to a theme park in Idaho. The joy, the chaos, the bonding — it all felt magical. But planning the trip? Not so much.

That’s when I thought: why not build a tool that helps families discover the best amusement parks with minimal friction?

🔧 Tech Stack

I decided to go with:

  • Frontend: React + TailwindCSS
  • Backend/Database: Firebase Firestore
  • Auth: Firebase Authentication (Google Sign-In)
  • API Integration: Google Places API for park data
  • Deployment: Vercel

📱 Features

Here are the core features I implemented:

  • 🔍 Park search by location, mood (relaxing vs thrilling), and kid-friendliness
  • 🧾 User reviews & ratings (stored in Firestore)
  • 🌐 Google Maps integration to view park routes
  • 📅 Plan your day tool that lets users create ride/snack schedules
  • 🖼️ Photo gallery with image uploads via Firebase Storage

🧠 Lessons Learned

  1. Handling real-time updates in Firestore was easier than expected — perfect for live wait times or ride closures.
  2. Geoqueries were tricky. I used geofirestore to simplify location-based searches.
  3. Caching with SWR helped optimize the map and listing load times.

🧩 Challenges

  • Getting clean data from Google Places API (some entries were incomplete).
  • Managing image size and upload limits in Firebase.
  • Balancing fun UI with accessibility best practices.

🎉 Why This Project Matters

Theme parks aren't just about rides. They're about moments: laughter in line for churros, unexpected joy on a kiddie coaster, or grandma trying the log flume.

Building a digital gateway to those moments felt like the right way to combine joy and code.


🛠️ Code Snippet: Firebase Query Example

import { getDocs, query, where } from "firebase/firestore";

const parksRef = collection(db, "parks");
const q = query(parksRef, where("state", "==", "Idaho"));

const querySnapshot = await getDocs(q);
querySnapshot.forEach((doc) => {
  console.log(doc.id, " => ", doc.data());
});
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?