Учебный проект маркетплейса NeoMarket.
b2b/— кабинет продавца: товары, SKU, категории, накладныеb2c/— витрина покупателя: каталог, корзина, избранное, главнаяmoderation/— модерация товаров
Поднят базовый каркас трёх Django/DRF сервисов.
cd b2b/src
python manage.py migrate
python manage.py runserver 8001Проверка:
http://127.0.0.1:8001/api/v1/products/550e8400-e29b-41d4-a716-446655440000
cd b2c/src
python manage.py migrate
python manage.py runserver 8002Проверка:
http://127.0.0.1:8002/api/v1/favorites
cd moderation/src
python manage.py migrate
python manage.py runserver 8003- Реализовать B2B по OpenAPI-спеке
- Реализовать B2C по OpenAPI-спеке
- Реализовать Moderation по OpenAPI-спеке
- Добавить PostgreSQL и Docker
curl -X POST http://127.0.0.1:8001/api/v1/auth/register \
-H "Content-Type: application/json" \
-d '{
"email": "seller@test.com",
"password": "testpass123",
"first_name": "Иван",
"last_name": "Петров",
"middle_name": "Иванович",
"company_name": "ООО Тест",
"phone": "+79991234567"
}'curl -X POST http://127.0.0.1:8001/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email": "seller@test.com", "password": "testpass123"}'{"refresh":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTc3ODIzNDc5OCwiaWF0IjoxNzc3NjI5OTk4LCJqdGkiOiJhNGViMDA0Mzk4YjA0ZGE1OTgyZDkyMzYxYWJhOTQ2YiIsInVzZXJfaWQiOiJkMTg0ZDUzNy1iZGI2LTQ0NDAtYTY4NC0xYjc5YjIxYzE1MzAifQ.SpxsaxFxTivhhYDli5c37SkKyy1sgHIu7Mkxfo4j9Zo","access":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzc3NjMxNzk4LCJpYXQiOjE3Nzc2Mjk5OTgsImp0aSI6IjFiNDIyOTVlMTc0MzRiNmI4OWViYzY2YjlkNTc4OGY5IiwidXNlcl9pZCI6ImQxODRkNTM3LWJkYjYtNDQ0MC1hNjg0LTFiNzliMjFjMTUzMCJ9.XxzPLc5tLSwu122JJ6Nleb0SQUK8JufIGc7xTfKh2Vo"}в фронте надо
ACCESS_TOKEN="выданный токен refresh"
REFRESH_TOKEN="выданный токен access"curl -X GET http://127.0.0.1:8001/api/v1/seller/profile \
-H "Authorization: Bearer $ACCESS_TOKEN"curl -X PATCH http://127.0.0.1:8001/api/v1/seller/profile/update \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-d '{"first_name": "НовоеИмя"}'curl -X POST http://127.0.0.1:8001/api/v1/products/ \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-d '{
"title": "iPhone 15 Pro Max",
"description": "Флагман",
"category_id": "UUID_КАТЕГОРИИ",
"images": [{"url": "https://example.com/1.jpg", "ordering": 0}],
"characteristics": [{"name": "Бренд", "value": "Apple"}]
}'curl -X GET http://127.0.0.1:8001/api/v1/products/my \
-H "Authorization: Bearer $ACCESS_TOKEN"curl -X GET http://127.0.0.1:8001/api/v1/products/33a30226-0d92-4720-9028-98fddcb33d7b \
-H "Authorization: Bearer $ACCESS_TOKEN"