Skip to content

Appka Jíme Brno z pohledu vývojáře

Jíme Brno

Con Gusto

2022

JimeBrno_Uvodka

Skupina Con Gusto vlastnící několik brněnských restaurací se rozhodla spustit vlastní rozvážkovou službu Jíme Brno. A kompletní realizaci webové aplikace pro svůj exkluzivní rozvoz svěřila právě Cognitu, a to od návrhu implementace až po uvedení služby na trh. Společně s vývojem rozvozového systému jsme dostali za úkol vytvořit také informační systém pro management zadavatele napojený na nejrozšířenější pokladní restaurační systém Septim.

Reference_JimeBrno

Technická analýza

a návrh architektury

Na základě uživatelského zadání a technické analýzy jsme navrhli architekturu systému složenou z několika samostatných aplikací:

  1. E-shopové rozhraní pro zákazníky (www.jimebrno.cz), kde mohou zákazníci objednávat jídlo z restaurací sítě Con Gusto. Řešení zahrnuje i administraci obsahu a jídelníčku restaurací.
  2. Dashboard optimalizovaný pro tablety v jednotlivých restauracích pro správu příchozích objednávek.
  3. Dashboard pro operátora rozvozu – přehled nad objednávkami a polohou kurýrů v reálném čase.
  4. Mobilní aplikace pro kurýry.
  5. Manažerský informační systém.

Technicka_JimeBrno

Technologický

stack

V Cognitu se specializujeme na vývoj webových aplikací v PHP a Symfony Framework. Máme na této platformě nasazeny velké e-shopy i SaaS aplikace, takže volba technologie byla no-brainer. Pracovali jsme v malém týmu a z důvodu rychlosti vývoje jsme zvolili cestu monolitu s logicky odděleným kódem pro jednotlivé aplikace.

Jako datové úložiště jsme využili PostgreSQL s přístupem přes Doctrine ORM a DBAL, pro cache pak Redis.

Snímek obrazovky 2026-03-24 v 14.37.22

Frontend

a mobilní aplikace

Pro uživatele generujeme na serveru šablony v jazyce Twig a pro dynamiku v prohlížeči pak Vanilla JavaScript s pomocí knihovny Stimulus.

Mobilní aplikace pro kurýry je potom postavená na multiplatformní React Native komunikující se serverem pomocí REST s využitím ApiPlatform.

Tohle všechno doplňuje pro správu obsahu ještě náš interní CMS Winston a e-commerce platforma Marco.

Mapa_JimeBrno

Iterativní

postup vývoje

Standardní postup naší práce zahrnuje sběr požadavků account managerem a UX designérem, tvorbu interaktivního prototypu, UI design po schválení prototypu a předání frontend vývojáři.

Mezitím backend tým připravuje datovou architekturu. Vývoj probíhá ve 14denních sprintech s testovacími cykly. Po každém sprintu následuje schválení nebo úprava pro další iteraci.

Ladění výkonu pokračovalo ještě týden po spuštění aplikace, protože testovat reálný provoz s pohybujícími se kurýry a nepřetržitými objednávkami je v simulovaném prostředí prakticky nemožné.

Chat_JimeBrno

Zajímavost

na závěr

Co zprvu vypadá jako pár řádků kódu, ale nakonec zabere dny práce celého týmu:

Zvukové notifikace v tabletech restaurací platforma iOS zvukové projevy na iPadu plně ignorovala. Řešením byly push notifikace přes externí službu.

Adresy pro doručení, každá restaurace má vlastní rozvozové zóny ovlivňující cenu dopravy i minimální objednávku. Google Maps autocomplete se v ČR ukázalo nepoužitelné kvůli neaktuálním adresám, proto jsme integrovali Smartform.cz s relevantní databází adres a výpočet vzdálenosti řešíme přes Google Distance Matrix API.

Jak jsme postupovali

Od zadání přes návrh architektury až po spuštění rozvážkové služby. Kompletní vývoj 5 propojených aplikací v jednom monolitu.

1

Analýza a návrh architektury

Na základě uživatelského zadání a technické analýzy jsme navrhli architekturu systému složenou z 5 samostatných aplikací s napojením na pokladní systém Septim.

2

UX prototyp a UI design

Account manager a UX designér sbírali požadavky, vytvořili interaktivní prototyp. Po schválení prototypu vznikl finální UI design předaný frontend vývojáři.

3

Vývoj ve 14denních sprintech

Backend připravil datovou architekturu, vývoj probíhal iterativně ve 14denních sprintech s testovacími cykly a průběžným schvalováním.

4

Integrace a řešení problémů

Řešili jsme zvukové notifikace na iPadech (push notifikace přes externí službu) i nepřesné adresy (integrace SmartForm místo Google Maps autocomplete).

5

Spuštění a ladění výkonu

Po uvedení na trh pokračovalo ladění výkonu ještě týden, protože reálný provoz s pohybujícími se kurýry nelze plně simulovat.

PHP
PHP
Symfony
Symfony
Postgresql_elephant 1
PostgreSQL
Redis
Redis
React
React Native

Použité technologie

Systém Jíme Brno je postaven na PHP a frameworku Symfony s databází PostgreSQL a cache v Redisu. Mobilní aplikace pro kurýry běží na React Native. Správu obsahu zajišťuje CMS Winston a e-commerce platforma Marco.

Služby a produkty,

které jsme dodali

Máte projekt nebo nápad? Domluvte si nezávaznou konzultaci a zjistěte, jak vám můžeme pomoct.

The Cognizance Blog Honest developer insights

IEA_Nahled
#Tiskové zprávy

Internet Effectiveness Awards 2025

AI-gigafactory_nahled
#Technologie

5 důvodů, proč evropské AI gigafactory nenaplní očekávání

NUKIB_nahled
#Tiskové zprávy

Cognito uspělo ve výběrovém řízení pro NÚKIB

AIManifest_nahled
#Technologie

Manifest AI-Augmented Developmentu

Not enough? We have more