A full-stack web application for uploading, analyzing, and managing data using Google Cloud Platform services. Built for scalability, security, and modern DevOps workflows.
π React + Vite Frontend
π Express + Node.js Backend
π Google Cloud Storage, BigQuery, Cloud SQL
π Cloud Run deployment with secure Cloud SQL Proxy
π Full API security protections (Rate Limiters, CORS, Helmet, IP Logging)
Welcome to the Cloud Playground β Upload Center!
Explore hands-on examples to see it in action, showcasing the power of modern backend development, scalable cloud infrastructure, and AI integrations β all built on Google Cloud Platform (GCP).
This project demonstrates a secure, production-grade full-stack architecture featuring:
- Cloud SQL (PostgreSQL): Structured data storage
- Cloud Run: Dockerized backend + full app delivery
- Cloud Storage: File uploads (text, images, JSON)
- BigQuery: Large-scale JSON analysis
- Vertex AI & Gemini Pro: Text and image understanding
Layer | Technologies Used |
---|---|
Frontend | Vite + React (TypeScript, SWC) |
Backend | Node.js, Express |
AI | Gemini 1.5 Pro (text + image), Vertex AI |
Big Data | BigQuery |
Database | Cloud SQL (PostgreSQL) |
Storage | Google Cloud Storage |
Security | IAM, Helmet, CORS, Rate Limiting, reCAPTCHA v3 |
Build | Docker |
CI/CD | GitHub Actions (Docker build & deploy) |
Hosting | Cloud Run, Artifact Registry |
Built with real-world production security in mind. Heavy focus on securing access and preventing abuse of cloud resources from users and bot traffic. Measures include:
- Global & route-based API rate limiting
- reCAPTCHA v3 integration
- IP logging & strict CORS rules
- Hardened HTTP headers with Helmet
- Role-based access controls via Google Cloud IAM
Upload Center is more than a learning sandbox β it's a blueprint for building secure, scalable, cloud-native web applications using today's most powerful tools from Google Cloud. Whether you're testing uploads, analyzing data, or integrating AI, this platform offers a real-world, extensible foundation for modern web development.
- β Secure PostgreSQL access with Cloud SQL Proxy
- β Text sentiment analysis with Gemini AI
- β Upload and analyze images with Gemini AI
- β Vertex AI text file sentiment analysis
- β Upload and validate JSON files to Cloud Storage
- β Load and analyze uploaded files with BigQuery
- β Rate limiting on all sensitive routes
- β GitHub Actions CI/CD for Dockerized Cloud Run deployment
- β Persistent Light/Dark Mode Theme
/frontend # Vite + React frontend
/backend # Express server + API routes
/backend/db.js # PostgreSQL connection (via Cloud SQL Proxy)
/backend/routes # Upload, BigQuery, Sentiment, Image Analysis
/.env # Environment variables (gitignored)
/.github/workflows/ # GitHub Actions CI/CD workflow files
git clone https://github.com/stefanbobrowski/upload-center.git
cd upload-center
Create backend/.env
:
DB_USER=your-db-user
DB_PASSWORD=your-db-password
DB_HOST=your-cloud-sql-ip (or socket path)
DB_NAME=your-db-name
DB_PORT=your-db-port
GOOGLE_APPLICATION_CREDENTIALS=path-to-your-service-account.json
RECAPTCHA_SECRET_KEY=your-recaptcha-key (optional for bot protection)
cd frontend
npm install
npm run dev
cd backend
npm install
node server.js
cd frontend
npm run build
docker build -t gcr.io/YOUR_PROJECT_ID/upload-center .
docker push gcr.io/YOUR_PROJECT_ID/upload-center
DB_USER=your-db-user
DB_PASSWORD=your-password
DB_NAME=your-db-name
DB_PORT=your-db-port
INSTANCE_CONNECTION_NAME=your-project:region:cloudsql-instance
GOOGLE_APPLICATION_CREDENTIALS=inline-json-or-mount-secret
RECAPTCHA_SECRET_KEY=your-recaptcha-key (optional)
- User login / authentication
Created by @stefanbobrowski Website: https://stefanbobrowski.com
Licensed under the Apache License 2.0.
See LICENSE for full details.
Feel free to view the code or contribute with a pull request. You can explore the full source code for Upload Center here: π GitHub β Upload Center