LogiNet

Webfejlesztés

Parkolófoglalás a Google Workspace-ben

 A LogiNet parkolófoglalója jó példa arra, mennyit ki lehet hozni egy már meglévő platformból, ha nem nagy szoftverprojektben, hanem célzott, platformra szabott megoldásban gondolkodunk.

Krisztián P.

Egy bosszantó napi problémából néhány napos átfutással lett az egész cég által használt belső alkalmazás - fejlesztőcsapat, külön költségkeret és új infrastruktúra nélkül. Az alkalmazást egy olyan kollégánk készítette el, aki napi szinten nem kódol. Két dolog tette ezt lehetővé: a Google Workspace platform, amely a szoftverfejlesztés összetettebb részeire - a bejelentkezésre, a jogosultságkezelésre és az üzemeltetésre - kész megoldást kínált, és a mesterséges intelligencia, amely az első lépéstől a publikálásig végig vezette a kezét. A LogiNet parkolófoglalója jó példa arra, mennyit ki lehet hozni egy már meglévő platformból, ha nem nagy szoftverprojektben, hanem célzott, platformra szabott megoldásban gondolkodunk.

A probléma: foglalható, de áttekinthetetlen

Irodánkhoz több parkolóhely tartozik, amelyeket a Google Workspace-ben erőforrásként vettünk fel, így a Google Naptárból a tárgyalókhoz hasonlóan foglalhatók. Papíron ez működött, a gyakorlatban viszont nehéz volt gyorsan eldönteni, melyik hely szabad éppen, vagy ki fog leghamarabb távozni.

A kérdés egyszerű volt: van-e erre gyári képernyő a Workspace-ben? Nincs. A beépített eszközök vagy utólagos kihasználtsági riportot adnak, vagy tárgyalókra szánt, hardverfüggő ajtókijelzőt. A piacon lévő teremfoglaló termékek működnének, de néhány parkolóhelyre túlméretezettek és költségesek.

Első lépés: egy „buta”, de gyors próba

A legegyszerűbb út a Google Naptár beágyazási lehetősége volt: egyetlen oldalon, egymás mellett jelenítettük meg mind a parkolók naptárát. Ez fél óra alatt elkészült, és rögtön kiderült belőle, mire van valójában szükségünk.

A beágyazott naptár ugyanis csak megjelenít. Nem mondja meg, melyik hely szabad a következő órákban, nem lehet rajta foglalni, és a naptároszlopokból továbbra is a felhasználónak kell kiolvasnia a választ. A próba értéke mégis nagy volt: kis téttel, gyorsan megmutatta, hogy az alapok a naptárakban már ott vannak, csak egy okosabb felület kell feléjük.

Miért Google Apps Script?

A döntés a Google Apps Scriptre esett, mert a Workspace-en belül fut, és a nehezét a platform adja. A bejelentkezést a céges Google-fiók intézi, az alkalmazást csak a domainhez tartozó munkatársak érhetik el, és nem kell hozzá saját szerver vagy adatbázis.

A legfontosabb architektúrális döntés az volt, hogy az alkalmazás soha nem ír közvetlenül a parkolók naptárába. A foglalás a felhasználó saját naptárában jön létre, a parkoló pedig meghívottként szerepel rajta, és automatikusan visszaigazolja - pontosan úgy, ahogy a Google Naptárban egy tárgyalót foglalunk. Így senkinek nem kell külön írási jog az erőforrásokon, a foglalás a saját naptárból is kezelhető, és az igazság egyetlen forrása továbbra is a Google Naptár marad.

Kis lépésekben, gyors visszajelzéssel

Az első Apps Scriptes verzió további 1 óra alatt elkészült: egy képernyőn mutatta a parkolók aznapi foglalásait, kiemelve azt, ami éppen fut. Nagyjából két óra múlva már működő alkalmazásunk volt foglalással együtt. A bővítések és a teljes design megújítás a következő napokban készült el, a napi munka mellett, rövidebb-hosszabb blokkokban - a néhány napos átfutás alatt sem zajlott végig aktív fejlesztés.

