Skip to content

GrimStack-Education/hobbyHub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

121 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HobbyHub

Мобильная социальная платформа для поиска людей, сообществ и событий по интересам

Flutter Dart Firebase


Содержание


О проекте

Проблема: Социальная изоляция и разрозненность локальных сообществ

Людям сложно находить единомышленников рядом, организовывать совместные активности и поддерживать живое комьюнити по интересам в одном удобном пространстве.

Решение: HobbyHub

HobbyHub — мобильное Flutter-приложение для поиска людей, сообществ и событий по интересам. В текущей реализации есть полный пользовательский путь: авторизация и онбординг, лента и поиск, карта, создание событий, сообщества, чаты, уведомления, профиль и настройки, а также модерация и отзывы.

Проект использует Firebase как backend-платформу: Auth, Firestore, Storage, Messaging и Analytics.

Текущие сценарии

  • Email / Google / Facebook вход и создание профиля.
  • Онбординг с возрастом, интересами и геолокацией.
  • Главная лента с событиями и быстрый переход в карту и поиск.
  • Поиск по интересам и категориям.
  • Создание событий и сообществ.
  • Чаты и непрочитанные сообщения.
  • Отзывы на события и экраны модерации.
  • Уведомления, профиль, редактирование профиля и настройки.

Технологический стек

Категория Технологии Версия / Детали
Mobile App Flutter, Dart, Material 3 Flutter 3.41.1, Dart 3.11.0
State & Navigation Riverpod, Go Router, GetIt flutter_riverpod 2.6, go_router 14.6
Backend Platform Firebase Auth, Firestore, Storage, Messaging, Analytics Firebase SDK для Flutter
Geo & Maps Google Maps Flutter, Geolocator, Geocoding Поиск и отображение активностей на карте
Data & Utils Freezed, JSON Serializable, Hive, Dio Модели, сериализация, локальный кэш, сеть

Архитектура

flowchart LR
	subgraph Client["Клиент"]
		User["Пользователь"]
	end

	subgraph App["Mobile App (Flutter)"]
		UI["UI Screens"]
		State["Riverpod State"]
		Router["Go Router"]
		UI --> State
		State --> Router
	end

	subgraph Services["Application Services"]
		AuthSvc["Auth Service"]
		FirestoreSvc["Firestore Service"]
		StorageSvc["Storage Service"]
		MessagingSvc["Messaging Service"]
	end

	subgraph Firebase["Firebase"]
		Auth[("Authentication")]
		DB[("Cloud Firestore")]
		Files[("Cloud Storage")]
		Push[("FCM")]
		Analytics[("Analytics")]
	end

	subgraph External["External APIs"]
		Maps["Google Maps API"]
		Geo["Geolocation APIs"]
	end

	User --> UI
	State --> AuthSvc
	State --> FirestoreSvc
	State --> StorageSvc
	State --> MessagingSvc
	AuthSvc --> Auth
	FirestoreSvc --> DB
	StorageSvc --> Files
	MessagingSvc --> Push
	State --> Analytics
	UI --> Maps
	UI --> Geo
Loading

Быстрый старт

Требования

Компонент Минимум Рекомендуется
Flutter SDK 3.0+ Latest stable
Dart SDK 3.0+ 3.11+
Xcode (iOS) 15+ Latest
Android Studio / SDK API 24+ Latest
Firebase CLI 13+ Latest

Клонирование репозитория

git clone https://github.com/Zero-Logic-Education/HobbyHub.git

cd hobby_hub

Настройки по умолчанию

  • Flutter-приложение находится в директории apps/
  • Firebase-конфиги и правила находятся в infrastructure/firebase/
  • Конфигурация платформы для приложения: apps/lib/firebase_options.dart
  • Android Firebase config: apps/android/app/google-services.json

3. Запуск приложения

# перейти в приложение
cd apps

# установить зависимости
flutter pub get

# запустить на выбранном устройстве/эмуляторе
flutter run

# быстрый запуск после первого pub get
flutter run --no-pub

Команды

App (Flutter)

# Перейти в директорию приложения
cd apps

# Установка зависимостей
flutter pub get

# Запуск приложения
flutter run

# Быстрый debug-запуск после первого flutter pub get
flutter run --no-pub

# Статический анализ
flutter analyze

# Тесты
flutter test

# Codegen для моделей (Freezed / JSON)
flutter pub run build_runner build --delete-conflicting-outputs

# Сборка Android APK
flutter build apk --release

# Debug-сборка Android через Gradle
cd android && ./gradlew :app:assembleDebug

# Сборка iOS
flutter build ios --release

# Очистка артефактов
flutter clean

Infrastructure (Firebase)

# Перейти в инфраструктурную директорию
cd infrastructure/firebase

# Проверка Firestore правил локально (через эмулятор)
firebase emulators:start --only firestore

# Деплой Firestore правил
firebase deploy --only firestore:rules

# Деплой Firestore индексов
firebase deploy --only firestore:indexes

# Деплой Storage правил
firebase deploy --only storage

Документация

About

HobbyHub — кроссплатформенное Flutter‑приложение для поиска единомышленников по хобби, создания и организации встреч с удобной картой, профилем и системой аутентификации

Topics

Resources

License

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages