РОЗРОБКА ВЕБЗАСТОСУНКУ ДЛЯ ОНЛАЙНОВОГО ЗАМОВЛЕННЯ ПІЦИ З ВИКОРИСТАННЯМ BEAUTIFUL SOUP та STREAMLIT
01.04.2022 21:36
[1. Information systems and technologies]
Author: Галів Андрій Віталійович, магістрант, Львівський Національний Університет імені Івана Франка, Львів
Для забезпечення інформаційних потреб та надання електронних послуг населенню програмістами постійно розробляються автоматизовані онлайнові сервіси. Ми використовуємо такі сервіси практично щодня. Вони заощаджують час та автоматизують трудомісткі завдання. Основним елементом більшості таких сервісів є пошукові роботи, які задовольняють попит користувачів максимально релевантною інформацією. Вебпрограмування сьогодні — це одна з нaйбільш пeрспективних сфeр діяльності — якщо у бiзнесу нeмає влaсного сайту, то він апріорі відстає від свoїх конкурентів.
У цій роботі на мові Python 3 розроблено прототип односторінкового вебзастосуноку для онлайнового замовлення якомога дешевшої піци за вказаними користувачем інгредієнтами. Для розробки інтерфейсу користувача обрано бібліотеку Streamlit [1], а модуль вебскрапінгу реалізований з використанням бібліотеки Beautiful Soup [2].
Вибір на Beautiful Soup впав через її простоту та лаконічність інструкцій для вийняття даних з HTML- і XML-файлів. Пропоновані бібліотекою способи навігації, пошуку та зміни дерева аналізу економлять розробникам програмного забезпечення години або дні роботи.
Оскільки наш прототип позиціонується як ad hoc застосунок, а не розрахований на широке мультикористувацьке впровадження, то було прийнято рішення на користь бібліотеки Streamlit, яка, порівняно з громіздким фреймворком Django чи мікрофреймворком Flask краще підходить для таких вузькоспеціалізованих програмних продуктів. Використання Streamlit дає змогу навіть програмістам-початківцям відносно легко створювати якісні функціональні вебзастосунки, у тому числі для обробки даних. Streamlit виконає рутинну роботу зі створення та компонування вебелементів, даючи змогу зосередитися тільки на роботі з даними [3].
Вхідними параметрами для роботи вебскрапера є інгредієнти. У проєкті реалізовано зручний функціонал, який дає користувачам як замовникам піци змогу обирати як бажані, так і небажані інгредієнти. Після вибору буде знайдено (наразі реалізовано пошук по трьох львівських піцеріях PandaPizza, SmakiMaki та Pizzaletta) піци, які задовольняють вхідні параметри, та запропоновано найвигідніший за ціною варіант для замовлення із відповідним посиланням (див. рис.1).
Рисунок 1. Інтерфейс застосунку з вхідними даними та результатом виконання
Якщо існує декілька варіантів за однаковою ціною, то будуть відображені усі. Також передбачена ситуація, коли користувач не захоче вказувати інгредієнти. На такий випадок програма просто підбере найвигідніший варіант серед усіх піц трьох сайтів названих вище.
Сьогодні досить часто користувачі хочуть зробити повторне замовлення. З метою зберегти час користувачу реалізовано можливість переглянути попереднє замовлення, або ж переглянути замовлення за певну дату. Усі пункти головного меню вебзастосунку зображено на рис. 2.
Рисунок 2. Головне меню застосунку
Розроблений вебзастосунок з інтегрованим модулем вебскрапінгу забезпечує зручний у користуванні інтерфейс для замовлення піци, не виходячи з дому. На відміну від багатьох існуючих подібних додатків (зазвичай, ботів у месенджерах), він здійснює пошук по низці піцерій, а також дає змогу виключити деякі інгредієнти (що робить його корисним, наприклад, для алергіків). Його поточну версію можна використовувати для пошуку найвигіднішого за ціною замовлення піци з вказаними інгредієнтами серед трьох онлайнових сервісів м. Львів. У майбутньому застосунок може стати складовою пошукових сервісів більших проєктів.
Література
1. Streamlit documentation [Electronic resource]. – Available from : https://docs.streamlit.io/
2. Beautiful Soup Documentation [Electronic resource]. – Available from : https://www.crummy.com/software/BeautifulSoup/bs4/doc/
3. Streamlit review and demo: best of the Python data app tools - (May 12, 2021) [Electronic resource]. – Available from : https://www.crosstab.io/articles/streamlit-review
______________________
Науковий керівник: Селіверстов Роман Григорович; к. ф.-м.н; доцент, Львівський Національний Університет імені Івана Франка