game_shop
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Stepan Pilipenko 012cfa0a06 style fix 4 weeks ago
backend style fix 4 weeks ago
frontend style fix 4 weeks ago
images 2 2 months ago
.gitignore first django 1 month ago
LICENSE Initial commit 2 months ago
README.md правка описания 1 month ago
compose.yaml настройки публикации 1 month ago

README.md

Курсовая работа: Интернет-магазин для игры

Автор: Пилипенко Степан Андреевич
Год выполнения: 2025
Направление: Разработка веб-приложения


📌 Описание проекта

В рамках курсовой работы разработан интернет-магазин внутриигровых товаров — полнофункциональное веб-приложение, позволяющее пользователям:

  • Просматривать каталог игровых предметов,
  • Добавлять товары в корзину и оформлять покупки,
  • Просматривать историю своих заказов,
  • Регистрироваться, авторизовываться и управлять профилем.

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


🖥️ Фронтенд

  • Язык: TypeScript
  • Сборка: Vite
  • Фреймворк: React
  • Управление состоянием: Redux Toolkit
  • Формы: React Hook Form
  • UI компонент: Material UI
  • Маршрутизация: React Router

Основные функции фронтенда:

  • Динамическая загрузка списка товаров,
  • Валидация форм регистрации и входа,
  • Отображение корзины и управление её содержимым,
  • Защита маршрутов (только для авторизованных пользователей),
  • Отображение личного кабинета и истории покупок.

⚙️ Бэкенд

  • Язык: Python
  • Фреймворк: Django
  • База данных: PostgreSQL
  • Аутентификация: Токены
  • API: RESTful (через Django REST Framework или нативные view)

Реализованные модели:

  • User — пользователь,
  • Shop — игровой товар (название, описание, цена, изображение),
  • Order — заказ (связь с пользователем, дата, статус),
  • OrderItem — позиция в заказе (товар + количество).

Основные эндпоинты:

  • /api/auth/register/ — регистрация,
  • /api/auth/login/ — вход,
  • /api/products/ — список товаров,
  • /api/cart/ — управление корзиной,
  • /api/orders/ — история покупок.

🔐 Безопасность

  • Пароли хранятся в хэшированном виде (bcrypt через Django),
  • Сессии управляются безопасно,
  • Защита от CSRF и XSS (встроенные механизмы Django и React).

📁 Структура проекта

game-shop/
├── backend/               # Django-приложение
│   ├── ...                # основное приложение
│   ├── manage.py
│   └── requirements.txt
├── frontend/              # React + Vite
│   ├── src/
│   │   ├── components/
│   │   ├── pages/
│   │   ├── storage/       # Redux slices
│   │   └── App.tsx
│   └── vite.config.ts
└── README.md

▶️ Запуск проекта

  1. Бэкенд:

    cd backend
    python -m venv venv
    source venv/bin/activate  # Linux/Mac
    venv\Scripts\activate     # Windows
    pip install -r requirements.txt
    python manage.py migrate
    python manage.py runserver
    
  2. Фронтенд:

    cd frontend
    npm install
    npm run dev
    

Приложение будет доступно по адресу: https://shop.softwarrior.ru


💡 Заключение

Данная курсовая работа демонстрирует навыки:

  • проектирования full-stack веб-приложений,
  • работы с базами данных,
  • реализации аутентификации и управления состоянием,
  • интеграции фронтенда и бэкенда через API.

Проект может быть расширен за счёт добавления:

  • платёжных систем (Stripe, PayPal),
  • поиска и фильтрации товаров,
  • админ-панели,
  • уведомлений и email-рассылок.

Сборка docker образа для публикации

docker rmi -f <image_id>

docker compose down && docker compose build --no-cache && docker compose up


Примечание: Исходный код доступен по запросу.