# Курсовая работа: Интернет-магазин для игры **Автор:** Пилипенко Степан Андреевич **Год выполнения:** 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. **Бэкенд**: ```bash 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. **Фронтенд**: ```bash cd frontend npm install npm run dev ``` Приложение будет доступно по адресу: `https://shop.softwarrior.ru` --- ## 💡 Заключение Данная курсовая работа демонстрирует навыки: - проектирования full-stack веб-приложений, - работы с базами данных, - реализации аутентификации и управления состоянием, - интеграции фронтенда и бэкенда через API. Проект может быть расширен за счёт добавления: - платёжных систем (Stripe, PayPal), - поиска и фильтрации товаров, - админ-панели, - уведомлений и email-рассылок. --- ## Сборка docker образа для публикации docker rmi -f docker compose down && docker compose build --no-cache && docker compose up --- > **Примечание:** Исходный код доступен по запросу.