Thanks to visit codestin.com
Credit goes to github.com

Skip to content

AntonVagabond/online_store

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

645 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Online Store

Static Badge Static Badge Static Badge Static Badge Static Badge
Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge

Language: Русский, English 🌍

πŸ“ƒ Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

  1. ✏️ ОписаниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
  2. πŸ“± Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
  3. πŸ“š Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ зависимости
  4. πŸ“ˆ Бвязи ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ
  5. πŸ“½οΈ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹
  6. πŸ”§ ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
  7. πŸ”Œ Установка ΠΈ запуск
  8. πŸ“— ДокумСнтация API
  9. πŸ” ЛицСнзия
  10. πŸ§™β€β™‚οΈ Авторы

✏️ ОписаниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° Django Rest Framework, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ взаимодСйствия "Онлайн Магазина":

ΠŸΠΎΠΊΡƒΠΏΠ°Ρ‚Π΅Π»Π΅ΠΌ, ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ / Админом, ΠŸΠΎΡΡ‚Π°Π²Ρ‰ΠΈΠΊΠΎΠΌ ΠΈ ΠšΡƒΡ€ΡŒΠ΅Ρ€ΠΎΠΌ.

πŸ“‹ Π—Π°Π΄Π°Ρ‡ΠΈ

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ с Ρ†Π΅Π»ΡŒΡŽ изучСния Django Rest Framework.
Π‘Ρ‹Π»ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½Ρ‹ Ρ‚Π°ΠΊΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹, ΠΊΠ°ΠΊ:

  • ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ MVC, MVP. βœ…
  • АутСнтификация JWT. βœ…
  • АутСнтификация sessions. βœ…
  • Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ. βœ…
  • РСгистрация ΠΏΠΎ SMTP-ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ. βœ…
  • РСгистрация, авторизация с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Djoser. βœ…
  • ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. βœ…
  • ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Кэша. βœ…
  • Π Π°Π±ΠΎΡ‚Π° Π±Ρ€ΠΎΠΊΠ΅Ρ€ΠΎΠ² ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ (Redis, RabbitMQ, Kafka). βœ…
  • Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ RabbitMQ ΠΈ Kafka, ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы ΠΈΡ… использования. βœ…
  • Π Π°Π±ΠΎΡ‚Π° с ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½ΠΎΠΉ систСмой Yookassa. βœ…
  • ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ webhook-Π°. βœ…

πŸ“Ÿ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½Ρ‹ΠΉ список ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ ΠΈ ΠΈΡ… возмоТности.

πŸ“± Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

  • Π‘Ρ…Π΅ΠΌΠ° - Spectacular.
  • РСгистрация - SMTP.
  • ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° сообщСний - Djoser.
  • ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ошибок - Sentry.
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° адрСса Ρ‡Π΅Ρ€Π΅Π· - Google Maps. (Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅)
  • РСзСрвная копия Π‘Π°Π·Ρ‹ Π”Π°Π½Π½Ρ‹Ρ… - CeleryBeat.
  • ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π‘Π°Π·Π° Π”Π°Π½Π½Ρ‹Ρ… - Redis.
  • Π€ΠΎΠ½ΠΎΠ²Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ - Celery.
  • Π‘Ρ€ΠΎΠΊΠ΅Ρ€ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ - RabbitMQ.
  • ΠŸΠ»Π°Ρ‚Π΅ΠΆΠ½Π°Ρ систСма - Yookassa.
  • ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ° - Webhook.

πŸ“š Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ зависимости

  • Python 3.11
  • Django 4.2.7
  • djangorestframework 3.14.0
  • djangorestframework-simplejwt 5.3.0
  • drf-spectacular 0.26.5
  • djoser 2.2.2
  • psycopg2 2.9.9
  • redis 5.0.1
  • rabbitmq-server 0.0.1
  • celery 5.3.6
  • django-celery-beat 2.5.0
  • sentry-sdk 1.38.0
  • yookassa 3.0.1

πŸ“ˆ Бвязи ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ

img.png

πŸ“½οΈ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

  1. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ копирования Π‘Π°Π·Ρ‹ Π”Π°Π½Π½Ρ‹Ρ…. Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ Π² Π»ΡƒΡ‡ΡˆΠ΅ΠΌ качСствС. copy_bd

  1. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠžΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΡ Π·Π°ΠΊΠ°Π·Π° ΠΈ Π΅Π³ΠΎ ΠΎΠΏΠ»Π°Ρ‚Π° Π² Yookassa. Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ Π² Π»ΡƒΡ‡ΡˆΠ΅ΠΌ качСствС. pay_yookassa

