Узнай город через историю его улиц.
QALA CODE — образовательный цифровой проект, который превращает карту Астаны в интерактивный путеводитель по истории, культуре, географии и людям, чьи имена и понятия отражены в названиях городских улиц.
Пользователь открывает карту, выбирает улицу и узнаёт, что означает её название, с чем оно связано и почему оно появилось на карте столицы Казахстана.
Главная особенность проекта — собственная структурированная база данных урбанонимов, созданная в рамках исследования. На этой базе работает AI-гид, который позволяет задавать вопросы о названиях улиц естественным языком.
Обычная карта отвечает на вопрос:
«Где находится улица?»
QALA CODE отвечает на дополнительные вопросы:
«Почему она так называется?»
«Кто или что стоит за этим названием?»
«Как оно связано с историей Казахстана?»
«Какие ещё улицы относятся к этой категории?»
Таким образом, название улицы становится точкой входа в изучение истории и культуры Казахстана.
Создать интерактивную цифровую карту улиц Астаны с информацией об их происхождении и историко-культурном значении.
- исследовать названия улиц Астаны;
- создать структурированную базу урбанонимов;
- классифицировать названия по смысловым категориям;
- визуализировать результаты исследования;
- создать AI-гид по собственной базе данных;
- разработать образовательный QR-квест;
- показать взаимосвязь городской среды, истории и цифровых технологий.
- школьники;
- студенты;
- жители Астаны;
- учителя истории и обществознания;
- туристы.
- исследователи городской среды;
- экскурсоводы;
- образовательные организации;
- родители;
- гости столицы.
Главный экран приложения представляет собой карту Астаны.
На карте отображаются исследованные улицы.
Каждая улица имеет:
- координаты;
- название;
- категорию;
- ссылку на подробную страницу;
- визуальный маркер.
- перемещать карту;
- изменять масштаб;
- искать улицу;
- нажимать на улицу;
- открывать карточку улицы;
- фильтровать улицы по категориям.
При выборе улицы открывается подробная информация.
Пример:
Категория:
Личность / литература
Кто это?
Абай Құнанбайұлы — казахский поэт, мыслитель, композитор и просветитель.
Почему улица названа в его честь?
Краткое объяснение происхождения названия.
Историческая справка
- Факт №1
- Факт №2
- Факт №3
- Факт №4
Связь с Казахстаном
Краткое описание культурного или исторического значения.
Категория
Личность
Литература
Расположение
Интерактивный фрагмент карты.
QR-код
QR-код ведёт на страницу конкретной улицы.
Каждая улица должна храниться в базе данных как отдельная сущность.
Пример:
{
"id": "street_001",
"name_ru": "Абая",
"name_kz": "Абай",
"slug": "abay",
"category": "personality",
"subcategories": [
"literature"
],
"description": "...",
"who_is_it": "...",
"why_named": "...",
"historical_facts": [
"...",
"...",
"...",
"..."
],
"cultural_connection": "...",
"latitude": 51.1282,
"longitude": 71.4304,
"sources": [
{
"title": "...",
"url": "..."
}
]
}Для классификации улиц используется система категорий.
Названия, связанные с конкретными людьми.
Примеры:
- Абай;
- Қабанбай батыр;
- Кенесары хан;
- Бауыржан Момышұлы.
Возможные подкатегории:
- государственные деятели;
- военные;
- писатели;
- поэты;
- учёные;
- общественные деятели;
- деятели искусства.
Названия географических объектов.
Например:
- города;
- регионы;
- реки;
- озёра;
- горы;
- степи;
- исторические территории.
Названия, связанные с историческими событиями, государственностью и историческими понятиями.
Названия, связанные с:
- литературными деятелями;
- произведениями;
- музыкой;
- театром;
- искусством;
- культурными явлениями.
Названия, связанные с:
- животными;
- растениями;
- природными объектами;
- ландшафтами;
- природными явлениями.
Пользователь должен иметь возможность искать улицы.
Абая
Қабанбай
Сарыарқа
Кенесары
Поиск должен учитывать:
- русское название;
- казахское название;
- slug;
- альтернативные варианты написания.
Например:
Кабанбай
Қабанбай
Qabanbay
Qabanbai
могут вести к одной сущности.
Пользователь может выбрать одну или несколько категорий.
Пример:
☑ Личности
☐ География
☑ История
☐ Литература
☐ Природа
После применения фильтра карта показывает только соответствующие улицы.
Отдельный раздел проекта.
Показать, какие смысловые категории представлены среди исследованных названий улиц.
Например:
Исследовано: 100 улиц
Личности ███████████████████ 42
География ███████████ 25
История ████████ 18
Литература █████ 10
Природа ██ 5
Также должна отображаться процентная доля каждой категории.
Статистика должна сопровождаться количеством исследованных объектов.
Если исследовано только 100 улиц из значительно большего количества, интерфейс должен явно обозначать:
Статистика основана на исследованной выборке из 100 улиц.
Основная AI-функция проекта.
Пользователь может задавать вопросы обычным языком.
Почему улица называется Қабанбай батыр?
Кто такой Абай?
Какие улицы названы в честь писателей?
Найди улицы, связанные с историей Казахстана.
Какие названия связаны с природой?
Какие улицы названы в честь исторических личностей?
Покажи улицы, связанные с Астаной.
ИИ не должен самостоятельно формировать историческую базу проекта.
Основным источником информации является собственная база QALA CODE.
Архитектура:
Пользователь
│
▼
AI Guide
│
▼
Определение намерения пользователя
│
▼
Поиск по базе QALA CODE
│
▼
Получение релевантных записей
│
▼
LLM
│
▼
Структурированный ответ
Для AI-гидa рекомендуется использовать подход RAG.
Вместо передачи всей базы данных модели:
- пользователь задаёт вопрос;
- система определяет, что нужно найти;
- выполняется поиск по базе;
- находятся релевантные записи;
- найденная информация передаётся LLM;
- LLM формирует ответ.
Пример:
User:
"Какие улицы названы в честь писателей?"
↓
Query classification:
category = literature
type = personality
↓
Database:
Абай
Мұхтар Әуезов
Сәкен Сейфуллин
...
↓
AI:
В базе QALA CODE найдены следующие улицы...
AI должен отвечать только на основании доступных данных проекта, когда вопрос требует фактической информации об улицах.
Если информации недостаточно:
«В базе QALA CODE пока нет достаточной информации об этой улице.»
AI не должен придумывать:
- исторические факты;
- происхождение названия;
- даты;
- биографии;
- источники.
Для каждой фактической записи рекомендуется хранить источники.
Каждая исследованная запись должна иметь список источников.
Пример:
{
"sources": [
{
"title": "Название источника",
"url": "https://example.com"
}
]
}Источниками могут быть:
- официальные сайты государственных органов;
- архивные материалы;
- библиотеки;
- научные публикации;
- энциклопедии;
- официальные документы;
- авторитетные исторические ресурсы.
Интерфейс:
┌──────────────────────────────────┐
│ 🤖 AI-гид по улицам Астаны │
│ │
│ Спросите меня о названиях улиц │
│ │
│ ┌──────────────────────────────┐ │
│ │ Почему улица называется... │ │
│ └──────────────────────────────┘ │
│ │
│ Популярные вопросы: │
│ │
│ [Улицы в честь писателей] │
│ [Исторические личности] │
│ [География Казахстана] │
│ [Природа] │
└──────────────────────────────────┘
Для каждой улицы генерируется уникальный QR-код.
Пример:
https://qalacode.kz/street/abay
QR-код размещается:
- в интерфейсе приложения;
- на печатных материалах;
- на карте;
- в рамках QR-квеста.
Образовательный маршрут из 10 точек.
Каждая точка содержит QR-код.
После сканирования пользователь получает:
- информацию об улице;
- историческую справку;
- вопрос;
- варианты ответа или поле для ответа;
- переход к следующей точке.
Улица Абая
Вопрос:
Кто такой Абай и какое значение он имеет для культуры Казахстана?
Улица Қабанбай батыр
Вопрос:
К какой категории относится название этой улицы?
Ответ:
Историческая личность.
Улица Сарыарқа
Вопрос:
С каким географическим понятием связано название улицы?
Пользователь начинает:
START
↓
QR #1
↓
Ответ
↓
QR #2
↓
Ответ
↓
...
↓
QR #10
↓
FINISH
В конце отображается:
🎉 Маршрут завершён!
Вы исследовали 10 улиц
и узнали их историческое происхождение.
QALA CODE
Главная страница должна содержать:
QALA CODE
Узнай город через историю его улиц.
[Открыть карту]
[🤖 AI-гид]
[Карта смыслов]
[QR-квест]
Дополнительно:
- количество исследованных улиц;
- количество категорий;
- количество исторических личностей;
- краткое описание проекта.
URL:
/street/{slug}
Пример:
/street/abay
Страница содержит:
Название
│
├── Категория
├── Кто / что
├── Почему так называется
├── Историческая справка
├── Интересный факт
├── Связь с Казахстаном
├── Карта
├── Источники
└── QR-код
Backend должен предоставлять API.
GET /api/streetsGET /api/streets/{id}GET /api/streets/search?q=abayGET /api/streets?category=personalityGET /api/statisticsPOST /api/ai/askRequest:
{
"question": "Какие улицы названы в честь писателей?"
}Response:
{
"answer": "...",
"streets": [
{
"id": "street_001",
"name": "Абай",
"slug": "abay"
}
]
}Next.js
React
TypeScript
MapLibre GL / Leaflet
Tailwind CSS
Python
FastAPI
PostgreSQL
PostGIS
PostGIS используется для работы с географическими координатами.
LLM API
Embeddings
Vector Search / PostgreSQL pgvector
Для небольшого MVP полноценный vector database может быть необязателен.
Можно начать с PostgreSQL и обычного поиска по структурированным полям.
┌─────────────────┐
│ USER │
└────────┬────────┘
│
▼
┌─────────────────┐
│ FRONTEND │
│ Next.js │
└────────┬────────┘
│
┌────────────┼────────────┐
│ │ │
▼ ▼ ▼
Streets Search AI Guide
│ │ │
└────────────┼────────────┘
▼
┌─────────────────┐
│ FastAPI │
└────────┬────────┘
│
┌────────────┴────────────┐
│ │
▼ ▼
┌───────────────┐ ┌──────────────┐
│ PostgreSQL │ │ LLM │
│ + PostGIS │ │ │
└───────────────┘ └──────────────┘
Для MVP рекомендуется сделать простую admin-панель.
Администратор может:
- добавлять улицу;
- редактировать улицу;
- удалять улицу;
- менять категорию;
- добавлять факты;
- добавлять источники;
- указывать координаты;
- публиковать/скрывать улицу.
Каждая запись может иметь статус:
draft
review
published
Информация ещё собирается.
Запись подготовлена и ожидает проверки.
Запись доступна пользователям и AI-гиду.
Это позволяет отделить исследовательскую работу от опубликованных данных.
Первая версия проекта должна включать:
- интерактивная карта;
- 50–100 исследованных улиц;
- база данных;
- категории;
- поиск;
- фильтрация;
- страницы улиц;
- источники;
- QR-коды;
- AI-гид;
- карта смыслов;
- статистика;
- QR-квест из 10 точек.
- авторизация;
- личные кабинеты;
- комментарии;
- социальные функции;
- мобильное приложение;
- сложная gamification;
- AR.
- определить критерии отбора улиц;
- собрать список улиц;
- определить категории;
- найти источники;
- создать первоначальную базу.
Результат: dataset.
- создать PostgreSQL;
- создать модели;
- реализовать CRUD;
- создать API;
- добавить поиск;
- добавить фильтрацию;
- реализовать статистику.
Результат: API.
- создать карту;
- добавить маркеры;
- добавить поиск;
- добавить фильтры;
- создать карточки улиц;
- создать страницы улиц.
Результат: интерактивная карта.
- реализовать endpoint
/api/ai/ask; - добавить поиск релевантных данных;
- подключить LLM;
- сформировать prompt;
- ограничить ответы данными проекта;
- добавить ссылки на улицы в ответы.
Результат: AI-гид.
- создать URL для каждой улицы;
- автоматически генерировать QR;
- создать QR-квест;
- добавить 10 заданий.
Результат: интерактивный образовательный маршрут.
Создать:
- количество улиц;
- распределение категорий;
- карту смыслов;
- статистику исследованной выборки.
Каждая опубликованная улица должна иметь минимум:
✓ название
✓ категория
✓ описание
✓ объяснение происхождения названия
✓ минимум 3 факта
✓ источник
✓ координаты
Желательно:
✓ название на казахском
✓ название на русском
✓ интересный факт
✓ культурная связь
✓ фотография
✓ несколько источников
Пользователь не должен чувствовать, что он изучает базу данных.
Взаимодействие должно быть простым:
Увидел улицу
↓
Нажал
↓
Узнал историю
↓
Задал вопрос AI
↓
Нашёл похожие улицы
↓
Продолжил исследование
Проект развивает:
- исследовательские навыки;
- работу с источниками;
- систематизацию информации;
- основы баз данных;
- картографическую визуализацию;
- программирование;
- понимание AI и RAG;
- критическую работу с информацией.
Особенно важно, что AI является не заменой исследованию, а инструментом работы с результатами исследования.
Ученик самостоятельно создаёт:
Базу урбанонимов Астаны.
Систему категорий названий.
Интерактивную карту.
AI-гид, работающий с собственной базой.
QR-квест по городу.
Таким образом, проект объединяет:
ИССЛЕДОВАНИЕ
+
DATA
+
MAP
+
AI
+
EDUCATION
Проект считается готовым к демонстрации, если пользователь может:
- открыть карту;
- найти улицу;
- открыть её карточку;
- узнать происхождение названия;
- увидеть категорию;
- посмотреть источники;
- отфильтровать улицы;
- задать вопрос AI;
- получить ответ на основе базы;
- перейти к улице из ответа AI;
- отсканировать QR-код;
- пройти QR-квест.
Для защиты рекомендуется следующий сценарий.
Открыть карту.
«Перед нами обычная карта Астаны, но каждая исследованная улица содержит дополнительный исторический слой.»
Нажать на улицу Абая.
«Мы можем узнать, кто такой Абай, почему его имя появилось на карте столицы и с чем оно связано.»
Включить категорию «Личности».
«Теперь карта показывает улицы, названные в честь людей.»
Открыть «Карту смыслов».
«Мы можем увидеть, какие категории представлены в нашей исследованной базе.»
Открыть AI-гид.
Спросить:
«Какие улицы Астаны названы в честь писателей?»
ИИ отвечает на основании собственной базы.
Показать QR-код.
«А теперь цифровую карту можно вынести за пределы компьютера.»
Отсканировать QR-код.
Показать QR-квест.
«Мы превратили обычную прогулку по Астане в образовательный маршрут.»
QALA CODE показывает, что карта города — это не только дороги и адреса.
За каждым названием может стоять человек, событие, место, природный объект или культурное понятие.
Мы собрали эти истории в собственную базу данных, визуализировали их на карте и создали AI-гид, который позволяет исследовать город с помощью естественного языка.
QALA CODE — это способ читать историю Астаны через названия её улиц.
В будущем проект можно масштабировать:
QALA CODE
│
├── ASTANA
│
├── ALMATY
│
├── SHYMKENT
│
└── другие города Казахстана
В перспективе можно создать единую цифровую базу урбанонимов Казахстана с картами разных городов.
Возможные дополнительные функции:
- аудиогид;
- маршруты по интересам;
- школьные экскурсии;
- игровые задания;
- достижения;
- мультиязычность;
- фотографии исторических мест;
- временная шкала изменения названий улиц;
- сравнение урбанонимов разных городов.
Educational / research project.
© QALA CODE