backend/config.py - Added MIN_AUTO_MATCH_FACE_SIZE_RATIO = 0.005 backend/services/face_service.py - Multiple changes: Added load_face_encoding() function (supports float32 and float64) Added _calculate_face_size_ratio() function Updated find_similar_faces() to filter small faces Updated find_auto_match_matches() to exclude small reference faces Fixed reference face quality calculation (use actual quality, not hardcoded 0.5) Fixed duplicate detection (exclude faces from same photo) Updated confidence threshold from 40% to 50% Updated confidence calibration (moderate version) backend/api/faces.py - Updated default tolerance to 0.5 for auto-match endpoints backend/schemas/faces.py - Updated default tolerance to 0.5 admin-frontend/src/pages/AutoMatch.tsx - Updated default tolerance to 0.5 admin-frontend/src/api/faces.ts - Added tolerance parameter support
PunimTag Frontend
React + Vite + TypeScript frontend for PunimTag.
Setup
cd frontend
npm install
Development
Start the dev server:
npm run dev
The frontend will run on http://localhost:3000
Make sure the backend API is running on http://127.0.0.1:8000
Default Login
- Username:
admin - Password:
admin
Features (Phase 1)
- ✅ Login page with JWT authentication
- ✅ Protected routes with auth check
- ✅ Navigation layout (left sidebar + top bar)
- ✅ Dashboard page (placeholder)
- ✅ Search page (placeholder)
- ✅ Identify page (placeholder)
- ✅ Auto-Match page (placeholder)
- ✅ Tags page (placeholder)
- ✅ Settings page (placeholder)
Project Structure
frontend/
├── src/
│ ├── api/ # API client and endpoints
│ ├── components/ # React components
│ ├── hooks/ # Custom React hooks
│ ├── pages/ # Page components
│ ├── App.tsx # Main app component
│ ├── main.tsx # Entry point
│ └── index.css # Tailwind CSS
├── index.html
├── package.json
├── vite.config.ts
└── tailwind.config.js