<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Meghana Anupoju</title>
    <description>The latest articles on DEV Community by Meghana Anupoju (@anupoju_meghana_283ba8a71).</description>
    <link>https://dev.to/anupoju_meghana_283ba8a71</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3868077%2Fa7f70905-ed87-45aa-bc68-17f19ab913ab.jpg</url>
      <title>DEV Community: Meghana Anupoju</title>
      <link>https://dev.to/anupoju_meghana_283ba8a71</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/anupoju_meghana_283ba8a71"/>
    <language>en</language>
    <item>
      <title>"Building &amp; Deploying a Smart Stadium Assistant with React, Docker, and Google Cloud Run"</title>
      <dc:creator>Meghana Anupoju</dc:creator>
      <pubDate>Tue, 14 Apr 2026 09:45:21 +0000</pubDate>
      <link>https://dev.to/anupoju_meghana_283ba8a71/building-deploying-a-smart-stadium-assistant-with-react-docker-and-google-cloud-run-2ich</link>
      <guid>https://dev.to/anupoju_meghana_283ba8a71/building-deploying-a-smart-stadium-assistant-with-react-docker-and-google-cloud-run-2ich</guid>
      <description>&lt;p&gt;Have you ever been completely lost trying to find your seat in a massive 80,000-seat stadium? Or missed a crucial moment because you were stuck in a long food queue?&lt;/p&gt;

&lt;p&gt;I set out to solve this problem by designing and prototyping a &lt;strong&gt;Smart Stadium Experience System&lt;/strong&gt; — an intelligent digital assistant that improves navigation, reduces waiting times, and enhances overall event experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Problem Statement
&lt;/h2&gt;

&lt;p&gt;Large-scale venues often face challenges such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Crowd congestion
&lt;/li&gt;
&lt;li&gt;Long queues at food stalls and entry gates &lt;/li&gt;
&lt;li&gt;Difficulty in navigation
&lt;/li&gt;
&lt;li&gt;Lack of real-time updates
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These issues negatively impact user experience and safety.&lt;/p&gt;

&lt;h2&gt;
  
  
  Solution Overview
&lt;/h2&gt;

&lt;p&gt;The solution is a &lt;strong&gt;smart, real-time assistant system&lt;/strong&gt; that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Monitors crowd density
&lt;/li&gt;
&lt;li&gt;Predicts waiting times
&lt;/li&gt;
&lt;li&gt;Suggests optimized routes
&lt;/li&gt;
&lt;li&gt;Sends real-time alerts
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It acts as a &lt;strong&gt;personal guide inside the stadium&lt;/strong&gt;, helping users make smarter decisions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture: React + Vite
&lt;/h2&gt;

&lt;p&gt;The frontend is built using &lt;strong&gt;React&lt;/strong&gt; with &lt;strong&gt;Vite&lt;/strong&gt; for fast performance and smooth development.&lt;/p&gt;

&lt;h3&gt;
  
  
  Core Interfaces:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Attendee Navigation App&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Find seats and facilities
&lt;/li&gt;
&lt;li&gt;View crowd density
&lt;/li&gt;
&lt;li&gt;Get optimized routes
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Admin Dashboard&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Monitor crowd activity
&lt;/li&gt;
&lt;li&gt;Trigger emergency alerts
&lt;/li&gt;
&lt;li&gt;Broadcast announcements &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To simulate real-time behavior, I created a &lt;code&gt;SimulatorContext&lt;/code&gt; using React Context API, which updates crowd density and queue times every few seconds.&lt;/p&gt;

&lt;h2&gt;
  
  
  Decision-Making Logic
&lt;/h2&gt;

&lt;p&gt;The system uses rule-based intelligent logic:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If crowd density exceeds a threshold → suggest alternate routes
&lt;/li&gt;
&lt;li&gt;If waiting time is high → recommend nearby stalls &lt;/li&gt;
&lt;li&gt;If emergency occurs → guide users to safest exits  This ensures dynamic and context-aware assistance.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;AI-based crowd monitoring (simulated data) &lt;/li&gt;
&lt;li&gt;Smart navigation with less crowded routes
&lt;/li&gt;
&lt;li&gt;Real-time queue management
&lt;/li&gt;
&lt;li&gt;Emergency guidance system
&lt;/li&gt;
&lt;li&gt;Admin dashboard for control and monitoring
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Dockerizing the Application
&lt;/h2&gt;

&lt;p&gt;To deploy the application, I containerized it using Docker.&lt;br&gt;
Since React apps are static after build, I used &lt;strong&gt;Nginx&lt;/strong&gt; to serve the files efficiently.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dockerfile
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
dockerfile
FROM node:22-alpine as builder
WORKDIR /app
COPY package.json package-lock.json* ./
RUN npm install
COPY . .
RUN npm run build

FROM nginx:alpine
COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=builder /app/dist /usr/share/nginx/html

EXPOSE 8080
CMD ["nginx", "-g", "daemon off;"]

⚠️ Fixing React Routing with Nginx
React Router requires all routes to redirect to index.html. Without this, direct navigation causes 404 errors.

nginx.conf
server {    
     listen 8080;    
     server_name _;    
     root /usr/share/nginx/html;    
     index index.html;    

     location / {        
         try_files $uri $uri/ /index.html;    
   }
 }

☁️ Deployment Challenge: Node Version Issue

During deployment on Google Cloud Run, I encountered a build error:
npm WARN EBADENGINE Unsupported engine
The issue was that Vite requires Node 20+, but my Docker image used Node 18.

Solution:
-Updated base image to node:22-alpine
-Rebuilt and redeployed successfully


## Google Services Used
This project integrates key Google services:

-Firebase (planned integration) for real-time data handling

-Google Maps API for navigation and route visualization

-Google Cloud Run for scalable container deployment

-Google Cloud Build for automated builds



🌐 Live Demo
👉 https://stadium-ai-assistant-455356131916.us-central1.run.app/

## How It Works

-User opens the app inside the stadium

-System fetches simulated real-time data

-Analyzes crowd and queue conditions

-Suggests optimal routes and actions

-Sends alerts and updates


## Challenges Faced

-Handling client-side routing with Nginx

-Docker configuration for React apps

-Node version compatibility issues

-Keeping the project lightweight


## Assumptions

-Data is simulated (no real sensors used)

-Users have internet access

-Google Maps approximates indoor navigation

-Prototype built for demonstration purposes


## Future Improvements

-Integration with Firebase Firestore

-Real IoT sensor data

-Advanced AI/ML prediction models

-Indoor positioning systems


## Conclusion

This project demonstrates how modern web technologies and cloud platforms can solve real-world problems in large-scale environments. By combining intelligent decision-making, real-time simulation, and cloud deployment, the Smart Stadium Assistant provides a scalable and practical solution for improving stadium experiences.


## Final Thoughts

-Building this project helped me understand:

-Real-time system design

-Cloud deployment using Google Cloud Run

-Practical use of AI logic in real-world applications



## Author
Meghana Anupoju
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>react</category>
      <category>webdev</category>
      <category>googlecloud</category>
      <category>buildinpublic</category>
    </item>
  </channel>
</rss>
