An end-to-end full-stack AI application that generates creative travel captions from images — including short, funny, poetic captions and travel tips — using modern backend and frontend technologies.
🚀 Live Demo
- Frontend: https://cappa-nu.vercel.app
- Backend API: https://cappa-backend-sfy0.onrender.com
-
📸 Upload any travel image
-
🧠 AI-generated captions:
- Short caption
- Funny caption
- Poetic caption
- Travel tip
-
⚡ Fast, responsive UI
-
☁️ Fully deployed (Frontend + Backend)
-
🔐 Secure API key handling via environment variables
CAPPA/
│
├── frontend/ # React + Vite frontend (Vercel)
│
└── cappy/ # Spring Boot backend (Render)
- User uploads image (Frontend)
- Image sent as multipart request to backend
- Backend calls AI API
- Captions returned as JSON
- Frontend renders results
- React (TypeScript)
- Vite
- Tailwind CSS
- Deployed on Vercel
- Java 17
- Spring Boot
- REST API
- Docker
- Deployed on Render
- OpenAI / Gemini / Groq (pluggable)
- Secure API key via environment variables
AI_API_KEY=your_api_key_here
PORT=10000VITE_BACKEND_URL=https://cappa-backend-sfy0.onrender.comcd cappy
mvn spring-boot:runBackend runs at:
http://localhost:4000
cd frontend
npm install
npm run devFrontend runs at:
http://localhost:5173
Request
multipart/form-data- Field:
image(file)
Response
{
"captions": {
"short": "...",
"funny": "...",
"poetic": "...",
"travel_tip": "..."
}
}- ❌ No API keys committed to GitHub
- ✅ Secrets managed via Render & Vercel
- ❌
node_modulesexcluded from repo - ✅ Dockerized backend for portability
- Drag & drop image upload
- Caption download/share buttons
- User accounts
- Rate limiting
- Dark mode
- Custom domain
Soumyajeet Satapathy
- GitHub: https://github.com/metadroix35
- Full-stack | AI | Cloud | Backend-focused
Give it a ⭐ on GitHub — it helps a lot!