EN RU
Напишіть нам
Наступний

TaskRunner app — онлайн-платформа для замовлення послуг

Індустрія Послуги
Розташування Швеція
Розробка 2019 до сьогодні

Джон часто бачив, як батько звертався до сусіда по допомогу. Він задумався, чому не було інших сусідів, які могли б допомогти, якщо виникали інші проблеми. Це зародило в ньому ідею, що з часом стала основою для створення TaskRunner.

Завдання

TaskRunner — це онлайн-платформа для замовлення послуг. У системі є дві основні ролі: Runner / Виконавець і Poster / Замовник (послуг). Замовники створюють завдання з описом того, що необхідно зробити, і публікують його на платформі TaskRunner. Виконавці надсилають заявки на виконання завдання, Замовник обирає виконавця і вносить оплату за роботу. Після того, як Замовник і Виконавець підтверджують завершення завдання, останній отримує оплату. Також передбачена адміністративна роль для управління і контролю системи.

Платформа TaskRunner складається з:

  • Мобільного застосунку для Замовників (для платформ Android або iOS)
  • Мобільний додаток для Виконавця (на платформах Android або iOS)
  • Панель адміністратора (веб)

— — Ми використали підхід, коли для двох різних додатків загальна бізнес-логіка міститься в єдиному модулі. Це дозволило прискорити розробку і спростити підтримку додатків у майбутньому.

Антон Бевза, Android розробник

Рішення

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

Backend був реалізований на платформі ASP.NET, як СУБД використовувався Microsoft SQL Server. У зв’язку з високими вимогами даних продуктів до ресурсів, загальна продуктивність системи була низькою. Крім того, — високі експлуатаційні витрати продуктів Microsoft. Було прийнято рішення нову систему розробляти на платформі Symfony, і використовувати PostgreSQL як СУБД. Ми написали кілька додаткових утиліт для перенесення даних з Microsoft SQL Server на PostgreSQL.

Старі мобільні додатки були реалізовані за допомогою технологій Cordova і React. Оскільки головними вимогами до нових додатків були стабільність і швидкість роботи, наші фахівці вирішили розробити нативні iOS і Android програми.

Технології

Backend реалізує REST API для обміну даними з клієнтськими мобільними додатками, інтегрований з декількома зовнішніми сервісами для виконання операцій з оплати замовлень, відправки email, SMS і PUSH-повідомлень. Робота в середовищі Kubernetes підвищує надійність і стійкість до відмов серверної частини продукту і системи в цілому.

Android додатки дотримуються принципів Clean Architecture. Проєкт розділений на чотири незалежні модулі: Poster, Runner, Domain, Data. Domain і Data модулі спільні для додатків Замовника і Виконавця. Це дозволило уникнути дублювання подібної бізнес-логіки в обох додатках. В результаті це значно скоротило час розробки.

У версії iOS ми використали архітектуру як на Android, 4 модуля: Domain, Data, Runner Presentation і Poster Presentation. Для прив’язки даних ми застосували RxSwift, оскільки для шару Presentation була використана архітектура MVVM. Для ініціалізації нових модулів Swinject, ми використали бібліотеку Dependency Injection. Це значно спрощує їх створення та повторне використання.

Для систем подібного типу важливо аналізувати дії користувачів. Для цього ми інтегрували два сервіси збору аналітики — AppsFlyer і Segment.
Також для забезпечення зворотного зв’язку та реалізації можливості користувачам звернутися до технічної підтримки і отримати миттєву відповідь безпосередньо в програмі, ми інтегрували сервіс Intercom.

Результат

Ми змінили з нуля всі компоненти системи, покращили стабільність, швидкість і зручність роботи з додатками і адміністративною панеллю. В той же час, ми зберегли 100% наявних користувачів платформою.

Над проєктом працювали:

  • Александр Арбузов
    Александр Арбузов

    Проектный менеджер

  • Павел Попов
    Павел Попов

    Backend разработчик

  • Антон Бевза
    Антон Бевза

    Руководитель отдела Mobile

  • Андрей Жумела
    Андрей Жумела

    Android разработчик

  • Александр Франков
    Александр Франков

    IOS разработчик

  • Александра Битюк
    Александра Битюк

    Руководитель отдела QA

  • Евгений Гуринович
    Евгений Гуринович

    Руководитель отдела DevOps

Приклади розробки веб-сайтів

  • IsDocIn

    IsDocIn

    Android и iOS-приложение для поиска врача

  • Student Challenges App

    Student Challenges App

    Мобильное приложение для студентов в США

  • Строитель

    Строитель

    Строитель: приложение для аренды спецтехники по запросу