How baitc-hacks/hack-4078ad52-mama-papa-and-me works
«Аким на 5 часов» — симулятор решений для сравнения влияния инициатив на районы Астаны. Пользователь выбирает меры и районы в интерфейсе; сервер проверяет выбор и рассчитывает отчёт движком. По запросу фоновый процесс готовит AI-разбор с источниками, а сценарий и результат можно сохранить и открыть позже. Карта архитектуры опирается на README и доступные фрагменты исходников; внутренние связи ненаблюдавшихся модулей backend и UI показаны только там, где их подтверждает API-код или документация.
Main entry points: backend/index.ts Сервис сценариев и анализа · city-simulator.tsx Симулятор города · engine/index.ts Проверка и расчёт · route.ts Запуск анализа API
Components 24
Интерфейс сценария
- Главная страница
src/app/page.tsx - Симулятор города
src/ui/features/city-simulator.tsx - Карта города
src/ui/features/city-map.tsx - Доказательства
src/ui/features/scenario-evidence.tsx - Демо интерфейса
src/ui/preview/app.tsx - Браузерный архив
src/ui/preview/browser-api.ts
Модель и расчёт
- Проверка и расчёт
src/engine/index.ts - Городской датасет
src/data/index.ts - Контракты данных
src/contracts/index.ts
API и обработка
- Расчёт API
src/app/api/simulate/route.ts - Запуск анализа API
src/app/api/analyses/route.ts - Статус анализа API
src/app/api/analyses/[id]/route.ts - Сценарии API
src/app/api/scenarios/route.ts - Открытие сценария API
src/app/api/scenarios/[id]/route.ts - Рабочий обработчик API
src/app/api/internal/analyses/[id]/route.ts - Диспетчер анализа
src/backend/dispatch.ts - Сервис сценариев и анализа
src/backend/index.ts - Конфигурация
src/config/index.ts - Фоновая функция
netlify/functions/analysis-background.ts
Сценарии и хранение
- Хранилище сценариев и задач
src/storage/index.ts - Адаптер Neon PostgreSQL
src/storage/postgres.ts
AI-разбор
- Исследование и объяснение
src/ai/index.ts
Other components
- Управленец / игрок
- OpenAI и веб-поиск
Connections 33
- Управленец / игрок → Главная страница: открывает
- Главная страница → Симулятор города: показывает
- Симулятор города → Карта города: показывает
- Симулятор города → Расчёт API: отправляет выбор
- Расчёт API → Проверка и расчёт: проверяет и рассчитывает
- Проверка и расчёт → Городской датасет: читает данные
- Проверка и расчёт → Контракты данных: использует типы
- Расчёт API → Симулятор города: возвращает отчёт
- Симулятор города → Запуск анализа API: запрашивает разбор
- Запуск анализа API → Сервис сценариев и анализа: создаёт задачу
- Запуск анализа API → Диспетчер анализа: запускает задачу
- Диспетчер анализа → Фоновая функция: передаёт задачу
- Диспетчер анализа → Рабочий обработчик API: вызывает обработчик
- Рабочий обработчик API → Сервис сценариев и анализа: обрабатывает задачу
- Статус анализа API → Сервис сценариев и анализа: читает статус
- Статус анализа API → Конфигурация: проверяет режим
- Сервис сценариев и анализа → Проверка и расчёт: рассчитывает отчёт
- Сервис сценариев и анализа → Исследование и объяснение: запрашивает разбор
- Исследование и объяснение → OpenAI и веб-поиск: исследует и объясняет
- Сервис сценариев и анализа → Хранилище сценариев и задач: читает и сохраняет
- Сервис сценариев и анализа → Конфигурация: читает настройки
- Хранилище сценариев и задач → Адаптер Neon PostgreSQL: использует облачный адаптер
- Запуск анализа API → Контракты данных: принимает запрос
- Сценарии API → Сервис сценариев и анализа: сохраняет и перечисляет
- Открытие сценария API → Сервис сценариев и анализа: загружает сценарий
- Сервис сценариев и анализа → Проверка и расчёт: формирует отчёт сценария
- Сценарии API → Контракты данных: принимает данные сценария
- Симулятор города → Сценарии API: сохраняет сценарий
- Симулятор города → Открытие сценария API: открывает сценарий
- Сервис сценариев и анализа → Хранилище сценариев и задач: записывает сценарий
- Статус анализа API → Доказательства: предоставляет результат
- Управленец / игрок → Демо интерфейса: открывает демо
- Демо интерфейса → Браузерный архив: использует архив