Этот репозиторий содержит полнофункциональный игровой интернет-магазин, разработанный с использованием Django, одного из самых популярных фреймворков Python для веб-разработки. Этот проект предоставляет возможность создания и управления интернет-магазином для продажи видеоигр.
- Регистрация и авторизация пользователей.
- Пагинация и фильтрация игр.
- Кеширование списка игр при помощи Redis
- Добавление и удаление продуктов в корзине.
- Изменение информации о пользователе и загрузка изображения в профиле.
- Просморт списка заказов и каждого заказа по отдельности.
- Оформление заказов и платежи с использованием интегрированной платежной системой Stripe.
- Панель администратора для управления играми, заказами и пользователями.
- Отправка электронных писем для подтверждения аккаунта и сброса пароля при помощи Celery.
- REST API
Чтобы развернуть этот проект на своем локальном сервере, выполните следующие шаги:
-
Клонируйте репозиторий на свой локальный компьютер:
git clone https://github.com/pavlechenk/GameStore.git -
Перейдите в директорию проекта:
cd GameStore -
Создайте и активируйте виртуальное окружение (рекомендуется):
python -m venv venv source venv/bin/activate # Для Linux/Mac venv/Scripts/activate # Для Windows -
Установите зависимости:
pip install -r requirements.txt -
Скачайте и установите PostgreSQL с официального сайта:
https://www.postgresql.org/download/ -
Создайте базу данных и роли в psql:
CREATE DATABASE db_name; CREATE ROLE name with password 'password'; ALTER ROLE "name" with LOGIN; GRANT ALL PRIVILEGES ON DATABESE "db_name" to name; ALTER USER name CREATEDB; -
Создайте файл .env и установите в нем значения для следующих переменных:
DEBUG=True SECRET_KEY= DOMAIN_NAME=http://127.0.0.1:8000 REDIS_HOST=127.0.0.1 REDIS_PORT=6379 DATABASE_NAME= DATABASE_USER= DATABASE_PASSWORD= DATABASE_HOST=127.0.0.1 DATABASE_PORT=5432 EMAIL_HOST=smtp.gmail.com EMAIL_PORT=587 EMAIL_HOST_USER= EMAIL_HOST_PASSWORD= EMAIL_USE_TLS=True STRIPE_PUBLIC_KEY= STRIPE_SECRET_KEY= STRIPE_WEBHOOK_SECRET= -
Выполните миграции базы данных:
python manage.py makemigrations python manage.py migrate -
Загрузите фикстуры:
python manage.py loaddata games/fixtures/genres.json # Для Linux/Mac python manage.py loaddata games/fixtures/games.json python -Xutf8 manage.py loaddata games/fixtures/genres.json # Для Windows python -Xutf8 manage.py loaddata games/fixtures/games.json -
Запустите Celery для асинхронной обработки задач:
celery -A GameStore worker -l INFO -
Зарегистрируйтесь на официальном сайте stripe и установите значения для переменных STRIPE_PUBLIC_KEY и STRIPE_SECRET_KEY в файле .env, которые можно взять из Dashboard после регистрации:
Ссылка для регистрации - https://dashboard.stripe.com/register -
Запустите webhook для Windows, используя stripe.exe и сохраните полученный webhook в переменной STRIPE_WEBHOOK_SECRET файла .env:
stripe.exe webhook setup --listen-to http://127.0.0.1:8000/webhock/stripe/ Инструкция по установке stripe - https://stripe.com/docs/payments/checkout/fulfill-orders -
Запустите сервер разработки:
python manage.py runserver -
Откройте веб-браузер и перейдите по указанному ниже адресу для доступа к интернет-магазину:
http://127.0.0.1:8000/
Этот проект лицензируется в соответствии с лицензией MIT. Подробности см. в файле LICENSE.
Мы приветствуем ваш вклад в развитие проекта. Если у вас есть какие-либо вопросы или предложения, пожалуйста, создайте новый issue или отправьте pull request.
Давайте вместе сделаем этот игровой интернет-магазин лучше!