Skip to content

ilushkaDushni/walkmap

Repository files navigation

Ростов GO

Больше, чем просто прогулка — 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).

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors