Інтернет-конференції НУБіП України, ТЕОРЕТИЧНІ ТА ПРИКЛАДНІ АСПЕКТИ РОЗРОБКИ КОМП’ЮТЕРНИХ СИСТЕМ '2020

Розмір шрифту: 
СИСТЕМА РЕЙТИНГУВАННЯ ГРОМАНДСЬХ МІСЦЬ
Валентин Мусієнко, Максим Погребівський

Остання редакція: 28-04-2020

Тези доповіді


УДК 004.9

СИСТЕМА РЕЙТИНГУВАННЯ ГРОМАНДСЬХ ОБ’ЄКТІВ

Мусієнко В.М., Погребівський М.В.,

науковий керівник Ткаченко О.М

На сьогоднішній день комунікація є однією з основних ланок суспільства. При великій кількості соціальних мереж та їй швидкого розвитку важливим є систематизування даних та їх поділ на певні категорії, для легкого та швидкого пошуку необхідної інформації.

Було вирішено створити систему для зручного доступу до тих місць, що відвідали певні групи користувачів, які надали тобі ж цей дозвіл. Отримати швидкий доступ до інформації про ці місця та відгуки про них, було б досить зручною та практичною функцією.

Для реалізації даного завдання було взято за основу аккаунти користувачів Google, що охоплює велику частку користувачів. З технічної точки зору, для реалізації проекту необхідно створити 2 частини ПЗ. Цими частинами є ‘front-end’ та ‘back-end’, в яких відповідно реалізовуватимуться інтерфейсна частина, та логіка роботи програмного продукту.

Важливим аспектом в даній програмі є розділ доступу до даних про відвідані та прокоментовані місця для користувачів. Буде можливим варіант з «повною відкритістю», де кожен користувач, за бажанням, зможе переглянути всі місця відвідані цією особою. Також важливе місце в унікальності ПЗ займає алгоритм рейтингування. Його особливість полягає в більшій точності рекомендації ніж в інших доступних сервісах. Алгоритм надає рекомендації персонально кожному користувачу, а його точність залежить від загальної активності усіх друзів користувача. Окрім звичайного сортування(за середнім значенням), буде присутнє відображення місць за ваговими коефіцієнтами, які вираховуватимуться від того, на стільки користувач оцінив своїх друзів у тому чи іншому аспекті. На рисунку 1 можна побачити діаграму прецедентів, що демонструє загальний функціонал роботи  ПЗ

 

Рис. 1. Діаграма прецедентів

Потенційною цільовою аудиторією даного програмного продукту є активні люди, що люблять ділитися своїми враженнями. Це складає близько половини користувачів смартфонів, що є більше 2 млрд. людей на планеті. Дане середовище допоможе комунікувати їм між собою без прямого спілкування чи переписки. Відмітивши свій похід до кафе чи спортзалу вони зроблять користь для інших, а інший зробить користь для них відмітивши класний музей чи театр. Програмний додаток дозволить швидко та безперебійно знаходити будь-яке місце та зробить комфортнішим життя кожного користувача.

Для створення проекту вибрані мови програмування такі як C#(back-end) та Java(front-end). ‘Back-end’ представляє собою серверну частину програмного забезпечення, а також за зв’язок з базою даних. Сама ж БД розроблена на MS SQL Server, а запити на обробка даних буде реалізована за допомогою нових технологій в .NET Core[1], а саме Entity Framework[2] та LINQ. Це реалізовуватиметься в середовищі Visual Studio, в якому зручно працювати з сервером даних, та робити тестування системи.

Розміщення усіх ‘back-end’ сервісів відбувається в хмарному середовищі Microsoft Azure, що дає змогу швидко адмініструвати всю архітектуру проекту, а також проводити аналіз за такими аспектами як:

  • Швидкість відповіді сервера
  • Ціноутворення
  • Дебаг
  • Трафік даних

Дане хмарне середовище надає змогу розміщувати в ньому сотні різних сервісів. Для проекту знадобилося 3 основні:

  • Служба додатків
  • SQL Server
  • Сховище файлів

З Visual Studio ‘back-end’ синхронізується з GitHub, який в свою чергу синхронізується зі Службою додатків в хмарі, таким чином відбувається технічне оновлення додатку.

Для розробки Front-end було вибрано Android Studio — інтегроване середовище розробки (IDE), так як являється офіційним середовищем розробки Android додатків від компанії Google. Вибір мови програмування стояв між Java та Kotlin, так як вони позиціонуються Google, як офіційні мови програмування під Android. Але оскільки Kotlin був представлений зовсім нещодавно, в травні 2017 року вибір пав на Java, тому що для нього існує значно більше прикладів, уроків, та бібліотек які допоможуть в розробці.

Для роботи з картою, та об’єктами на ній було вибрано Google Maps Platform[3]. Для роботи нашого мобільного додатку нам потрібно отримувати, геодані користувачів, та відображати карту місцевості. Один з варіантів це використовувати готове рішення, а саме Google Maps API[4]. Також для роботи з об’єктами на карті такими як: кафе, ресторани, парки і тд. буде використовуватися  Google Places API.

Більшість великих компаній на певному етапі розробляють API для клієнтів або для внутрішнього використання. API визначає функціональність, яку надає програма (модуль, бібліотека), при цьому API дозволяє абстрагуватися від того, як саме ця функціональність реалізована.

Спілкування з сервером відбувається по HTTPS-протоколу, за допомогою GET та POST запитів. Для обміну даними використовується текстовий формат JSON, не дивлячись на те, що він походить від JavaScript, формат вважається незалежним та може використовуватись практично з будь-якою мовою програмування.

У цьому столітті користуються попитом додатки, які уособлюють в собі велику кількість користувачів. Людина не використовувала б Instagram чи TikTok, якби її друзі також не мали б там аккаунтів. Тому створення такого додатку є актуальним завданням на сьогодні, а велика кількість користувачів створюватиме ще більший приріст завантаження цього соціально-орієнтованого програмного забезпечення.

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ:

  1. Документация по  Azure: веб-сайт. URL: https://docs.microsoft.com/ru-ru/azure/?product=featured (дата звернення: 01.04.2020).
  2. Entity Framework documentation: веб-сайт. URL: https://docs.microsoft.com/en-us/ef/ (дата звернення: 01.02.2019).
  3. Google Maps Platform Documentation: веб-сайт. URL: https://cloud.google.com/maps-platform/ (дата звернення: 28.11.2019).
  4. Google Maps SDK for Android: веб-сайт. URL:

https://developers.google.com/maps/documentation/android-sdk/intro (дата звернення: 29.11.2019).