Keremet

KEREMET супермаркеті

KEREMET — FastAPI + PostgreSQL және React (Vite) негізіндегі онлайн-супермаркет. Каталог деректері енді PostgreSQL-дағы catalog_items кестесінде сақталады (catalog.json тек seed үшін қолданылады), ал тапсырыстар WhatsApp мәтінімен өңделеді.

Жоба құрылымы

keremet/
├── backend/
│   ├── Dockerfile
│   ├── requirements.txt
│   └── app/...
├── frontend/
│   ├── package.json, src/, public/
├── catalog.json
└── docker-compose.yml

Docker арқылы іске қосу

docker compose build && docker compose up

Сервис порттары:

backend сервисі .env ішіндегі айнымалылар арқылы бапталады. Өзгертуге болатын негізгі мәндер:

Каталогты БД-ға жүктеу

Алдымен контейнерлерді іске қосып алыңыз, содан кейін:

docker compose run --rm backend python -m backend.scripts.load_catalog

Бұл командa catalog.json ішіндегі барлық позицияларды catalog_items кестесіне импорттайды.

Фронтенд (React + Vite)

cd frontend
npm install
npm run dev # http://localhost:5173
# üretim
npm run build && npm run preview

VITE_API_BASE_URL айнымалысын орнатсаңыз, API адресін өзгерте аласыз.

API ерекшеліктері

Админ жасау үшін users кестесінде role бағанын admin мәніне өзгертіңіз (мысалы, Adminer арқылы). Қарапайым қолданушыларға role='customer' қалады.

Фронтенд беттері

WhatsApp логикасы

  1. /api/orders — себет элементтері және профиль snapshot-ы БД-ға жазылады.
  2. Фронтенд профиль ақпаратын және себет деректерін пайдаланып шаблонға сай хабарлама құрастырады.
  3. Қолданушы https://wa.me/77000000000?text=... сілтемесіне бағытталады, чатта дайын мәтін ашылады.