Az MVP kijelölése. A munkát azzal kezdtük, hogy a Quica kétnyelvű termékleírását becsült backloggá alakítottuk az Azure DevOpsban, minden epichez optimista, legvalószínűbb és pesszimista becsléssel. A Quicával közösen az első kiadást arra szűkítettük, ami az induláshoz valóban kellett: natív mobilalkalmazások helyett reszponzív webalkalmazás, egyetlen fizetési szolgáltató, az értékelési rendszer, a statisztikák és a toplista pedig későbbi fázisba került. Projektmenedzserünk pontról pontra véleményezte a briefet, így a két csapat ugyanazt értette MVP1 alatt.
A csapat. A fejlesztést egy keresztfunkcionális Wozify-csapat végezte: projektmenedzser, UX/UI designer, Laravel backend fejlesztők, egy Angular frontend csapat, az architektúrát pedig a CTO-nk felügyelte. Kéthetes Scrum sprintekben dolgoztunk, grooming meetingekkel, az INVEST-elvekre épülő Definition of Ready-vel, sprintdemókkal és olyan Definition of Done-nal, amely 80%-os unit teszt lefedettséget célzott meg az API-ra, az architekt által kijelölt részeken kódellenőrzést írt elő, a funkcionális teszteket pedig az ügyfél specifikációja alapján, kézzel végeztük.
Tervezés. Designerünk Figmában tervezte meg a teljes felhasználói felületet: a kategóriákkal és szűrőkkel navigálható kezdőoldalt, a hirdetésfeladás és a megosztás folyamatát, a profilt és a „Quica tárcát”, ahol a felhasználók követhetik a függőben lévő eladásaikat és vásárlásaikat, a begyűjthető jutalékaikat és a teljes tranzakciótörténetüket. A különleges eseteket is wireframe-eken terveztük meg, így az egyes képernyők mögötti szabályokat még a fejlesztés előtt egyeztettük a Quicával.
Architektúra. API-first szemléletű Laravel (PHP) backendet építettünk Swagger-dokumentációval, mellé Angular alapú single-page frontendet. Az API kezeli a felhasználókat és a kétlépcsős, SMS-ben igazolt regisztrációt, a kategóriánként eltérő paraméterekkel rendelkező termékeket (ingatlan, jármű, bútor, műszaki cikk és más kategóriák), a keresést és szűrést, a kedvenceket, az ajánlott termékeket, a dokumentum- és képfeltöltést az Azure Storage-ba, a felhasználók és termékek megbízhatósági címkéit, valamint a jutalékszabályokat. A Quicával egyeztetett paramétertáblát importáltuk a rendszerbe, és beállítási végpontokon keresztül tettük elérhetővé, így a jutaléksávok, a fizetési határidők és a díjak fejlesztés nélkül módosíthatók. A rendszer Microsoft Azure-on fut: a CI/CD pipeline-okat már az első sprintben felállítottuk, a teszteléshez pedig staging környezetet biztosítottunk.
Fizetés, e-mail, SMS. A jutalékok befizetését Stripe-pal oldottuk meg. A frontend a backendtől kér fizetési szándékot (payment intent), a felhasználó a Stripe felületén fizet, a sikeres fizetésről pedig webhook értesíti a rendszert, így a backend ellenőrizheti a tranzakciót, kiszámíthatja a megosztási lánc jutalékait, és mindenkit értesíthet. A tranzakciós e-maileket SendGriden keresztül, adatbázisban tárolt, többnyelvű sablonokból küldjük, a telefonszámokat pedig a Twilio SMS-szolgáltatásával igazoljuk.
Back office. Az adminfelületen a Quica csapata kezeli a felhasználókat és a címkéket, így egy felhasználó például megbízható, újonc vagy fizetési késedelemben lévő besorolást kaphat. Ezekre a címkékre épül a Quica ügyfélszolgálati és behajtási folyamata.
Közös munka a Quica csapatával. A Quica product ownere és a projektmenedzserünk egy közös Azure DevOps táblán dolgozott. A tesztelés kezdetén egyszerű hibabejelentési utat alakítottunk ki: a felhasználói bejelentések a Freshdeskbe érkeznek, onnan kártyaként kerülnek az Azure DevOps táblára, ahol „TOP PRIO” és „PRIO 2” oszlopokba soroljuk őket, és csak akkor zárjuk le őket, ha a Quica is ellenőrizte a javítást.