πŸ”§ ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Warning

Если Ρƒ вас Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ошибки ΠΏΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΏΠ°Ρ€Ρƒ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ Π½ΠΈΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΡ‡ΡŒ!

  1. ΠŸΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρƒ вас Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка. Π­Ρ‚Π° ссылка ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ.
  2. Π£ вас Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка Π² Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡ€ΠΈ Π²Ρ…ΠΎΠ΄Π΅ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ. Π­Ρ‚Π° ссылка ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ.
  • Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π°Ρ‡ΠΈΠ½Π°Π» ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π±Π΅Π· знания Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΠΎΠ»Π΅Π΅ Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ REST API ΠΈ
    ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ сам ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΌΠ°Π³Π°Π·ΠΈΠ½. По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π½Π΅Π΄ΠΎΡ‡Π΅Ρ‚Ρ‹.

  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π² этом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π½Π΅Ρ‚ микросСрвисов? ΠŸΡ€ΠΎ микросСрвисы Π½Π° Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ я ΡΠ»Ρ‹ΡˆΠ°Π», Π½ΠΎ ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π».
    По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ этот ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ сСрвис.

  • Π’Π°ΠΊ ΠΆΠ΅, Ссли Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· docker, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Π΄ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ настройку
    celery(ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ) Π»ΠΈΠ±ΠΎ Π² rabbitmq Π΄ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³. По ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ
    ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· этих ΠΏΡ€ΠΈΡ‡ΠΈΠ½ Π² docker Π½Π΅ Ρ…ΠΎΡ‡Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ celery ΠΈ Π²Ρ‹ΡΠΊΠ°ΠΊΠΈΠ²Π°ΡŽΡ‚ прСдупрСТдСния Π² rabbitmq.

  • Для Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ использования ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:
    Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ запускался с ΠΊΠ½ΠΎΠΏΠΊΠΈ Run (Shift+F10) ΠΈ примСнялся Debug (Shift+F9) Π·Π°ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ этой ссылкС

πŸ”Œ Установка ΠΈ запуск

Warning

Если Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Π΅ΡΡ‚ΡŒ всё ниТСпСрСчислСнноС, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ это ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅.

  • ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ рСгистрация Π² Sentry.
  • ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ рСгистрация Π² Yookassa для тСстирования ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ°.

πŸ“” Установка ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² IDE

  • ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСпозитория:
git clone https://github.com/AntonVagabond/online_store.git
  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ окруТСния ΠΈ установка зависимостСй:
python3.11 -m venv env
source env/bin/activate
pip install -r requirements.txt
  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ .env Π½Π° основС .env.example
SECRET_KEY=
DEBUG=
ALLOWED_HOSTS=

PG_DATABASE=
PG_USER=
PG_PASSWORD=
DB_HOST=
DB_PORT=

SENTRY_DSN=

EMAIL_HOST=
EMAIL_PORT=
EMAIL_HOST_USER=
EMAIL_HOST_PASSWORD=
EMAIL_USE_TLS=

REDIS_HOST=
REDIS_PORT=

RABBIT_HOST=
RABBIT_PORT=

CELERY_TASK_TRACK_STARTED=
ACCEPT_CONTENT=
RESULT_SERIALIZER=
TASK_SERIALIZER=
TIMEZONE=

YOOKASSA_SHOP_ID=
YOOKASSA_SECRET_KEY=
YOOKASSA_RETURN_URL=

STATIC_FILES=/path/to/static/
MEDIA_FILES=/path/to/media/

🐳 Установка ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Docker

  • Π‘ΠΈΠ»Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:
docker-compose up -d --build
  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ:
docker exec web python manage.py makemigrations
  • ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ:
docker exec web python manage.py migrate
  • Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:
docker-compose exec make initial
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ superuser-Π°:
docker-compose exec web python manage.py createsuperuser

πŸ“— ДокумСнтация API

ДокумСнтация ΠΏΠΎ API доступна ΠΏΠΎ /api/v1.
ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΏΠΎΠΊΠ°Π· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ: swagger

πŸ” ЛицСнзия

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ см. Π² Ρ„Π°ΠΉΠ»Π΅ LICENSE.

πŸ§™β€β™‚οΈ Авторы

Releases

No releases published

Packages

 
 
 

Contributors