Optara uses three layers:
- Backend (Django API only)
- Stores users, encrypted embeddings, recognition logs
- Runs at
http://127.0.0.1:8000/api/
- Desktop App (CustomTkinter)
- Live camera feed
- Face mapping workflow (capture -> prompt for name -> register)
- AI Engine (service layer)
- Face detection + embedding extraction + FAISS search
- Start camera in desktop app.
- Click Map Face.
- App captures multiple face crops (12 samples by default).
- After capture completes, app prompts for a name.
- Name + face images are sent to
POST /api/register/and saved.
Embeddings are encrypted at rest in the database using Fernet (from cryptography).
- Set a strong key in your environment:
export OPTARA_ENCRYPTION_KEY="replace-with-a-long-random-secret"If not set, a development default is used (not safe for production).
Connection refused usually means backend is not running.
Start backend first:
cd backend
python manage.py runserverThen run desktop app:
python desktop_app/main.pyPOST /api/register/POST /api/recognize/GET /api/logs/
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt