О проекте
Команда: Neuraxis
Кейс HackAlem.ai: Спецтрек — Astana Innovations
Стадия: Рабочий MVP
Задача кейса: «Аким на 5 часов»: городской симулятор, распределяющий бюджет по 5 направлениям и 5 районам
Суть
Сайт, где жители Астаны подают заявления об улучшениях с фото и оценками, а аким в калькуляторе-симуляторе выбирает пять проектов на 1 млрд ₸ и получает анализ результата.
Как устроено
Фронтенд на React (Vite) и сервер на Node.js с SQLite, в которой хранятся аккаунты, заявления, фото и аватары. Роли гражданина и акима, калькулятор доступен только акиму. Расчёт бюджета выполняет локальная модель (src/shared/model.js, data/scenario.json), по желанию анализ дополняет OpenAI через серверный ai-client. Есть карта Астаны, погода и демо-жители с архивными фото.
Ключевые решения
- budget allocation calculator
- role-based access
- optional LLM analysis
Особенности
Кейс расширен гражданским слоем: жители подают заявки с фото и рейтингами, а аким видит их рядом с бюджетным симулятором. Запуск одним двойным кликом на START-WINDOWS.cmd.
Стек
React · Vite · Node.js · SQLite · JavaScript
Модели
OpenAI API
Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-d6ae42c3-neuraxis.
README
README.mdQALA LAB — улучшаем Астану вместе
Сайт, где жители предлагают улучшения для города, а аким планирует городской бюджет.
- Гражданин: создаёт заявления с фотографиями, ставит от 1 до 5 звёзд чужим предложениям и оставляет отзывы.
- Аким: видит заявления и пользуется калькулятором — выбирает пять проектов на 1 млрд ₸ и получает анализ результата.
- Есть личный кабинет с аватаркой, настоящая карта Астаны и погода. Аккаунты, фото и заявления сохраняются автоматически.
В ленте уже есть виртуальные жители и примеры заявлений с реальными архивными фото Астаны. Они отмечены «Демо». Это учебный проект, не официальный сервис акимата; роль «Аким» относится к симулятору.
Самый простой запуск на Windows
- Установите Node.js LTS с nodejs.org. В установщике оставьте обычные настройки. Если программа уже установлена, нужна версия 22.13 или новее.
- На странице этого репозитория нажмите зелёную кнопку Code → Download ZIP.
- Распакуйте ZIP. Откройте папку, в которой лежат
README.mdиpackage.json. - Дважды нажмите START-WINDOWS.cmd. При первом запуске подождите, пока установятся нужные файлы. Нужен интернет.
- Откройте в браузере http://localhost:5173. Окно запуска оставьте открытым.
Готово! Нажмите «Личный кабинет» → «Регистрация», выберите роль и создайте свой аккаунт. Гражданам калькулятор недоступен.
Чтобы остановить сайт, нажмите Ctrl+C в окне запуска. Чтобы открыть снова — повторно запустите START-WINDOWS.cmd.
Запуск через терминал (Windows, macOS, Linux)
Откройте терминал в папке проекта и выполните по очереди:
npm ci
npm run dev
Адрес сайта: http://localhost:5173. В Windows PowerShell используйте npm.cmd вместо npm, если появляется ошибка о запрете запуска скриптов.
Подключение AI — необязательно
Без ключа сайт работает и показывает локальный расчёт.
- Скопируйте файл
.env.exampleи назовите копию.env(без.txt). - Откройте
.envв текстовом редакторе и вставьте свой ключ послеOPENAI_API_KEY=. - Сохраните файл и перезапустите сайт.
Ключ передаётся только серверу OpenAI. Не публикуйте .env: он уже исключён из Git. В GitHub ключа нет. Подписка ChatGPT и кредиты API — отдельные вещи.
Если что-то не запускается
- «node не найден»: установите Node.js, затем откройте окно запуска заново.
- Адрес не открывается: дождитесь загрузки и посмотрите строку
Localв окне запуска — порт может отличаться. - Порт 3001 занят: закройте старое окно запуска этого проекта и запустите его один раз.
- Нужные файлы не установились: проверьте интернет и повторите запуск. Через терминал можно выполнить
npm.cmd ci.
База данных создаётся сама в data/astana-simulator.sqlite. Отдельно устанавливать БД не нужно. Не удаляйте этот файл, если хотите сохранить аккаунты и заявления. Карта, погода и AI требуют интернета. Источники фотографий указаны рядом с ними и в списке источников.
Для проверки кода: npm test. Для готовой сборки: npm run build, затем npm start и адрес http://localhost:3001.
Авторы коммитов
История коммитов
- 2026-09-23 17:47Роли, заявки с фото, AI и простой запускaninakit
- 2026-09-23 16:29Обновлён дизайн, добавлены регистрация по почте и уведомленияaninakit
- 2026-09-23 16:04Обновлён дизайн, добавлены кабинет, SQLite и бюджет в тенгеaninakit
- 2026-09-23 14:25Initial commit: first working version of the websiteaninakit
Структура репозитория (53 файлов)
.env.example .gitignore DESIGN_BRIEF.md README.md START-WINDOWS.cmd data/demo-photos.json data/scenario.json index.html package-lock.json package.json public/images/CREDITS.md public/images/astana-panorama.jpg public/images/astana-reference.jpg public/images/demo/astana-dump.jpg public/images/demo/astana-road.jpg public/images/demo/astana-trash.jpg scripts/check-ai.mjs server/ai-client.js server/auth.js server/avatar-storage.js server/community.js server/demo-data.js server/index.js server/weather.js src/main.jsx src/shared/avatars.js src/shared/community.js src/shared/model.js src/shared/validation.js src/ui/Account.jsx src/ui/App.jsx src/ui/Avatar.jsx src/ui/AvatarUpload.jsx src/ui/AverageRating.jsx src/ui/CityHero.jsx src/ui/CityOverview.jsx src/ui/Community.jsx src/ui/FeedbackDialog.jsx src/ui/ProposalPhotos.jsx src/ui/account.css src/ui/city-overview.css src/ui/comfort.css src/ui/community.css src/ui/landing.css src/ui/styles.css tests/ai-api.test.js tests/ai-client.test.js tests/api.test.js tests/demo-data.test.js tests/model.test.js tests/validation.test.js tests/weather.test.js vite.config.js
Обсуждение 0 комментариев
Войдите, чтобы комментироватьПока нет комментариев — будьте первым.