Интернет-магазин электроники на Django с каталогом, корзиной, оформлением заказа, личным кабинетом и кастомной административной панелью.
- GitHub: https://github.com/dev-ITU/eShop-WebSite
- Production: https://eshop.itunity.dev
- Кастомная админка:
/control/
- Python, Django
- PostgreSQL
- Redis, Celery
- HTML, CSS, JavaScript
- React Islands для интерактивных частей каталога и личного кабинета
- Docker Compose
- Главная страница, каталог, карточка товара, корзина, оформление заказа, оплата, чек и страница заказа.
- Фильтрация каталога по реальным категориям, брендам и характеристикам из загруженных товаров.
- Автодогрузка товаров в каталоге при прокрутке.
- Сессионная корзина с изменением количества и удалением позиций.
- Оформление заказа для гостей и авторизованных пользователей.
- Регистрация с имитацией email-кода подтверждения, вход и восстановление пароля.
- Личный кабинет с настройками профиля, телефоном, адресными данными и историей заказов.
- Привязка гостевых заказов к аккаунту после регистрации по той же почте.
- Имитация оплаты, генерация чека и QR-кода для получения заказа.
- Кастомная админка
/control/: товары, категории, контент, заказы, пользователи, роли сотрудников, системная и веб-аналитика. - Сервисный режим для создания первого пользователя админки.
- Seed-команда с товарами, ценами, характеристиками и изображениями из публичной витрины BigGeek.
config/ Django settings, URLs, Celery app
shop/ Основное приложение магазина
shop/management/ Команды наполнения демо-данными
static/ CSS, JS и изображения товаров
templates/ HTML-шаблоны публичной части и админки
docker-compose.yml Dev-сборка
docker-compose.prod.yml Production-сборка
docker compose up --buildПосле запуска:
- сайт: http://localhost:8000
- кастомная админка: http://localhost:8000/control/
- техническая Django admin: http://localhost:8000/admin/
В dev-сборке демо-данные загружаются автоматически командой seed_demo при старте web-контейнера.
Создайте .env на основе .env.example и задайте реальные значения:
SECRET_KEYDEBUG=0ALLOWED_HOSTSCSRF_TRUSTED_ORIGINSPOSTGRES_PASSWORDWEB_PORT
Запуск:
docker compose -f docker-compose.prod.yml up -d --buildКоманды после первого запуска:
docker compose -f docker-compose.prod.yml exec web python manage.py migrate
docker compose -f docker-compose.prod.yml exec web python manage.py collectstatic --noinput
docker compose -f docker-compose.prod.yml exec web python manage.py seed_demoДля первого входа в кастомную админку включите CONTROL_SERVICE_MODE=1, откройте /control/service/, создайте владельца, затем выключите сервисный режим обратно на 0.
python3 manage.py check
python3 manage.py test shopЧерез Docker:
docker compose run --rm web python manage.py check
docker compose run --rm web python manage.py test shopВ git не добавляются локальные секреты, база SQLite, пользовательские медиа, staticfiles/, временные документы и кеши Python. Статические изображения товаров лежат в static/img/biggeek-products/ и нужны для демо-каталога.
Лицензия явно не назначена. Все права сохраняются за владельцем репозитория до выбора отдельной лицензии.