Приложение MyPlace - это сообщество, пользователи которого могут советовать друг другу понравившиеся им места города. Это могут быть кафе с приятной атмосферой, отели с красивым интерьером, и в целом все, что вам понравилось, нужно только этим поделиться!
Чтобы начать работу с приложением, нужно создать профиль - придумать уникальный
никнейм и пароль. Если профиль уже создан, можно зайти по этим данным.
Чтобы создать метку (то есть отметить место, которым вы хотите поделиться),
нужно дважды кликнуть на карту там, где находится заведение, и заполнить
остальные поля - название, тип заведения (например, кинотеатр или ночной клуб)
и краткое описание.
После создания своей метки и нажатия на кнопки Update, метка появится в
списке справа и на карте. Чтобы посмотреть, дважды кликните на ее значек
на карте или в списке.
В поисковой строке сверху можно вписать имя пользователя, чтобы посмотреть
информацию о нем - количество его меток и подписок (если такого пользователя
нет, приложение об этом сообщит). Также, вы можете посмотреть информацию
о своем профиле - круглый значок справа.
Если вы еще не подписаны на пользователя, с помощью кнопки Subscribe можно на него подписаться, теперь на вашей карте и в списке будут отображаться его метки.
На карте и в списке отображаются метки всех пользователей, на которых вы
подписаны. Посмотреть их можно так же, как и свои - двойным щелчком по
значку метки или в списке.
Слева так же находится список ваших подписок, информацию о которых можно
посмотреть, дважды кликнув на никнейм. Чтобы посмотреть список, нужно
нажать на Subscribes.
Весь интерфейс реализован с помощью приложения QT. Карта реализована с помощью QML (плагин OSM).
Многопоточный сервер написан на библиотеке Boost Asio. Под каждый запрос от клиента создается поток, для предотвращения Data Race используются мьютексы. Все данные хранятся на сервере (в файле), у клиента сохраняется лишь кэш загруженных меток и никнеймов его подписок (в оперативной памяти).
Для установки необходимо склонировать репозиторий, а так же убедиться, что установлены cmake, QT, Boost Asio и необходимые для QT компиляторы.
Ментор: Ильговский Роман (@ZeDRoman) Создатели: Ву Евгения (@J3ne4ek) и Сороковикова Александра (@AleksandraSorokovikova)