HackStore - это веб-приложение для покупки и продажи нефтепродуктов. Платформа предоставляет удобный интерфейс для просмотра каталога топлива, фильтрации по различным параметрам, оформления заказов и управления личным кабинетом.
(созданно в рамках хакатона BestHack 2025 от МГТУ им Баумана, на базе сколтеха, кейс от Лукойл)
Проект построен на основе современного стека технологий:
- React с TypeScript для типобезопасной разработки
- MobX для управления состоянием приложения
- React Router для навигации
- CSS Modules для стилизации компонентов
- Axios для работы с API
- Python с FastAPI для создания REST API
- SQLAlchemy для работы с базой данных
- FTP-интеграция для загрузки данных о товарах
- Просмотр каталога нефтепродуктов с возможностью фильтрации по типу топлива, нефтебазе, региону и цене
- Детальная информация о товаре включая тип топлива, нефтебазу, доступный объем, цену и сроки
- Корзина покупок с возможностью выбора способа доставки (самовывоз или доставка)
- Оформление заказов с автоматическим расчетом стоимости
- Личный кабинет с историей покупок и информацией о пользователе
- Управление товарами - просмотр всех лотов, включая неактивные и проданные
- Загрузка данных через CSV-файлы
- Интеграция с FTP-сервером для автоматического обновления каталога
- Защищенная аутентификация пользователей
- Ролевая модель доступа (администратор и покупатель)
- Защищенные API-маршруты
- Адаптивный дизайн для мобильных и десктопных устройств
- Интуитивно понятный интерфейс с фильтрацией и сортировкой
- Мгновенные уведомления о действиях пользователя
- Автоматическая синхронизация с FTP-сервером для обновления данных
- Возможность расширения для интеграции с другими системами
- Главная страница - информация о платформе, преимущества и отзывы клиентов
- Каталог товаров - список доступных нефтепродуктов с фильтрами и пагинацией
- Страница товара - детальная информация о конкретном лоте с возможностью добавления в корзину
- Корзина - управление выбранными товарами и оформление заказа
- Личный кабинет - информация о пользователе и история покупок
- Страница авторизации - вход и регистрация пользователей
- Панель администратора - управление товарами и загрузка данных
- Фоновые задачи для проверки срока действия лотов
- Планировщик для периодической загрузки данных с FTP-сервера
- Пагинация для эффективной работы с большими объемами данных
- Фильтрация на стороне сервера для оптимизации производительности
- Кэширование данных для ускорения работы приложения
- Клонировать репозиторий
- Настроить переменные окружения
- Запустить backend и frontend части приложения
backend:
cd backend
docker compose up --buildfrontend:
cd frontend
npm install
npm run dev- Открыть приложение в браузере по адресу http://localhost:5173
- Node.js 14+ для frontend
- Python 3.8+ для backend
- FTP-сервер для интеграции данных (опционально)