Skip to content

MolchanovDmitry/MapPointsReviews

Repository files navigation

Отзывы на карте

Проектная работа курса "Разработка прикладного ПО на Qt и ОС «Аврора»" на тему "Отзывы на карте".

Оглавление:

Демо

Обзор функционала

Экран карты

Приложение при создании добавляет мокнутые точки на карте в базу данных для симуляции получения данных из бека.

Функциональность:

  • Масштабирование.
  • Возможность перехода к собственному местоположению.
  • При долгом нажатии появится меню с возможность добавить собественную точку.
  • При нажатии на кнопку меню, можно перейти в экраны проверка позиционирования и информации о приложении.

Экран детализации

Если на экране карты нажать на один из маркеров, откроется окно детальной информации о точке. Экран позволяет оставить комментарий и рейтинг. Ретинг отображается в заголовке точки и вычисляется как средее арифметическое всех отзывов. Нельзя оставить пустой отзыв.

Экран добавления точки

На экране добавления точки необходимо ввести наименование, описание точки, а также реализована возможность добавления фотографий

Экран позиционирования

Экран проверки позиционирования позволяет проверить и вывести основные показатели позиционирования.

Экран о приложении

Показывает информацию приложении и ссылку на репозиторий github.

Структура проекта

  • data - слой источника данных
    • datasource - сами источники данных, где приложение получает необработанные данные.
    • model модель - источника данных
    • repositoryImpl - реализация интерфейса/контракта репозитория безнес логики.
  • domain - слой бизнес логики
    • usecase - пользовательские сценарии
    • model - бизнес модель
    • repository - интерфейс/контракт, с которым работают пользовательские сценарии
  • presentation - слой представления
    • handlers - обработчики нажатия на стороне UI.
    • model - модель представления, на изменение которой подписывается UI
    • ViewModel - связующее звено между бизнес логикой и UI
  • dependencyProvider - провайдер зависимостей для скрытия деталей инициализации.
  • stringProvider - провайдер строковых значений для использовании в бизнес логике.

Архитектура

Проект придерживается чистой архитектуры.

Слой бизнес логики:

  • В центре находится пользовательские сценарии(usecase). Пользовательские сценарии взаимодействуют интерфейсом репозитория.
  • Интерфейс открывает возможность менять модель бизнес логики.

Слой источника данных:

  • Реализация интерфейса репозитория взаимодействует с источниками данных.
  • Источники данных меняют модель текущего слоя.
  • При изменении модели источника данных происходит маппинг данных и изменение бизнес модели.

Слой представления:

  • В центре модель представления(viewmodel), которая взаимодействует с пользовательскими сценариями.
  • Модель представления подписывается на изменение бизнес модели с последующим маппингом данных.
  • При изменении модели представления, происходит обновление данных на стороне UI посредством стандартного механизма MVC.
  • Отношение UI и MainViewModel представленно в виде шаблона MVVM.