VolEver: Platforma, která pomáhá lidem pomáhat

Případová studie vývoje multiplatformní aplikace propojující dobrovolníky s uprchlíky pomocí frameworku Flutter

Logo aplikace

Požadavek

Přání klienta

Klient se na nás obrátil s žádostí o vývoj multiplatformní mobilní aplikace, která by umožňovala propojování dobrovolníků a jejich klientů za účelem poskytování bezplatné právní pomoci. Aplikace je spuštěna v několika evropských zemíchpodporuje různé jazyky (čeština, ruština, ukrajinština, litevština, slovinština, ...).

Specifikem aplikace bylo její sdílení několika partnerskými organizacemi. Každá organizace měla spravovat uživatele a obsah v dané zemi (schvalování zakázek, registrace, propojení dobrovolníků s klienty, …).

Důležitým požadavkem při vývoji byla bezpečnost komunikace mezi uživateli a ochrana před zneužitím systému. Klient si dále přál zjednodušit prověřování uživatelů – po registraci měla být k dispozici jen omezená funkcionalita aplikace a nové registrace měly být schvalovány adminem pro danou zemi na základě poskytnutých údajů.

Problém 

Na jaké výzvy a překážky jsme při vývoji narazili tentokrát?

První zkouškou pro naše vývojáře bylo nastavení práv na několika úrovních (superadmin, manažer země, manažer regionu, dobrovolník, prověřený dobrovolník, klient). Aplikace je navíc mezinárodní a sdružuje několik národních organizací, což znamenalo další komplikace při návrhu efektivní architektury.

Dále jsme museli přijít na způsob, jak v aplikaci zadávat termíny schůzek, na nichž se dobrovolníci mohou po propojení dohodnout s klienty pomocí real-time chatu.

Potenciální riziko pro chod aplikace představují trollové (uživatelé, kteří chtějí chod platformy narušit). Museli jsme se tedy zamyslet nad tím, jak zneužití platformy předejít a ochránit ji proti nežádoucímu chování.

Velký důraz byl ze strany klienta kladen také na vysokou přizpůsobitelnost, uživatelskou přívětivost a jednoduché ovládání. Aplikace měla být jednoduchá na používání, přehledná a intuitivní.

Řešení

Jak jsme si s překážkami při vývoji poradili?

 Proti útokům trollů jsme systém ochránili implementací reCaptchy a vícefázového ověření. Každá žádost o registraci nového uživatele navíc vyžaduje ruční schválení administrátory.

Vysokým požadavkům klienta na hladký uživatelský zážitek jsme dostáli díky důkladnému UX návrhu. Aplikaci jsme sladili do jednotného, pozitivního stylu a proces registrace jsme zefektivnili pomocí funkcí onboardingu.

Co všechno systém obsahuje?

  • Několik možností registrace a přihlášení (e-mail a heslo, telefon, účty na sociálních sítích)
  • Automatické rozpoznání polohy uživatele a následné přiřazení k odpovídající dobrovolnické organizaci podle regionu
  • Možnost označení „prověřených“ uživatelů, kteří nevyžadují schválení administrátora pro propojení
  • Hodnocení schůzek a zakázek po dokončení
  • Filtrování zakázek podle lokality a typu; možnost označení oblíbených zakázek
  • Archivace obsahu (zakázky, schůzky, chat, …)
  • Chat v reálném čase s možností odesílání příloh a propisování schůzek přímo v chatu
  • Upozornění ohledně stavu zakázky, schůzky, nové zprávy apod.
  • Možnost zasílat upozornění konkrétním uživatelům či skupinám uživatelů
  • Správa uživatelů a obsahu v aplikaci (účty a profily, typy pomoci a jejich podmínky, zakázky)
  • Správa dokumentů (podmínky účasti, zásady ochrany osobních údajů, etický kodex dobrovolníka)
  • Administrační rozhraní umožňující export dat pro statistické účely
  • Administrace s podporou více jazyků

Klient

Organizace pro pomoc uprchlíkům (OPU)

  • nezisková, nevládní a humanitární organizace zaměřená na pomoc uprchlíkům v České republice
  • poskytuje bezplatné právní a sociální poradenství, zajišťuje edukační programy, pomáhá s integrací cizinců do společnosti
  • pracuje zejména s uprchlíky ze zemí mimo EU, bez ohledu na pohlaví, věk a pobytový status

 www.opu.cz

Časová náročnost

  • Analýza nám trvala 2 měsíce

  • Na vlastní vývoj jsme potřebovali 3 měsíce

Hlavní přínos

To nejlepší na aplikaci

  • Jednodušší a rychlejší onboarding nových dobrovolníků/klientů: Sběr dat při registraci urychluje propojení dobrovolníků s klienty.
  • Přehledné a intuitivní rozhraní: Uživatelé hledající/nabízející pomoc v určitém regionu si mohou zobrazit dostupné možnosti podle polohy, což zvyšuje motivaci k dobrovolnictví a posiluje samostatnost klientů.
  • Podklady pro přípravu reportů
  • Nižší administrativní zátěž pracovníků OPU: Aplikace výrazně ulevila zaměstnancům neziskové organizace OPU, kteří se nyní přímo podílejí pouze na dozoru a schvalování. Vše ostatní si klienti a dobrovolníci zvládnou v aplikaci vyřídit sami.

Reference klienta

„Hledali jsme kvalitního partnera pro vývoj naší mobilní aplikace, kterou jsme již měli navrženou a uživatelsky otestovanou. Velkou roli pro nás hrál čas i rozumné peníze, v neposlední řadě jsem však také očekával bezproblémovou a především lidskou komunikaci, bez zbytečných a složitých technických popisů a výrazů. S Think Easy to celé klaplo, za což jsem nesmírně rád a nejen, že je beru jako našeho partnera v rámci další technické údržby aplikace, rád s nimi budu pracovat i na dalších projektech, kde budu potřebovat zastřešit vývoj!“

Vitaly Macnev

Platformy

Co jsme při vývoji použili

VolEver je multiplatformní aplikace napsaná ve Flutteru. Používá BLoC/Cubit pro state management, GoRouter pro navigaci a GetIt pro dependency injection. Pro komunikaci s backendem využívá Dio, pro push notifikace Firebase Messaging.

Aplikace je postavená na offline-first architektuře s lokální SQLite databází přes Drift pro ukládání chatů, zpráv a nabídek/žádostí. Komunikace v reálném čase je možná díky integraci WebSocket přes AWS API Gateway. Modely a stavy jsou generovány pomocí služby Freezed.

Aplikace podporuje více jazyků, obsahuje Google Sign In a Apple Sign In pro autentizaci a reCAPTCHA Enterprise pro ochranu před boty. Aplikace běží na platformách iOSAndroid.

Náhled aplikace

Co dál?

Vzhledem ke spokojenosti klienta s výsledkem budeme na systému pracovat i nadále. V současnosti zvažujeme rozšíření o webovou verzi a administraci na míru. To by pomohlo zpřístupnit platformu širšímu okruhu uživatelů a zjednodušit správu obsahu. Dalšími potenciálními přínosy by byly lepší škálovatelnost a efektivnější provoz.