SmartTech e-shop
Smartphone shop with typo-tolerant search, filters, a three-step checkout and an admin area.

About the project
The semester project for the Web Technologies course at FIIT STU in the winter of 2021, made in a pair, and my first Laravel project. The task was a server-rendered shop with filters, search, a cart that survives logout, guest checkout, accounts and an admin area.
Later I redesigned it, then upgraded it step by step to Laravel 13, covered it with tests first and moved it to my home server.
What you can try
- Search that forgives typos (try "samsng"), with suggestions while you type
- Filters for price, brand, colour, memory, display size and system, each with a live count of matching phones
- Filtering, sorting and paging without page reloads, with clean URLs you can share
- Three-step checkout with delivery and payment options, also as a guest
- The cart is saved when you log out and merged when you log in again
- The whole shop in English, German and Slovak
- Admin area for products and photos
Highlights
- Fuzzy search with PostgreSQL trigrams and live suggestions
- Filters, sorting and pagination without page reloads
- Guest checkout, cart kept across sessions, stock tracking
- Automated tests in GitHub Actions, Docker Compose deployment
Under the hood
- About 84 feature tests run against PostgreSQL in GitHub Actions
- I replaced the cart library with my own class after finding that saved carts could never be restored: PostgreSQL cut the serialized text at the first null byte
- Typo-tolerant search with PostgreSQL trigram similarity
- Docker Compose with PHP-FPM, nginx and PostgreSQL, a nightly demo reset, rate limiting and a health check
Architecture
- 1BrowserServer-rendered Blade pages styled with Tailwind CSS
- 2Tailscale FunnelPublic HTTPS from a sidecar container
- 3nginxWeb server in front of PHP-FPM
- 4LaravelCatalog, cart, checkout and admin on PHP-FPM; a scheduler container resets the demo every night
- 5PostgreSQLProducts and orders, with trigram search
Changelog
- Tests written first, then Laravel 8 and PHP 8.1 to Laravel 13 and PHP 8.5, one major version at a time
- Tailwind CSS from the CDN to a local Tailwind 4 build
- PostgreSQL 18
- When
- 2021 – 2026
- Type
- Team
- Versions
- Laravel 13
- PHP 8.5
- PostgreSQL 18
- Tailwind CSS 4
- Stack
- Laravel
- PHP
- PostgreSQL
- Tailwind CSS
- Docker
- nginx
- Tailscale
- GitHub Actions

