Protos-AgentConsole v3.0

Sesije · Memorija i procesi

Sve sesije

CV (cv.md/resume.html/public cv.html), O nama CV/blog button swap, email validation hardening

Mon Aug 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)·Protos-Web· 2 commitova
cvresumeo-namateam-profilesemail-validationsecuritycontact-formsubscribedonatei18ncvLink

Commitovi

14f8f19fb2430e

Session 2026-08-10 — CV, O nama button swap, email validation hardening

Kontekst

Korisnik je tražio: (1) CV u .md i resume.html — tehničar za računalstvo, rođen 9.10.1993., 5+ godina iskustva, cijena 20 €/h, svi portfolio showcase projekti, tagline "Cyber sigurnost, LLM Q/A inženjering i full stack web razvoj", protosweb + bodulica = LIVE, ostalo DEMO, plus paragraf o Linux (VSCodium) / Protos Agent / System Boost. (2) CV gumb u Dariov prozor na O nama, blog gumb prebačen u Martinin prozor. (3) Pojačati email validaciju — korisnik je primijetio da se mail može poslati upisivanjem gluposti u polje za email.

Što je napravljeno

1. CV (commit 14f8f19)

  • CV/cv.md + CV/resume.html — puni životopis:
    • Header: "Dario Imširović — Full Stack Web Developer · Cyber sigurnost · LLM Q/A inženjering · Tehničar za računalstvo"
    • Tagline: "Cyber sigurnost, LLM Q/A inženjering i full stack web razvoj — uz vrhunski frontend/shop i app dizajn s 3D iskustvima. Gradimo precizna, brza i vizualno impresivna rješenja."
    • Rođen 9.10.1993., 5+ godina, 20 €/h
    • Kontakti: dario.admin@protosweb.eu, protosweb.eu, github.com/ProtosEschatos, golance.com/freelancer/dario.imsirovic, about.me/imsirovicdarioprotosweb, +385 97 604 39 41
    • Edukacija: tehničar za računalstvo; skills tablica
    • Projekti: LIVE (Protos Web ⭐, Bodulica Shop 🟢) vs DEMO (Golden Pawn 🔨, LuminaDent 🦷, Auto Moto Zagreb 🚗, Apartman Mihael 🏖️, Auto Precision 🔧, Mark23 CAP 📊, System Boost ⚡)
    • Paragraf: "Gradim 3D/WebGL i full stack web na Linuxu (VSCodium) kroz vlastiti Protos Agent, pravila i workflowe. Uz to: System Boost — Linux i Windows upute za otključavanje punog CPU kapaciteta + zram performance boost."
    • Vrednovanje @20 €/h (~940h ≈ 18.800 €, raspon 18.000–20.000 €)
  • public/cv.html = kopija CV/resume.html → dostupan na https://protosweb.eu/cv.html (Vercel public/)

2. O nama button swap (commit 14f8f19)

  • src/app/[locale]/o-nama/page.tsx: Dario prozor → CV gumb (/cv.html, target _blank, FileText ikona, t('cvLink')); Martina prozor → blog gumb (/blog, BookOpen ikona, t('guideLink'))
  • Import: ArrowRight, BookOpen, FileText, Instagram iz lucide-react
  • cvLink prijevod dodan u svih 6 locale JSON (src/messages/hr/en/de/it/es/sr.json)

3. Email validation hardening (commit fb2430e)

Problem: server action za kontakt nije imao NI KAKVU validaciju; zod .email() propušta smeće poput a@b.c. Footer newsletter i donate su koristili email.includes('@') / slab regex.

Fix — zajednički strogi regex:

  • src/lib/schemas/contact.ts: export EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/ (bez razmaka, domena s TLD-om ≥ 2 znaka); contactFormSchema.email.regex(EMAIL_REGEX)
  • src/actions/contact.ts: contactFormSchema.safeParse(data) prije RPC-a (bio bez validacije!)
  • src/lib/contact/submit-contact.ts: ista zod provjera (defense in depth)
  • src/app/api/contact/route.ts: EMAIL_REGEX umjesto .email()
  • src/components/features/home/sections/Contact.tsx: koristi zajednički EMAIL_REGEX (bio lokalni slab)
  • src/app/api/subscribe/route.ts: EMAIL_REGEX umjesto slabog regexa
  • src/app/api/donate/route.ts: EMAIL_REGEX umjesto email.includes('@')
  • src/components/layout/Footer.tsx: EMAIL_REGEX u handleSubscribe
  • src/components/features/donations/DonationModal.tsx: EMAIL_REGEX umjesto email.includes('@')

Odluke i tradeoffi

  • Email validacija na svim razinama (client → API → server action → lib) = defense in depth; korisnik je specifično tražio da se smeće ne može poslati.
  • CV koristi i .md (za AI/freelance profile) i resume.html (print-ready, Ctrl+P), plus public/cv.html za direktan javni link.
  • public/cv.html je statičan HTML (ne SSG) — servira se s Vercel public/ foldera bez builda.

Provjere

  • npx tsc --noEmit ✅ (exit 0)
  • npx next build ✅ (exit 0)
  • JSON validacija svih 6 localea ✅

Commit + push

  • 14f8f19 — CV files + O nama button swap (10 datoteka, +864 linija)
  • fb2430e — email validation hardening (9 datoteka, +42/−17)

Otvoreno / Sljedeći koraci

  • [ ] Vercel build/deploy potvrditi live (auto-deploy s GitHub main-a)
  • [ ] Ako korisnik želi, dodati CV download gumb (PDF varijanta)

Reference

  • https://protosweb.eu/cv.html
  • commits: 14f8f19, fb2430e