Skip to content

Latest commit

 

History

61 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HackStore - Платформа для торговли нефтепродуктами

Обзор проекта

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

(созданно в рамках хакатона BestHack 2025 от МГТУ им Баумана, на базе сколтеха, кейс от Лукойл)

Архитектура

Проект построен на основе современного стека технологий:

Frontend

  • React с TypeScript для типобезопасной разработки
  • MobX для управления состоянием приложения
  • React Router для навигации
  • CSS Modules для стилизации компонентов
  • Axios для работы с API

Backend

  • Python с FastAPI для создания REST API
  • SQLAlchemy для работы с базой данных
  • FTP-интеграция для загрузки данных о товарах

Основные функции

Для покупателей

  • Просмотр каталога нефтепродуктов с возможностью фильтрации по типу топлива, нефтебазе, региону и цене
  • Детальная информация о товаре включая тип топлива, нефтебазу, доступный объем, цену и сроки
  • Корзина покупок с возможностью выбора способа доставки (самовывоз или доставка)
  • Оформление заказов с автоматическим расчетом стоимости
  • Личный кабинет с историей покупок и информацией о пользователе

Для администраторов

  • Управление товарами - просмотр всех лотов, включая неактивные и проданные
  • Загрузка данных через CSV-файлы
  • Интеграция с FTP-сервером для автоматического обновления каталога

Особенности платформы

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

  • Защищенная аутентификация пользователей
  • Ролевая модель доступа (администратор и покупатель)
  • Защищенные API-маршруты

Удобство использования

  • Адаптивный дизайн для мобильных и десктопных устройств
  • Интуитивно понятный интерфейс с фильтрацией и сортировкой
  • Мгновенные уведомления о действиях пользователя

Интеграция

  • Автоматическая синхронизация с FTP-сервером для обновления данных
  • Возможность расширения для интеграции с другими системами

Страницы приложения

  • Главная страница - информация о платформе, преимущества и отзывы клиентов
  • Каталог товаров - список доступных нефтепродуктов с фильтрами и пагинацией
  • Страница товара - детальная информация о конкретном лоте с возможностью добавления в корзину
  • Корзина - управление выбранными товарами и оформление заказа
  • Личный кабинет - информация о пользователе и история покупок
  • Страница авторизации - вход и регистрация пользователей
  • Панель администратора - управление товарами и загрузка данных

Технические особенности

  • Фоновые задачи для проверки срока действия лотов
  • Планировщик для периодической загрузки данных с FTP-сервера
  • Пагинация для эффективной работы с большими объемами данных
  • Фильтрация на стороне сервера для оптимизации производительности
  • Кэширование данных для ускорения работы приложения

Начало работы

  1. Клонировать репозиторий
  2. Настроить переменные окружения
  3. Запустить backend и frontend части приложения

backend:

cd backend
docker compose up --build

frontend:

cd frontend
npm install
npm run dev
  1. Открыть приложение в браузере по адресу http://localhost:5173

Требования к системе

  • Node.js 14+ для frontend
  • Python 3.8+ для backend
  • FTP-сервер для интеграции данных (опционально)

About

pumpum

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages