尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证ICity — 可访问的哈萨克斯坦地图,面向残障人士:无障碍路线、公交和出租车、坡道、电梯以及在22个城市的障碍报告。俄语、哈萨克语、英语。
AI 翻译
ICity — доступная карта Казахстана для людей с инвалидностью: безбарьерные маршруты, автобусы и такси, пандусы, лифты и жалобы на барьеры в 22 городах. Русский, казахский, английский.
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
ICity помогает людям с инвалидностью и всем, кому трудно передвигаться по городу, — на кресле-коляске, с тростью или ходунками, с детской коляской, незрячим, слабовидящим и глухим — заранее узнать, как добраться до места без лестниц, высоких бордюров и других барьеров.查看完整 README ↗
ICity помогает людям с инвалидностью и всем, кому трудно передвигаться по городу, — на кресле-коляске, с тростью или ходунками, с детской коляской, незрячим, слабовидящим и глухим — заранее узнать, как добраться до места без лестниц, высоких бордюров и других барьеров.
Сайт: https://inclusivecity.uk/
Данные о городе берутся из открытых источников (OpenStreetMap) и дополняются сообщениями самих жителей.
Готово к деплою «из коробки»: сервер написан на чистом Node.js без единой
npm-зависимости, поэтому не нужен даже npm install — только node server.js.
public/index.html — карта (Leaflet + тайлы OSM), построение маршрутов
(OSRM), поиск мест (Nominatim), открытые данные о доступности (Overpass API).
Все эти три сервиса — публичные, бесплатные и не требуют ключей.public/admin.html — панель модератора: одобрить / отклонить / удалить
присланный отчёт о барьере.server.js — бэкенд: отдаёт статику и API для приёма/хранения отчётов
(JSON-файл data/reports.json + фото в uploads/).Аккаунты хранятся в Supabase (бесплатный план), а не на диске Render, поэтому не пропадают при деплое.
SUPABASE_URL и SUPABASE_ANON_KEY.https://inclusivecity.uk,
Redirect URLs https://inclusivecity.uk/account* и https://inclusivecity.onrender.com/account*.https://<ref>.supabase.co/auth/v1/callback, затем вставьте Client ID и Secret в Supabase
Authentication → Providers → Google.Как устроен вход (public/login.html): регистрация по телефону (код из SMS) или по почте (ссылка в письме),
вход по телефону или почте с паролем, «Забыли пароль?» — для телефона код в SMS и новый пароль,
для почты — ссылка на /account?reset=1.
Apple (нужен Apple Developer, $99/год) и eGov пока показаны как «скоро».
Кнопка «Серік» на карте открывает чат: гид по доступному городу и бережная поддержка (выслушать, дыхание, заземление, план поездки; при кризисе — номера 112, 150, 111). Ответы можно слушать голосом, вопросы — задавать голосом.
ANTHROPIC_API_KEY с этим ключом и сохраните.ASSISTANT_MODEL (по умолчанию claude-haiku-5-5 — самая дешёвая модель).Сервер ограничивает 40 сообщений в час с одного IP, чтобы ключ не расходовался впустую.
В карточке места (кафе, аптека, ТЦ…) прямо на сайте показываются фото, рейтинг и отзывы — без перехода в 2ГИС.
Источник — официальный Google Places API (New); ключ хранится только на сервере, фото отдаются через /api/place-photo.
GOOGLE_PLACES_KEY.Без ключа карточка показывает свободные фото из Wikimedia Commons (по тегам OSM image, wikimedia_commons, wikidata).
В OpenStreetMap телефон указан лишь у малой части заведений, поэтому карточка места дополняет контакты
из открытых данных Overture Maps (слой places, лицензия CDLA-Permissive-2.0, бесплатно).
GitHub Actions (.github/workflows/places.yml, вкладка Actions → «Places from Overture» → Run workflow; потом сам 1-го числа)
запускает tools/overture_places.py и кладёт public/places/<город>.json. Карточка находит место по названию в радиусе ~180 м.
В разделе «Такси» показываются только службы того города, откуда вы едете: заказ Яндекс Go по телефону,
службы такси из OpenStreetMap (tools/osm_taxi.py, workflow «Taxi from OSM», раз в месяц) и номера инватакси
(таблица INVATAXI в public/index.html: карточки 2ГИС и публикации акиматов и СМИ 2024–2026; номера только из старого
справочника помечены «мог измениться»). Номера стоит перепроверять раз в несколько месяцев.
Отзывы, просьбы о помощи и жалобы хранятся в data/ и копируются в Cloudflare KV, если заданы CF_ACCOUNT_ID, CF_KV_NAMESPACE_ID, CF_API_TOKEN
(без них на бесплатном Render данные стираются при каждом деплое).
Выбирается в «Настройках» (первый раздел) и на странице аккаунта /account — там он сохраняется в аккаунте
(user_metadata.mobility в Supabase) и подхватывается на других устройствах. В панели «Куда едем?» —
только строка «Профиль: … Изменить».
Если отдалить карту до уровня материков, вместо плоского «атласа» появляется Земля в космосе (three.js r128, текстуры NASA Blue Marble и Earth at Night из пакета three-globe на jsDelivr): звёзды, Солнце, Луна, ночные огни. Землю можно крутить и приближать; приблизили или нажали на точку города — снова обычная карта.
Настройки → «Голосовые подсказки» (или пункт в меню «три линии»): первое касание произносит название кнопки или поля, второе — нажимает; окна и результаты объявляются голосом. Это для тех, у кого не включён экранный диктор; с VoiceOver и TalkBack сайт работает и без этого режима.
node server.js
Откройте http://localhost:3000 — карта. http://localhost:3000/admin — модерация
(токен по умолчанию change-me-please, обязательно смените через переменную
окружения ADMIN_TOKEN перед реальным использованием).
ADMIN_TOKEN=мой-секретный-токен PORT=3000 node server.js
node server.jsADMIN_TOKEN со своим
секретным значением.https://inclusivecity-xxxx.onrender.com.В репозитории уже лежит render.yaml — Render может подхватить конфигурацию
автоматически при выборе Blueprint.
Бесплатный план Render не даёт постоянный диск — при каждом передеплое
или перезапуске сервиса файлы data/reports.json и uploads/ обнуляются.
Для MVP и демонстрации это некритично, но для реальной эксплуатации выберите
один из вариантов:
render.yaml есть
закомментированный пример — раскомментируйте и примонтируйте data/ и
uploads/)./app/data и /app/uploads,
данные переживут перезапуски.npm start.ADMIN_TOKEN./app/data (и при
желании второй — на /app/uploads), чтобы отчёты и фото не терялись между
деплоями.Откройте <ваш-домен>/admin, введите токен из ADMIN_TOKEN. Новые отчёты
приходят со статусом «на проверке» и не видны на публичной карте, пока вы их
не одобрите.
Все права защищены — см. LICENSE. Код открыт только для просмотра; копировать и размещать его на других сайтах без разрешения нельзя.