Мобильность, практичность и экологичность стали важнейшими качествами XXI века. Они ценятся не только в человеке, но и в окружающих его предметах. Люди выбирают скорость, простоту, комфорт. Этим объясняется нарастающий тренд на ультрасовременные гаджеты, такие как электросамокаты.
Основной задачей и темой данного диплома стала разработка веб-сервера для приложения кикшеринговой компании.
Приложение аренды самокатов представляет из себя пользовательский интерфейс и логику, скрытую за ним. Эта логика и реализуется посредством веб-сервера. Веб-сервер - это “мозг” приложения, на сервере выполняются все взаимодействие между самокатами, пользователем и внешними сервисами, именно поэтому реализация данной важнейшей части приложения стала темой этой дипломной работы.
Подобные сервисы уже существуют по всему миру, в том числе и в России. Наибольшую долю рынка занимают сервисы от Яндекса и Whoosh. Эти сервисы представляют из себя сложные приложения с точки зрения разработки, и подобные решения не представлены в открытом доступе, поэтому в данной работе все было реализовано с нуля.
При таком подходе возникает множество вопросов и проблем с реализацией того или иного функционала, что и формирует задачи проекта. Разрабатывая большое приложение с нуля, нужно учесть много факторов и нюансов, чтобы финальный продукт работал стабильно, эффективно и решал поставленную задачу.
Так как исходный код существующих сервисов не представлен в открытом доступе, важно обратить внимание на устройство этих сервисов хотя бы со стороны пользователя и использовать удачные решения и подходы, а также учесть чужие недо статки и стремиться сделать свой сервис лучше.
Марокко - одно из самых развитых государств Африки. Я гражданин этой страны, а сервис краткосрочной аренды электросамокатов - мой стартап. Запуск проекта запланирован в Касабланке, в самом крупном городе королевства.
Для жителей Касабланки самокаты станут неотъемлемой частью повседневной жизни, так как инфраструктура города и погодные условия позволяют пользоваться ими круглый год. В то же время, в стране слабо развиты технологии и запуск такого масштабного проекта определенно ускорит ее развитие.
Именно поэтому в данной работе были приложены все усилия, чтобы создать правильный с точки зрения разработки продукт, а именно, его главную функциональную часть, отвечающую за стабильную и быструю работу - веб-сервер приложения.
В ходе работы над проектом были достигнуты следующие результаты.
• Произведен анализ аналогичных сервисов: Woosh, Яндекс. Выявлены их преимущества и недостатки.
• Разработаны требования к системе.
• Разработана архитектура приложения. Выбран архитектурный стиль и построена полноценная микросервисная архитектура, включающая в себя следующие сервисы:
о Gateway,
о сервис генерации паролей,
о сервис контроля самокатов,
о сервис отображения свободных самокатов,
о сервис контроля заказов,
о сервис аутентификации и авторизации,
о RabbitMQ.
• Реализована работа веб-сервера с применением выбранной архитектуры и современных подходов, а также были реализованы следующие сценарии использования:
-о добавление новых самокатов в систему,
-о по становка самокатов на зарядку,
-о начало и окончание аренды самоката.
[1] Самокаты Яндекс. URL: https://go.yandex/ru ru/lp/rides/scooter
[2] Самокаты Whoosh. URL: https://whoosh-bike.ru/contacts
[3] Юрент. URL: https://urent.ru/
[4] Lime. URL: https://www.li.me/
[5] SK.RU. “Whoosh привлек от инвесторов $25 млн” URL: https://sk.ru/news/rossiyskiy-servis-arendy-elektrosamokatov-whoosh-privlek-ot-investorov-25-mln/
[6] Openiddict. URL: https://github.com/openiddict/openiddict-core
[7] PostgreSQL. URL: https://www.postgresql.org/
[8] EntityFramework Core. URL: https://learn.microsoft.com/en-us/ef/core/
[9] RabbitMQ. URL: https://www.rabbitmq.com/
[10] Docker. URL: https://www.docker.com/
[11] Docker-Compose. URL: https://docs.docker.com/compose/
[12] Docker-Image. URL: https://hub.docker.com/
[13] Ionescu V. M. The analysis of the performance of RabbitMQ and ActiveMQ //2015 14th RoEduNet International Conference-Networking in Education and Research (RoEduNet NER). - IEEE, 2015. - С. 132-137.
[14] Hong X. J., Yang H. S., Kim Y. H. Performance analysis of RESTful API and RabbitMQ for microservice web application //2018 International Conference on Information and Communication Technology Convergence (ICTC). - IEEE, 2018. - С. 257-259.
[15] Eriksson H. E. et al. UML 2 toolkit. - John Wiley & Sons, 2003...(18)