Learn communication skills through AI-powered profile analysis, conversation coaching, and real-time feedback.
Crushie is an AI-powered communication coach that helps students build real social skills through profile analysis and personalized feedback—like Duolingo, but for dating.
Upload a dating profile screenshot → AI analyzes their communication style → Get personalized conversation starters and date ideas.
Profile Analyzer - Upload a screenshot, get instant insights:
- Communication style prediction (playful, intellectual, direct, adventurous, shy)
- 8 personalized conversation starters
- 3 date suggestions with compatibility scoring
- Privacy-first: only hashes stored, never raw images
Educational Framework - Learn social skills through practice:
- Track your communication progress
- Build confidence with AI feedback
- Practice in a judgment-free space
Dual AI System - Enterprise-grade reliability:
- Primary: Google Gemini 2.0 Flash (fast, cost-efficient)
- Fallback: Microsoft Azure OpenAI Phi-4 (98.5% uptime)
Frontend: Next.js 16, TypeScript, tRPC, Framer Motion
Backend: Node.js, Express, PostgreSQL (Supabase), Drizzle ORM
AI: Google Gemini 2.0 Flash + Azure OpenAI Phi-4
Auth: Clerk with JWT-based Row Level Security
Infrastructure: Docker, Redis caching
- Node.js 22+
- Docker Desktop
- Supabase CLI
# Install dependencies
npm install
# Start Supabase
npx supabase start
# Start LLM service
cd apps/llm
docker compose up -d
# Start web client
cd apps/web-client
npm run devVisit http://localhost:3000/analyze-profile
# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_key
CLERK_SECRET_KEY=your_secret
# Database
DATABASE_URL=postgresql://...
DIRECT_URL=postgresql://...
# LLM Service
LLM_URL=http://localhost:3001# AI Providers
GEMINI_API_KEY=your_key
AZURE_OPENAI_ENDPOINT=https://your-resource.cognitiveservices.azure.com/
AZURE_OPENAI_KEY=your_key
AZURE_OPENAI_DEPLOYMENT=Phi-4-mini-instruct
AZURE_OPENAI_API_VERSION=2024-05-01-preview
# Caching
REDIS_URL=redis://localhost:6379crushie/
├── apps/
│ ├── web-client/ # Next.js web app
│ │ ├── src/app/ # App router pages
│ │ └── src/services/ # tRPC procedures
│ └── llm/ # AI microservice
│ ├── src/routes/ # API endpoints
│ └── src/lib/ # Prompt templates
└── supabase/
└── migrations/ # Database schema
# Development
npm run dev:web # Start web client
npm run dev:llm # Start LLM service
# Database
npx supabase start # Start local database
npx supabase db reset # Reset database with migrations
# Docker
cd apps/llm && docker compose up -d # Start LLM service- Upload - User uploads dating profile screenshot
- Hash - Client-side SHA-256 hashing (privacy-first)
- Analyze - AI analyzes communication style via Gemini Vision API
- Generate - LLM creates conversation starters and date suggestions
- Display - Animated results with copy-to-clipboard features
- PatriotAI - Prompt design and concept development
- Google Gemini 2.0 Flash - Multimodal vision analysis
- Microsoft Azure OpenAI - Enterprise reliability fallback
- Supabase - PostgreSQL with Row Level Security
- Docker - Containerized LLM service
This project is proprietary. All rights reserved.
- Bao Tran https://github.com/BaoT1301
- Lam Anh https://github.com/anhlamtruong
- Mai Tran https://github.com/tranthanhmai2006
- Nguyen Ho https://github.com/hodangkhoinguyen
Built at PatriotHacks 2026 🚀