A stunning, modern web application that uses Google Cloud Vision API to analyze images and detect emotions, objects, and themes. Built with React, Three.js, and Framer Motion for a world-class 3D UI/UX experience.
- π― AI-Powered Analysis - Uses Google Cloud Vision API to detect labels, objects, and emotions
- π¨ Stunning 3D UI - Beautiful 3D particle background with smooth animations
- π± Fully Responsive - Works seamlessly on desktop, tablet, and mobile
- π Instant Deployment - Ready to deploy on AWS S3 or AWS Amplify
- π« Modern UX - Smooth animations and transitions with Framer Motion
- π Emotion Detection - Detects joy, sorrow, anger, and surprise in faces
- π·οΈ Smart Labeling - Automatically tags images with relevant labels
- π― Object Detection - Identifies objects within images
- Node.js 18+ and npm/yarn
- Google Cloud account with Vision API enabled
- Google Cloud Vision API key
-
Clone the repository
git clone <repository-url> cd MOODBOARD
-
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env
Then edit
.envand add your Google Cloud Vision API key:VITE_GOOGLE_CLOUD_VISION_API_KEY=your_actual_api_key_here -
Run the development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173
npm run buildThis creates an optimized production build in the dist folder, ready for deployment.
Quick Start: See AWS_S3_DEPLOYMENT_CHECKLIST.md for a step-by-step checklist.
-
Build the project
# Make sure .env has your Google Cloud Vision API key npm run build -
Create an S3 bucket
- Go to AWS S3 Console
- Create a new bucket with public read access
- Enable static website hosting
- Set index document:
index.html - Set error document:
index.html
-
Upload files
- Upload all files from
dist/folder to your S3 bucket - Or use AWS CLI:
aws s3 sync dist/ s3://your-bucket-name --delete
- Upload all files from
-
Get your website URL
- Check bucket Properties β Static website hosting
- Your site will be at:
http://your-bucket-name.s3-website-region.amazonaws.com
-
Add CloudFront for HTTPS (Optional)
- Create CloudFront distribution pointing to your S3 bucket
- Get HTTPS URL:
https://[id].cloudfront.net
π Detailed instructions: See DEPLOYMENT.md
-
Connect your repository
- Go to AWS Amplify Console
- Connect your Git repository
-
Configure build settings
version: 1 frontend: phases: preBuild: commands: - npm install build: commands: - npm run build artifacts: baseDirectory: dist files: - '**/*' cache: paths: - node_modules/**/* -
Add environment variables
- In Amplify Console, go to Environment variables
- Add
VITE_GOOGLE_CLOUD_VISION_API_KEYwith your API key
-
Deploy
- Save and deploy
-
Build the project
npm run build
-
Deploy
- Connect your repository to Vercel/Netlify
- Add environment variable:
VITE_GOOGLE_CLOUD_VISION_API_KEY - Deploy!
-
Go to Google Cloud Console
- Visit Google Cloud Console
-
Create a new project (or select existing)
-
Enable Vision API
- Go to APIs & Services > Library
- Search for "Cloud Vision API"
- Click Enable
-
Create credentials
- Go to APIs & Services > Credentials
- Click "Create Credentials" > "API Key"
- Copy your API key
-
Restrict API Key (Recommended)
- Click on your API key
- Under "API restrictions", select "Restrict key"
- Choose "Cloud Vision API"
- Save
-
Add to your project
- Add the key to your
.envfile
- Add the key to your
- React 18 - Modern React with hooks
- Vite - Fast build tool and dev server
- Three.js - 3D graphics library
- React Three Fiber - React renderer for Three.js
- Framer Motion - Animation library
- Lucide React - Beautiful icon library
- Google Cloud Vision API - AI image analysis
MOODBOARD/
βββ src/
β βββ components/
β β βββ Header.jsx # Top navigation
β β βββ Hero.jsx # Landing page
β β βββ ImageUploader.jsx # Image upload component
β β βββ ResultsDisplay.jsx # Results display
β β βββ Background3D.jsx # 3D particle background
β βββ App.jsx # Main app component
β βββ App.css # App styles
β βββ main.jsx # Entry point
β βββ index.css # Global styles
βββ public/ # Static assets
βββ dist/ # Production build
βββ .env.example # Environment variables template
βββ package.json # Dependencies
βββ vite.config.js # Vite configuration
βββ README.md # This file
Edit CSS variables in src/index.css:
:root {
--primary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
--secondary-gradient: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
/* ... */
}Edit src/components/Background3D.jsx:
<FloatingParticles count={1000} /> // Change count- Make sure your API key is correctly set in
.env - Ensure the Vision API is enabled in Google Cloud Console
- Check API key restrictions
- Clear node_modules and reinstall:
rm -rf node_modules && npm install - Check Node.js version:
node --version(should be 18+)
- Ensure environment variables are set in your hosting platform
- Check build output directory is correct
- Verify API key is accessible from deployed URL
This project is created for the Google Developer Group (Campus Chapter) workshop.
This is a workshop project. Feel free to fork and customize for your needs!
For workshop-related questions, contact your GDG Campus Chapter organizers.
Built with β€οΈ for GDG Campus Chapter Workshop