Az új funkciók mindig kis, azonnal kipróbálható lépésekben kerültek be, így a kollégák visszajelzése a következő körben már be is épülhetett. Menet közben egy fontos munkamódszerbeli tanulság is született: érdemes előbb megtervezni a képernyőt, és csak utána kódolni.

Hibajavítás AI-jal: a képernyőkép többet mond

A kódot a mesterséges intelligencia írta, és a hibajavítás is az ő vezetésével, iteratív körökben zajlott. A hibát leírtuk, az AI megnevezte a lehetséges okokat és javított változatot készített, mi kipróbáltuk, és ha kellett, jött a következő kör. Ahol több ok is szóba jöhetett, olyan javítás készült, amely mindegyiket kezeli.

A megjelenési problémáknál hamar kiderült, hogy egy képernyőkép sokkal hatékonyabb, mint bármilyen szöveges leírás. Egy elcsúszott gomb, egy rossz szín vagy egy mobilon tördelődő fejléc szövegben nehézkesen és pontatlanul írható le, így több kör is kellett a javításhoz. Képernyőképpel az AI pontosan látta, miről van szó, és a hiba jellemzően egyetlen körben megoldódott. Kellemes meglepetés volt az is, hogy a javítások nem rontottak el más, már működő részeket.

Mit tud ma az alkalmazás?

A „Mai nap” nézet

Egy pillantással látszik, melyik hely szabad, meddig foglalt a többi, és a szabad helyek egy kattintással foglalhatók.

A „Napi bontás” idővonala

Az összes parkoló foglalásai egy képernyőn, a függőleges vonal a pillanatnyi időt jelzi.

Az alapokon túl: kis funkciók, nagy kényelem

Amikor az alapok már stabilan működtek, a használat közben felmerülő igények alapján jöttek a kényelmi funkciók. Az azonnali foglalással egy éppen szabad hely egyetlen kattintással lefoglalható, űrlap kitöltése nélkül. Ha valaki tovább marad a tervezettnél, a futó foglalását szintén egy kattintással meghosszabbíthatja egy órával.

A Beállítások képernyőn mindenki megadhatja, milyen alapértékekkel induljon a foglalási űrlap: a szokásos érkezési és távozási időpontot, illetve azt, hogy vendégfoglalásnál alapból menjen-e értesítés. Így a legtöbb foglalás módosítás nélkül elküldhető.

Az „Új foglalás” űrlap a beállított alapértékekkel indul, felül a következő irodai napok, jobbra pedig azonnal látszik, ha a választott idősáv ütközik egy másik foglalással.

Külön figyelmet kapott a másodlagos naptár. Egy szinte egész napos parkolási esemény zavaró a munkára is használt elsődleges naptárban, ezért a felhasználó átállhat egy külön „Parkolásaim” naptárra. A foglalás ugyanúgy működik, csak ez a naptár egy kattintással elrejthető a Google Naptárban. Az átállást aktív foglalás mellett az alkalmazás nem engedi, hogy egyetlen foglalás se vesszen el félúton.

Belső eszköz, vállalati szintű keretek között

Egy belső alkalmazás is céges adatokhoz fér hozzá, ezért a biztonsági kérdések az elejétől napirenden voltak. Kinek a nevében fut az alkalmazás? Kinek a naptárát kérdezi le? Mi történik, ha a nevünkben e-mailt küld egy külső vendégnek? Az alkalmazás mindig a bejelentkezett felhasználó jogosultságaival dolgozik, így senki nem lát többet, mint amennyit a Google Naptárban is látna.

Az alkalmazást átköltöztettük egy saját, a céges szervezet alá tartozó Google Cloud-projektbe, ahol engedélyeztük a szükséges Google API-kat, és belső típusú hozzájárulási képernyőt állítottunk be. Ettől eltűnt az ellenőrizetlen alkalmazásokra figyelmeztető piros képernyő, az engedélykérésnél már a saját alkalmazásnév szerepel, és központilag láthatóvá váltak a hibanaplók és a kvóták.

