Skinalyze - Most Popular Vote Track HackKnight Fall '25 Privacy-first skin analysis application powered by AI and Python OpenCV image processing.
┌─────────────────────┐
│ React Frontend │ Port 5173/5174
│ (Vite + TypeScript)│ Camera capture, UI
└──────────┬──────────┘
│ HTTP/REST
↓
┌─────────────────────┐
│ Node.js Backend │ Port 8787
│ (Express + TS) │ API routing, Gemini AI
└──────────┬──────────┘
│ HTTP/REST
↓
┌─────────────────────┐
│ Python Service │ Port 8788
│ (FastAPI + OpenCV) │ Image processing
└─────────────────────┘
- 🎥 Real-time Camera Feed - Live video capture
- 🔬 AI-Powered Analysis - Gemini Vision API for skin analysis
- 🐍 Python OpenCV Processing - Professional image enhancement
- CLAHE (Contrast Limited Adaptive Histogram Equalization)
- Image quality detection (brightness, contrast, sharpness)
- Gaussian denoising
- Edge detection for texture analysis
- 💬 Interactive Chat - Ask questions about your analysis
- 🔒 Privacy First - No data storage, text-only results
The Python microservice provides:
- Quality Analysis - Brightness, contrast, sharpness metrics
- Preprocessing - CLAHE enhancement + denoising before AI analysis
- Edge Detection - Canny algorithm
- ROI Extraction - Region of interest cropping
- Contrast Enhancement - Adaptive histogram equalization
- Skin Tone Detection - HSV-based skin detection
For detailed Python service docs, see backend/python_service/README.md
- Go to https://makersuite.google.com/app/apikey
- Create API key
- Copy it
cd backend
copy .env.example .env
notepad .envAdd your key:
GEMINI_API_KEY=your_key_here
PORT=8787
# Backend (Node.js)
cd backend
npm install
# Frontend (React)
cd ../frontend
npm install
# Python OpenCV Service
cd ../backend/python_service
pip install -r requirements.txtTerminal 1 - Python OpenCV Service:
cd backend/python_service
python app.py→ Runs on http://localhost:8788
Terminal 2 - Node.js Backend:
cd backend
npm run dev→ Runs on http://localhost:8787
Terminal 3 - React Frontend:
cd frontend
npm run dev→ Runs on http://localhost:5173 or 5174
Go to http://localhost:5173 (or 5174)
- Click Start → camera opens
- Click Analyze → image is captured
- Backend: Calls Python service for OpenCV preprocessing
- Quality check (brightness, contrast, sharpness)
- CLAHE enhancement + denoising
- Backend: Sends enhanced image to Gemini AI
- View results: summary, categories, risk level, next steps
- Click End → camera stops
- Frontend: Vite + React + TypeScript
- Backend: Express + TypeScript + Gemini Vision API
- Python Service: FastAPI + opencv-python + NumPy
hack/
├── frontend/ # React app
└── backend/ # API server
Privacy First: No data is stored serverside. Everything is processed in the backend.
todo:
- Chatbot ✅
- File Upload ✅
- Landing page ✅
- OpenCV ✅
- prompt tune ✅
- deploy (optional)
- Probability ✅
- Hospital ✅