Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
node_modules
frontend/node_modules
backend/venv
frontend/dist
.env
.git
.gitignore
README.md
Dockerfile.*
.dockerignore
26 changes: 26 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Build stage
FROM node:20-alpine AS build
WORKDIR /app

# Install dependencies
COPY frontend/package*.json ./frontend/
WORKDIR /app/frontend
RUN npm install

# Copy source code and build
COPY frontend/ ./
RUN npm run build

# Production stage
FROM nginx:alpine

# Copy custom nginx config
COPY nginx.conf /etc/nginx/conf.d/default.conf

# Copy built assets from build stage
COPY --from=build /app/frontend/dist /usr/share/nginx/html

# Cloud Run expects the container to listen on port 8080 by default
EXPOSE 8080

CMD ["nginx", "-g", "daemon off;"]
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

> **QuackHacks 2026** — AI-powered precision agriculture platform built with real-world farm data.

Google Cloud Run Deployment: https://frontend-1001552662140.us-west2.run.app/

HarvestEye is an intelligent farm monitoring and analysis system that combines **3D Gaussian Splatting** visualization with a **dual-agent Gemini AI architecture** to give farmers actionable, real-time insights on crop health, weed threats, soil conditions, and environmental conditions — all rendered in an immersive 3D farm interface.

We went **in person to multiple farms** to collect real-world data to power the platform.
Expand Down Expand Up @@ -111,6 +113,14 @@ npm run dev

The app will be available at `http://localhost:5173`.

### 3. Deployment (Cloud Run)

To deploy updates to the frontend on Google Cloud Run, simply execute the deployment script from the root directory:

```bash
./deploy-frontend.sh
```

---

## 🤖 API Usage
Expand Down
7 changes: 7 additions & 0 deletions deploy-frontend.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/bash

# Deploy from source
gcloud run deploy frontend --source . --port 8080 --allow-unauthenticated --project uoo-quackathon26eug-8256

# Rename it back
mv Dockerfile Dockerfile.frontend
17 changes: 17 additions & 0 deletions nginx.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
server {
listen 8080;

# Handle routing for single page application
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}

# Optional: Cache static assets
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
root /usr/share/nginx/html;
expires 30d;
add_header Cache-Control "public, no-transform";
}
}