Preskočiť na obsah
Ákos Kappel
Jazyk: sk
Téma
Svetlé
Tmavé

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.

Katalóg smartfónov s filtrami

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

  1. 1PrehliadačStránky vykresľované na serveri cez Blade, štýly v Tailwind CSS
  2. 2Tailscale FunnelVerejné HTTPS zo sidecar kontajnera
  3. 3nginxWebový server pred PHP-FPM
  4. 4LaravelKatalóg, košík, objednávky a administrácia na PHP-FPM; kontajner s plánovačom každú noc obnoví demo
  5. 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
Úvodná stránka obchodu SmartTech s telefónom a tromi dôvodmi na nákup
Úvodná stránka s bannerom dema, vyhľadávaním a prepínačom jazyka.
Stránka produktu telefónu Sony s množstvom, celkovou cenou a tlačidlom do košíka
Detail produktu s množstvom, priebežnou cenou a parametrami.

1 z 2

Úvodná stránka obchodu SmartTech s telefónom a tromi dôvodmi na nákup

Úvodná stránka s bannerom dema, vyhľadávaním a prepínačom jazyka.