Больше, чем просто прогулка — PWA-приложение для интерактивных прогулочных маршрутов по Ростову-на-Дону с геймификацией, мультиплеером и социальными функциями.
Ростов GO мотивирует жителей и гостей города к пешим прогулкам, знакомству с историей и достопримечательностями через игровые механики. Приложение превращает обычную прогулку в приключение с GPS-навигацией, достижениями, соревнованиями и общением.
- GPS-навигация — интерактивные маршруты с чекпоинтами, аудиогидом и пошаговой навигацией на карте (MapLibre GL + OpenFreeMap)
- Геймификация — 30 достижений, система уровней, внутренняя валюта (монеты), магазин косметики (рамки, титулы, темы)
- Мультиплеер — лобби для совместных прогулок, гонки с подиумом, челленджи (дуэли) между игроками со ставками
- Чат — личные и групповые чаты с голосовыми сообщениями, реакциями, стикерами, пересылкой, закреплением
- Рекорды — таблица лучших времён на каждом маршруте, глобальный лидерборд
- Тепловая карта — визуализация активности пользователей на карте города
- Ролевая система — 19 пермишенов, кастомные роли (Discord-style), полная админ-панель
- PWA — оффлайн-режим, установка на домашний экран, кеширование карт и контента
| Технология | Назначение |
|---|---|
| Next.js 16 | Фреймворк (App Router, Turbopack) |
| React 19 | UI-библиотека |
| Tailwind CSS 4 | Стилизация + дизайн-система (CSS variables, glass UI) |
| MongoDB Atlas | База данных (13+ коллекций) |
| MapLibre GL JS | Карты (вектор, OpenFreeMap tiles) |
| Serwist 9 | PWA / Service Worker |
| JWT + bcrypt | Аутентификация (access + refresh tokens) |
| Resend | Отправка email (верификация, сброс пароля) |
| Yandex Cloud S3 | Медиа-хранилище |
| PM2 | Процесс-менеджер (production) |
- 22 700+ строк кода
- 138 API-эндпоинтов
- 83 React-компонента
- 20 кастомных хуков
- 24 утилитарных модуля
- 30 достижений
- 19 пермишенов в 8 группах
src/
├── app/
│ ├── api/ # 138 серверных API-эндпоинтов
│ ├── admin/ # 11 страниц админ-панели
│ ├── routes/ # Маршруты (список, детали)
│ ├── friends/ # Друзья и чаты
│ ├── shop/ # Магазин косметики
│ ├── heatmap/ # Тепловая карта
│ ├── about/ # О проекте
│ └── settings/ # Настройки
├── components/ # 83 UI-компонента
│ ├── chat/ # Чат-компоненты
│ └── home/ # Компоненты главной
├── hooks/ # 20 кастомных хуков
├── lib/ # Утилиты и бизнес-логика
└── data/ # Статические данные маршрутов
# Установка зависимостей
npm install
# Настройка окружения — создать .env.local с:
# MONGODB_URI, JWT_SECRET, RESEND_API_KEY, SUPERADMIN_EMAIL
# Режим разработки
npm run dev
# Production-сборка
npm run build && npm startПриложение развёрнуто на VDS с PM2:
ssh root@<server> "cd /var/www/walkmap && git pull origin main && npm run build && pm2 restart all"Разработано для конкурса им. Вернадского (Москва, 2026).