A saját Cloud-projekt nyitotta meg az utat a közzététel felé is. A Google Workspace Marketplace SDK segítségével az alkalmazást belső alkalmazásként publikáltuk a szervezet Marketplace-én, ikonnal, leírással és adatvédelmi tájékoztatóval. Belső közzétételnél nincs szükség Google-ellenőrzésre, a jóváhagyás a saját rendszergazdánk kezében van. Az eredmény: a parkolófoglaló ugyanúgy megjelenik a kollégák Google alkalmazásindítójában, mint a Gmail vagy a Naptár, és nem kell linkeket körbeküldözgetni.

Amit ebből tanultunk

A parkolófoglaló alkalmazás nem nagy szoftverprojekt, és éppen ez benne a lényeg. Egy valós, mindennapi problémára a már használt platformon, néhány napos átfutással, a napi munka mellett született működő megoldás. A kulcs nem egy különleges technológia volt, hanem az, hogy elkezdtük: egy gyors próbából nőtt ki minden, ami utána jött.

Visszanézve a legtanulságosabb az volt, hol húzódott valójában a nehézség. Nem a kódban: azt az AI megírta, a hibákat pedig vele közösen javítottuk. Az igazi kihívást a platform adminisztrációs felületei jelentették - a Cloud Console, a hozzájárulási képernyő, a Marketplace beállításai -, ahol egy fejlesztő rutinból mozog, egy nem fejlesztő viszont könnyen elakad. Itt is az AI adott kapaszkodót, lépésről lépésre, és csak néhány ponton kellett Google-adminisztrátori jogosultság.

A mérleg másik oldalán a platform áll. Mivel a bejelentkezés, a jogosultságok, az adatok és a terjesztés készen álltak, a munka teljes egészében a valódi problémára - a parkolók áttekinthetőségére - koncentrálódhatott. Így jutott el egy nem fejlesztő kolléga az első ötlettől a céges alkalmazásindítóig: egy érett platform és egy végig mellette álló AI együtt.

Sok szervezetben ott lapulnak hasonló kérdések, amelyekhez nem kell új rendszert vásárolni. A Google Workspace, a Microsoft 365 és más vállalati platformok eszköztára sokszor elegendő egy célzott, gyorsan bevezethető megoldáshoz. Ha Önnél is van ilyen probléma, beszéljük meg, mit lehet kihozni abból, ami már a rendelkezésére áll.

Ez egy formázott Python kód:

import requests

def fetch_data(url):
  response = requests.get(url)
  if response.status_code == 200:
    return response.json()
  else:
    return None

if __name__ == "__main__":
  url = "https://jsonplaceholder.typicode.com/posts"
  data = fetch_data(url)
  print(data)

Ez egy felsorolás bullet pointokkal:

Ez egy felsorolás számokkal:

  1. Az alkalmazott library-k, frameworkök ismerete.
  2. A domain tudás, azaz a projekt céljainak, nevezék- és módszertanának, modelljeinek és üzleti logikájának az ismerete.
  3. Harmadik elem

Ez egy táblázat:

CriterionApproaches 1–2 (Independent / Unified eCommerce)Approach 3 (Centralized eCommerce Platform)Approach 4 (Traditional Marketplace)Approach 5 (Franchise Marketplace Platform)
Consistent brand experienceWeak to moderateExcellentModerateExcellent
Marketing cost per partnerHigh (everyone on their own)LowLowLow
New partner onboarding timeMonthsNot applicableWeeksDays to weeks
Margin preservationVariesCentrally pricedDestructive price warsPreserved
Conversion rateVariesHighLow (complex UX)High
Legal compliancePartner-dependent, riskyCentrally ensuredCentrally ensuredCentrally ensured
Franchise partner satisfactionHigh (freedom)Low (no input)Low (price wars)High (autonomy + support)

Ajánlatkérés

Növeld a vállalkozásod hatékonyságát és a bevételedet olyan egyedi szoftveres megoldásokkal, amelyek tényleg a céged igényeire készülnek.

Írd le az elképzeléseidet és a céljaidat, mi pedig rövid időn belül jelentkezünk, hogy megnézzük, hogyan tudunk segíteni.