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.
 
 
 
 
 
 
Пилипенко Андрей Борисович d6c8c0ac21 правка описания 11 months ago
.docker frontend 11 months ago
backend slice 11 months ago
certs first django 11 months ago
frontend/shop slice 11 months ago
images 2 11 months ago
.gitignore first django 11 months ago
LICENSE Initial commit 11 months ago
README.md правка описания 11 months ago
compose.yaml frontend 11 months 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-рассылок.

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