Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 

Repository files navigation

MotoParts - Store

Python Django DjangoREST Postgres Redis Celery Stripe Bootstrap

Интернет-магазин для быстрого поиска и заказа запасных частей мотоциклов KTM, Husqvarna, GasGas.

Функциональность:

  • Просмотр товаров и корзина для заказов;
  • Купонная система со скидками по промокодам;
  • Дружественный интерфейс оформления платежей;
  • Платёжный шлюз для оплаты картой;
  • Автоматическая отправка PDF-счёта на email;
  • Система рекомендаций товаров;
  • Кеширование запросов и результатов поиска.

Стек:

Установка и настройка:

  1. Клонируйте репозиторий с помощью команды:
git clone https://github.com/Alex-Wo/Motoparts-Store.git
  1. Перейдите в каталог проекта:
cd myshop
  1. Создайте виртуальную среду и активируйте её:
python3.11 -m venv env/myshop
source env/myshop/bin/activate (для Linux и MacOS)
.\env\myshop\Scripts\activate (для Windows)
  1. Обновите pip и установите зависимости:
pip install --upgrade pip
pip install -r requirements.txt
  1. Установите зависимости WeasyPrint для вашей операционной системы. Это необходимо для генерации pdf чеков, которые генерируются из html шаблона.

  2. Примените миграции базы данных:

python manage.py makemigrations
python manage.py migrate
  1. Создайте суперпользователя:
python manage.py createsuperuser
  1. Для функционала оплаты проведите ключи платежной системы Stripe. Создайте файл .env и добавьте
STRIPE_PUBLISHABLE_KEY = 'pk_test_your_key'
STRIPE_SECRET_KEY = 'sk_test_your_key'
STRIPE_API_VERSION = 'your_stripe_aoi_version'
STRIPE_WEBHOOK_SECRET = 'whsec_yourWebhookKey'
  1. В контейнере Docker запустите службы RabbitMQ и Redis:
docker pull rabbitmq
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management

docker pull redis
docker run -it --rm --name redis -p 6379:6379 redis
  1. Запустите celery worker:
celery -A myshop worker -l info

Если у вас Windows OS, то для корректной работы установите пакет Eventlet:

pip install eventlet
  1. Запустите celery worker командой:
celery -A myshop worker -l info -P eventlet
  1. Мониторинг Celery при помощи Flower:
celery -A myshop flower
  1. Для просмотра активных работников Celery и статистики асинхронных заданий перейдите по адресу:

http://localhost:5555/dashboard

  1. Запустите прослушивание событий вебхуков:
stripe listen --forward-to localhost:8000/payment/webhook/
  1. Запустите сервер разработки:
python manage.py runserver
  1. Теперь вы можете открыть приложение в браузере по адресу:

http://localhost:8000

Примечание:

По умолчанию, проект настроен на использование консольного бэкенда отправки почты. Для использования функционала отправки электронной почты, установите соответствующие параметры в файле settings.py

Contributing:

Если вы обнаружили ошибки или у вас есть предложения по улучшению проекта, пожалуйста, создайте новый Issue или отправьте Pull Request.

Скриншоты:

127 0 0 1_8000_ ••• image_2025-04-28_19-56-56 ••• image_2025-04-28_19-59-10 ••• image_2025-04-28_19-59-49 ••• image_2025-04-28_20-01-27 ••• image_2025-04-28_20-36-59 ••• image_2025-04-28_21-17-16

Лицензия:

Этот проект лицензирован в соответствии с лицензией ISC. Подробности можно найти в файле LICENSE

About

Упрощённая версия интернет-магазина запасных частей KTM • Husqvarna • GasGas

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages