О проекте
Команда: Sandyq Qadam
Кейс HackAlem.ai: Логистика — Электрокомплект · ekt.kz
Стадия: Рабочий MVP
Задача кейса: Автоматический расчёт заказов поставщикам для пополнения склада, с утверждением менеджером
Суть
Python-пайплайн пополнения склада: прогноз спроса с поправкой на аномалии и дефицит, расчёт страхового запаса и объёмов заказа с группировкой по поставщикам, дашборд на Streamlit.
Как устроено
Загрузка и предобработка розничных данных, обнаружение и корректировка разовых крупных заказов клиентов (anomaly_detection), коррекция спроса на периоды отсутствия товара (stockout_correction). Далее сезонный прогноз сравнивается с простым baseline. Модуль inventory считает страховой запас, риски дефицита и количество к заказу, группирует позиции по поставщикам и формирует объяснения; всё это отдаётся через сервисный контракт в Streamlit-приложение. Шаг утверждения менеджером по карточке не виден.
Ключевые решения
- сезонный прогноз спроса
- baseline-сравнение
- детекция разовых заказов
- коррекция на stockout
- safety stock
- группировка по поставщикам
Особенности
Спрос очищается до прогноза: отдельно выявляются разовые заказы клиентов и корректируются периоды, когда товара не было на складе. В репозитории есть CI с backend-тестами.
Стек
Python · Streamlit · pytest · GitHub Actions
Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-c35f7328-sandyq-qadam.
README
README.mdhack-c35f7328-sandyq-qadam
Hackathon team repository for Sandyq Qadam
Авторы коммитов
История коммитов
- 2026-09-23 17:57Update README with branch information for reviewersaanokhin
- 2026-09-23 17:57Update README.mdaanokhin
- 2026-09-23 17:54Merge pull request #5 from BAITC-Hacks/feature/frontendBluePhoenix500
- 2026-09-23 17:53Update README.mdaanokhin
- 2026-09-23 17:42ci: verify synchronized dev history and run backend testsBluePhoenix500
- 2026-09-23 17:38Merge remote-tracking branch 'origin/dev' into feature/inventoryartem-anokhin
- 2026-09-23 17:26docs(backend): add frontend handoff and real-data smoke demoBluePhoenix500
- 2026-09-23 17:25test(inventory): cover public backend contract and validationBluePhoenix500
Все коммиты (30)
- 2026-09-23 17:24feat(inventory): expose real forecast recommendation serviceBluePhoenix500
- 2026-09-23 16:53docs(frontend): explain setup and integration limitsBluePhoenix500
- 2026-09-23 16:53test(frontend): cover UI and team integrationBluePhoenix500
- 2026-09-23 16:52feat(pipeline): connect forecasting and inventoryBluePhoenix500
- 2026-09-23 16:51fix(frontend): polish Adelya dashboard and correct demo risksBluePhoenix500
- 2026-09-23 16:18Merge pull request #2 from BAITC-Hacks/feature/data-forecastingaanokhin
- 2026-09-23 16:11feat: finalize forecasting contract and testsartem-anokhin
- 2026-09-23 16:08test: add forecasting pipeline testsartem-anokhin
- 2026-09-23 16:03feat: add stockout-adjusted demand forecastingartem-anokhin
- 2026-09-23 15:58docs(inventory): document integration and add runnable demoBluePhoenix500
- 2026-09-23 15:57test(inventory): cover order quantities risks and supplier groupingBluePhoenix500
- 2026-09-23 15:57test(inventory): add reproducible warehouse and forecast fixturesBluePhoenix500
- 2026-09-23 15:54feat(inventory): calculate replenishment orders and group suppliersBluePhoenix500
- 2026-09-23 15:53feat: compare seasonal forecast with simple baselineartem-anokhin
- 2026-09-23 15:38feat: add anomaly-adjusted seasonal demand forecastartem-anokhin
- 2026-09-23 15:36feat: detect and adjust one-off customer ordersartem-anokhin
- 2026-09-23 15:29feat: add one-off order detectionartem-anokhin
- 2026-09-23 15:23feat: prepare forecasting datasetartem-anokhin
- 2026-09-23 15:12Merge pull request #1 from BAITC-Hacks/feature/data-forecastingaanokhin
- 2026-09-23 15:09feat: add retail data loading and preprocessingartem-anokhin
- 2026-09-23 14:47chore: configure python environmentartem-anokhin
- 2026-09-23 14:37chore: initialize project structureartem-anokhin
Структура репозитория (46 файлов)
.env.example .github/workflows/backend-tests.yml .gitignore README.md README_BACKEND.md README_INVENTORY.md app/streamlit_app.py data/processed/.gitkeep data/raw/.gitkeep data/synthetic/.gitkeep data/synthetic/inventory.csv data/synthetic/mock_forecasts.csv demo_backend.py demo_inventory.py outputs/forecasts/.gitkeep outputs/recommendations/.gitkeep pytest.ini requirements-backend.txt requirements-inventory.txt requirements.txt src/__init__.py src/data/__init__.py src/data/anomaly_detection.py src/data/load_data.py src/data/preprocess.py src/data/stockout_correction.py src/forecasting/__init__.py src/forecasting/baseline.py src/forecasting/evaluate.py src/forecasting/features.py src/forecasting/model.py src/inventory/__init__.py src/inventory/contracts.py src/inventory/explanation.py src/inventory/order_calculator.py src/inventory/pipeline.py src/inventory/risk.py src/inventory/safety_stock.py src/inventory/service.py src/inventory/stockout.py src/inventory/supplier_grouping.py src/inventory/synthetic.py src/pipeline.py tests/test_forecasting.py tests/test_inventory.py tests/test_inventory_service.py
Обсуждение 0 комментариев
Войдите, чтобы комментироватьПока нет комментариев — будьте первым.