Джон часто бачив, як батько звертався до сусіда по допомогу. Він задумався, чому не було інших сусідів, які могли б допомогти, якщо виникали інші проблеми. Це зародило в ньому ідею, що з часом стала основою для створення 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% наявних користувачів платформою.
Команда проєкту:
- Олександр А. Арбузов
Project Manager
- Тетяна
Designer
- Павло Попов
Backend Developer
- Антон
Tech Lead Mobile
- Андрій
Android Developer
- Олександр Ф.
IOS Developer
- Олександра Бітюк
QA Engineer
- Євген
DevOps
Інші наші проєкти
Busfor
Розробка додатків Android та iOS для сервісу з продажу автобусних квитків, Україна
The Hump
Сервіс перевезення багажу, Саудівська Аравія
Додаток для спрощення обміну посилками
Проект під NDAs, США