尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證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. Код открыт только для просмотра; копировать и размещать его на других сайтах без разрешения нельзя.