Rizz.AI is a next-generation dating assistant powered by Google's Gemini AI. It helps you craft the perfect responses, generate pickup lines, and analyze conversation vibes with a premium, "Romantic Minimalist" aesthetic. by yash mahakal.
- 🤖 AI-Powered Rizz: Leverages Google's Gemini API to generate witty, charming, and context-aware responses.
- 🔒 Secure Architecture: Uses a Backend-for-Frontend (BFF) pattern to keep API keys safe and secure.
- 🎨 Modern UI: A stunning interface featuring glassmorphism, fluid animations, and a "Romantic Minimalist" color palette.
- ⚡ Interactive Elements: Experience a "living" UI with typewriter text effects, 3D card tilts, magnetic buttons, and confetti blasts.
- � Cloud Ready: Fully containerized with Docker and ready for Kubernetes deployment.
- Frontend: React 19, TypeScript, Tailwind CSS, Framer Motion
- Backend: Node.js, Express
- AI: Google Gemini API
- Infrastructure: Docker, Kubernetes, Nginx
- Docker
- Kubernetes Cluster (Minikube, Kind, or Cloud Provider)
- A Google Gemini API Key
-
Clone the repository
git clone https://github.com/YASHMAHAKAL/rizz.ai.git cd rizz.ai -
Create the Kubernetes Secret
You must create a secret to store your API key securely in the cluster.
kubectl create secret generic rizz-secret --from-literal=api-key=YOUR_ACTUAL_API_KEY_HERE
-
Build the Docker Images
If you are using Minikube, point your shell to Minikube's Docker daemon first:
eval $(minikube docker-env)
Build the Backend:
cd backend docker build -t rizz-backend:latest . cd ..
Build the Frontend:
cd rizz-app docker build -t rizz-ai:latest . cd ..
-
Deploy to Kubernetes
# Deploy Backend kubectl apply -f backend-deployment.yaml # Deploy Frontend kubectl apply -f rizz-pod.yaml
-
Access the Application
If using Minikube:
minikube service rizz-service
rizz.ai/
├── backend/ # Node.js Backend (Handles API Key & Gemini Calls)
│ ├── server.js
│ └── Dockerfile
├── rizz-app/ # React Frontend
│ ├── src/
│ ├── public/
│ └── Dockerfile
├── rizz-pod.yaml # Frontend Kubernetes Manifest
├── backend-deployment.yaml # Backend Kubernetes Manifest
└── README.md
This project uses a secure Backend-for-Frontend architecture.
- The Frontend (React) never sees the API key. It sends requests to the Backend via an Nginx proxy (
/api/...). - The Backend (Node.js) holds the API key in a secure environment variable injected by Kubernetes Secrets.
- The API Key is stored in Kubernetes
etcd(encrypted) and is never committed to the repository.