sunnysidecycling.com je produkcijska spletna platforma, ki smo jo zasnovali in razvili od začetka za podjetje za kolesarske ture v Posočju, Slovenija. Pokriva vse od javne marketinške strani do zalednega upravljanja rezervacij, procesiranja plačil in davčne skladnosti z FURS.
Pregled arhitekture
Sistem sestavlja več Docker vsebnikov za Traefik povratnim posrednikom z avtomatskim Let's Encrypt TLS:
- Flask frontend — strežniško upodobljena marketinška stran z Jinja2 predlogami, dvojezično vsebino (EN/SI), odzivnim dizajnom in lenimi slikami
- FastAPI backend — RESTful API za administracijsko ploščo, upravljanje inventarja koles, koledar rezervacij, blog CMS in upravljanje tur
- PostgreSQL — relacijska baza podatkov za izdelke, rezervacije, stranke in zapise transakcij
- Fiskalna storitev — izolirana mikrostoritev za FURS fiskalizacijo (digitalno podpisovanje računov, EOR/ZOI kode, produkcijska potrdila)
- Traefik — robni usmerjevalnik z avtomatskim HTTPS, kompresijskim vmesnikom in usmerjanjem po storitvah
Zmogljivost & SEO
Javna spletna stran dosledno dosega 90+ v vseh štirih Google Lighthouse kategorijah (zmogljivost, dostopnost, najboljše prakse, SEO) in dosega 100/100 Ahrefs oceno zdravja strani. Ključne optimizacije vključujejo:
- Strežniško upodabljanje z minimalnim JavaScriptom — brez SPA obremenitve
- Optimiziran cevovod slik z WebP pretvorbo in odzivnimi
<picture>elementi - Vključevanje kritičnega CSS, odloženo nalaganje pisav
- Pravilna semantična HTML struktura, strukturirani podatki (JSON-LD), kanonični URL-ji in dinamični zemljevid strani
- Gzip/Brotli kompresija preko Traefik vmesnika
- Nič napak pri indeksiranju, potrjeno z Ahrefs Site Audit
Sistem rezervacij
Zaledni sistem upravlja celoten življenjski cikel najema:
- Spletni najem koles — stranke brskajo po razpoložljivih kolesih, izberejo datume in rezervirajo prek spleta
- Administracijska plošča — JWT-avtentificirana plošča za upravljanje inventarja, ogled/urejanje rezervacij in sledenje razpoložljivosti na vizualnem koledarju
- Stripe integracija — varno procesiranje plačil z webhook obravnavo za potrditev plačila
- E-poštna obvestila — avtomatizirana potrditvena in opominska e-pošta preko SMTP
FURS davčna skladnost
Slovenska davčna zakonodaja zahteva elektronsko fiskalizacijo računov. Razvili smo namensko mikrostoritev, ki:
- Digitalno podpiše vsak račun z FURS-ovim P12 potrdilom
- Komunicira s FURS SOAP API za pridobitev unikatnega EOR identifikatorja
- Generira ZOI (zaščitno oznako) kode za preverjanje računov
- Podpira tako testno kot produkcijsko FURS okolje
- Obravnava oprostitve po 94. členu ZDDV-1, ko je nastavljeno
Blog & upravljanje vsebin
Administracijska plošča vključuje poln blog CMS z:
- Urejanje obogatenega besedila z nalaganjem slik
- Dvojezično upravljanje objav (angleščina in slovenščina)
- SEO metapodatkovna polja, samodejno generirane naslove URL in Open Graph oznake
- Delovni tok osnutek/objavljeno
Postavitev & infrastruktura
Celoten sklad teče na Docker Compose z ločenima produkcijskim in razvojnim okoljem za hitro, zanesljivo postavitev in varno razvojno iteracijo:
- Produkcijsko & razvojno okolje — zrcaljena Docker Compose sklada omogočata testiranje sprememb na razvojni instanci pred prenosom v produkcijo, kar zagotavlja nič presenečenj na živi strani
- Večmrežna Docker postavitev — javne storitve na Traefik proxy omrežju, baza podatkov in fiskalna storitev na internem omrežju
- Zdravstveni pregledi — vsaka storitev ima zdravstvene preglede na ravni vsebnika s pravilnimi začetnimi obdobji in logiko ponovnih poskusov
- Pritrjeni volumni — PostgreSQL podatki, varnostne kopije in naložena sredstva preživijo ponovne gradnje vsebnikov
- Postavitve brez izpadov — tekoče ponovne gradnje z
docker compose up -d --build
Poštni strežnik
Postavili smo namenski Mailu poštni strežnik s polnim SSL/TLS šifriranjem za obravnavo vseh transakcijskih in obvestilnih e-poštnih sporočil platforme:
- E-pošta na lastni domeni (
info@sunnysidecycling.com) s pravilnimi SPF, DKIM in DMARC zapisi - SSL potrdila upravljana skupaj z ostalo infrastrukturo preko Let's Encrypt
- SMTP integracija tako s Flask frontendom kot FastAPI backendom za potrditve rezervacij, opomnike in administratorska obvestila
- Spletni dostop do e-pošte za poslovno ekipo
Povzetek tehnološkega sklada
| Frontend | Flask, Jinja2, vanilla JS, CSS |
| Backend API | FastAPI, SQLAlchemy, Pydantic |
| Baza podatkov | PostgreSQL 15 |
| Plačila | Stripe API |
| Fiskalizacija | Lastna FURS mikrostoritev (Python, SOAP, P12 potrdila) |
| Infrastruktura | Docker Compose, Traefik, Let's Encrypt |
| Pošta | Mailu (SSL, SPF, DKIM, DMARC) |
| Okolja | Produkcija + razvoj (zrcaljena sklada) |
| Jeziki | EN / SI (Jinja2 i18n) |
Obiščite živo stran: sunnysidecycling.com