RunQuest - это инновационное мобильное приложение для бегунов, объединяющее GPS-трекинг, геймификацию и социальные функции. Приложение помогает пользователям отслеживать свои пробежки, участвовать в гонках, выполнять челленджи и взаимодействовать с друзьями.
- GPS-трекинг - точное отслеживание маршрутов пробежек
- Интерактивные карты - визуализация маршрутов с использованием Flutter Map
- Геймификация - система уровней, опыта и достижений
- Челленджи - еженедельные и месячные вызовы
- Гонки - участие в предопределенных трассах с лидербордами
- Социальные функции - друзья, лента активности, совместные пробежки
- Статистика - детальная аналитика пробежек и прогресса
- RESTful API - полный набор эндпоинтов для всех функций
- JWT аутентификация - безопасная система входа
- PostGIS интеграция - работа с геопространственными данными
- Геймификация - система достижений и челленджей
- Социальные функции - управление друзьями и активностью
- Swagger документация - автоматическая документация API
- Flutter 3.3+ - кроссплатформенная разработка
- Dart - язык программирования
- flutter_map - интерактивные карты
- geolocator - GPS и геолокация
- dio - HTTP клиент для API
- provider - управление состоянием
- flutter_secure_storage - безопасное хранение токенов
- Django 4.2+ - веб-фреймворк
- Django REST Framework - API фреймворк
- PostgreSQL + PostGIS - база данных с геопространственными возможностями
- GeoDjango - работа с геоданными
- JWT - аутентификация
- Swagger/ReDoc - документация API
- Shapely - работа с геометрией
- Pillow - обработка изображений
- CORS - кросс-доменные запросы
RunQuest/
├── frontend/ # Flutter приложение
│ ├── lib/
│ │ ├── main.dart # Точка входа
│ │ ├── models/ # Модели данных
│ │ ├── screens/ # Экраны приложения
│ │ └── services/ # API сервисы
│ ├── static/ # Статические ресурсы
│ └── pubspec.yaml # Зависимости Flutter
├── backend/ # Django API
│ ├── backend/ # Настройки Django
│ ├── core/ # Основное приложение
│ │ ├── models.py # Модели базы данных
│ │ ├── views.py # API представления
│ │ ├── serializers.py # Сериализаторы
│ │ └── urls.py # URL маршруты
│ └── requirements.txt # Python зависимости
├── Documentation/ # Документация проекта
└── README.md # Этот файл
- Flutter SDK 3.3+
- Python 3.8+
- PostgreSQL 12+ с расширением PostGIS
- Git
- Клонирование репозитория
git clone <repository-url>
cd RunQuest- Создание виртуального окружения
cd backend
python -m venv .venv
.venv\Scripts\activate # Windows
# или
source .venv/bin/activate # Linux/Mac- Установка зависимостей
pip install -r requirements.txt- Настройка базы данных
# Создайте базу данных PostgreSQL с PostGIS
# Обновите настройки в backend/settings.py
python manage.py migrate
python manage.py createsuperuser- Запуск сервера
python manage.py runserver
# или используйте start_backend.bat- Установка Flutter зависимостей
cd frontend
flutter pub get- Запуск приложения
flutter run
# или используйте start_frontend.batПосле запуска backend сервера, документация API доступна по адресам:
- Swagger UI:
http://localhost:8000/swagger/ - ReDoc:
http://localhost:8000/redoc/
POST /api/register/- регистрация пользователяPOST /api/token/- получение JWT токенаGET /api/profile/- профиль пользователяPOST /api/runs/- создание пробежкиGET /api/race-tracks/- список гонокGET /api/achievements/- достиженияGET /api/challenges/- челленджи
- Точное отслеживание маршрута в реальном времени
- Сохранение геометрии маршрута в PostGIS
- Расчет дистанции и времени
- Система уровней - прогрессия от 1 до 100 уровня
- Опыт - начисление за пробежки, гонки и достижения
- Достижения - разблокировка за различные цели
- Челленджи - еженедельные и месячные вызовы
- Друзья - система запросов и принятия
- Лента активности - новости от друзей
- Совместные пробежки - планирование групповых тренировок
- Лидерборды - рейтинги по гонкам
- Предопределенные трассы - готовые маршруты для гонок
- Сравнение маршрутов - анализ точности прохождения
- Рекорды - лучшие результаты по трассам
Основные настройки находятся в backend/backend/settings.py:
- База данных PostgreSQL
- CORS настройки
- JWT конфигурация
- PostGIS настройки
- API базовый URL в сервисах
- Настройки карт в
flutter_map - Тема приложения в
main.dart
Скриншоты приложения будут добавлены в раздел screenshots/
- Форкните репозиторий
- Создайте ветку для новой функции (
git checkout -b feature/AmazingFeature) - Зафиксируйте изменения (
git commit -m 'Add some AmazingFeature') - Отправьте в ветку (
git push origin feature/AmazingFeature) - Откройте Pull Request
Этот проект создан в образовательных целях как портфолио. Все права защищены.
Азиз Мухаммадиев - Разработчик мобильных приложений
- Flutter команде за отличный фреймворк
- Django сообществу за мощный веб-фреймворк
- PostGIS проекту за геопространственные возможности
- Всем open-source библиотекам, использованным в проекте
RunQuest - где каждая пробежка становится приключением! 🏃♂️✨