SmartTech e-shop
E-shop so smartfónmi s vyhľadávaním odolným voči preklepom, filtrami, trojkrokovým nákupom a administráciou.

O projekte
Semestrálny projekt z predmetu Webové technológie na FIIT STU v zime 2021, robený vo dvojici, a môj prvý projekt v Laraveli. Zadaním bol e-shop vykresľovaný na serveri s filtrami, vyhľadávaním, košíkom, ktorý prežije odhlásenie, nákupom bez registrácie, účtami a administráciou.
Neskôr som mu dal nový dizajn a potom som ho postupne aktualizoval na Laravel 13, najprv som ho pokryl testami a presunul na domáci server.
Čo si môžete vyskúšať
- Vyhľadávanie, ktoré odpustí preklepy (skúste „samsng“), s návrhmi počas písania
- Filtre podľa ceny, značky, farby, pamäte, veľkosti displeja a systému, každý so živým počtom výsledkov
- Filtrovanie, triedenie a stránkovanie bez načítania stránky, s čistými URL na zdieľanie
- Nákup v troch krokoch s výberom dopravy a platby, aj bez registrácie
- Košík sa uloží pri odhlásení a spojí pri ďalšom prihlásení
- Celý e-shop v angličtine, nemčine a slovenčine
- Administrácia produktov a fotiek
Hlavné body
- Fuzzy vyhľadávanie cez PostgreSQL trigramy s návrhmi počas písania
- Filtre, triedenie a stránkovanie bez načítania stránky
- Nákup bez registrácie, košík medzi reláciami, sledovanie zásob
- Automatické testy v GitHub Actions, nasadenie cez Docker Compose
Ako to funguje
- Asi 84 testov funkcionality beží proti PostgreSQL v GitHub Actions
- Knižnicu košíka som nahradil vlastnou triedou, keď som zistil, že uložené košíky sa nedali obnoviť: PostgreSQL orezal serializovaný text pri prvom nulovom bajte
- Vyhľadávanie odolné voči preklepom cez trigramovú podobnosť v PostgreSQL
- Docker Compose s PHP-FPM, nginx a PostgreSQL, nočný reset dema, obmedzenie počtu požiadaviek a kontrola stavu
Architektúra
- 1PrehliadačStránky vykresľované na serveri cez Blade, štýly v Tailwind CSS
- 2Tailscale FunnelVerejné HTTPS zo sidecar kontajnera
- 3nginxWebový server pred PHP-FPM
- 4LaravelKatalóg, košík, objednávky a administrácia na PHP-FPM; kontajner s plánovačom každú noc obnoví demo
- 5PostgreSQLProdukty a objednávky, s trigramovým vyhľadávaním
Zoznam zmien
- Najprv testy, potom Laravel 8 a PHP 8.1 na Laravel 13 a PHP 8.5, po jednej hlavnej verzii
- Tailwind CSS z CDN na lokálny build Tailwind 4
- PostgreSQL 18
- Kedy
- 2021 – 2026
- Typ
- Tímový
- Verzie
- Laravel 13
- PHP 8.5
- PostgreSQL 18
- Tailwind CSS 4
- Technológie
- Laravel
- PHP
- PostgreSQL
- Tailwind CSS
- Docker
- nginx
- Tailscale
- GitHub Actions

