CookMind AI is a full-stack cooking assistant built with React, Vite, FastAPI, PostgreSQL, and Docker.
- Phase 1: project initialization completed
- Phase 2: database and models completed
- Phase 3: recipe dataset ingestion completed
- Phase 4: ingredient matching and recipe recommendation completed
- Phase 5: OpenAI chatbot integration completed
- Phase 6: frontend UI completed
- Phase 7: authentication completed
- Phase 8: memory and personalization completed
- Phase 9: image recognition completed
- Phase 10: deployment setup completed
- JWT signup, login, session persistence, and protected routes
- Pantry persistence per authenticated user
- Saved chat conversations with backend chat memory
- User cuisine preferences and dietary preferences
- Favorite recipe saving
- Recipe recommendations from ingredient lists
- Image upload to ingredient detection flow with Google Vision support and filename fallback
- Docker development and production setup
- CI workflow for backend tests and frontend builds
- Backend request logging
GET /GET /api/v1/health/POST /api/v1/auth/signupPOST /api/v1/auth/loginGET /api/v1/auth/meGET /api/v1/pantry/POST /api/v1/pantry/DELETE /api/v1/pantry/{item_id}POST /api/v1/recommendations/POST /api/v1/chat/GET /api/v1/chat/conversationsGET /api/v1/personalization/profilePUT /api/v1/personalization/preferencesPOST /api/v1/personalization/favoritesDELETE /api/v1/personalization/favorites/{recipe_id}POST /api/v1/image-recognition/
- Copy
.env.exampleto.env. - Set at least:
JWT_SECRET_KEYOPENAI_API_KEYfor chatGOOGLE_VISION_API_KEYif you want real image recognition labels
- Start the stack:
docker compose up --build- Open:
- frontend:
http://localhost:5173 - backend docs:
http://localhost:8000/docs
- frontend:
Use the production compose file:
docker compose -f docker-compose.prod.yml up --build -dNotes:
- Put TLS cert files in
infra/nginx/certs/fullchain.pemandinfra/nginx/certs/privkey.pem. - The reverse proxy terminates HTTPS and forwards
/api/traffic to the backend.
- Open the frontend.
- Create an account on the
Authpage. - Use
Pantryto save ingredients and set cuisine or dietary preferences. - Use
Recipesto enter ingredients and save favorite recipes. - Use
Chatto start a cooking conversation. Past conversations are stored and can be reopened. - Use
Visionto upload an ingredient photo and convert it into recipe suggestions.
- Backend:
python -m unittest discover -s tests - Frontend:
npm run build