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.
|
|
4 weeks ago | |
|---|---|---|
| backend | 4 weeks ago | |
| frontend | 4 weeks ago | |
| images | 2 months ago | |
| .gitignore | 1 month ago | |
| LICENSE | 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
▶️ Запуск проекта
-
Бэкенд:
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 -
Фронтенд:
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
Примечание: Исходный код доступен по запросу.