Commit 31f3853
* (SP: 1) [Security] Enforce origin posture for shop APIs (admin/checkout same-origin; internal/webhooks non-browser) + docs
* (SP: 1) [DB] Align stripe_events.order_id FK CASCADE across schema and migrations
* feat(i18n): localize quiz anti-cheat, header and blog filters (#175)
* feat(Blog): Adding last published post to the blog and category page, recommended posts, Changing styles to one unified format, Bug fixes
* Update leaderboard-style
* Update leaderboard-style
* teat(Blog): fix of hover on author, fix of the line
* (SP: 3) [Observability] Extend structured logging + correlation IDs across all shop routes; purge console.*; enforce explicit error codes
* (SP: 1) [Admin][Security] Add safe product delete (PRODUCT_IN_USE) + mobile cards UI; tighten env/docs, locale normalization, cache-control, and logging semantics
* fix: npm installing
* (SP: 1) [Admin] Align products list in use checks with DB column names (order_items/inventory_moves)
* fix:Update leaderboard: fixed background
* fix: remove email from CurrentUser type to prevent PII exposure
* refactor: align leaderboard UI with brand style (fixed bg, css vars, podium glow)
* (SP: 1) [Frontend] About Us Page. Fixed game, topics, mobile layout
- Fixed mobile tabs in FeaturesSection (icon-only on mobile)
- Fixed game bugs: collision detection, animation, scoring system
- Added multiple obstacle types with level progression
- Improved game sizing for mobile while preserving desktop
- Updated TopicsSection with local SVG icons and hover borders
- Made DynamicGridBackground static grid opt-in via showStaticGrid prop
- Limited SponsorsWall to display max 10 sponsors
- Optimized CommunitySection button layout for mobile
* refactor: update accent color hover effects to Footer
- Update Footer links to use --accent-primary on hover
- Update ThemeToggle icons to use --accent-primary on hover
- Both components adapt colors to light/dark theme
* refactor: improve accessibility
- Add focus-visible styles for keyboard navigation accessibility
* (SP: 1) [Shop] Fix Stripe checkout success redirect (remove duplicate locale /uk/uk) (#186)
* fix:leaderboard update leaderboard-style
* fix:leaderboard update leaderboard-style (#187)
* fix:leaderboard update leaderboard-style on mobile
* fix: resolve CodeRabbit issues and conflicts
* fix:leaderboard update leaderboard-style on mobile (#188)
* fix:leaderboard update leaderboard-style
* fix:leaderboard update leaderboard-style on mobile
* fix: resolve CodeRabbit issues and conflicts
---------
* (SP: 1) [Frontend] Changing hero headline on shop main page (#190)
* (SP: 1) [Shop] Fix checkout redirect 404 by removing duplicate locale in in-app routes and Stripe return_url
* (SP: 1) [Shop] Fix locale cart page and orderid page
* (SP: 1) [Frontend] Changin hero headline on shop main page
* (SP: 1) [Frontend] Fix styles shop home page, buttons (#191)
* fix: move row border to first cell to resolve CodeRabbit issue
* fix: move row border to first cell to resolve CodeRabbit issue new
* Feature/leaderboard style update (#192)
* (SP: 7) [UI] Quiz UI polish: tabs styling, category accents, color scheme (#181, #193, #194) (#195)
* Sanity (#196)
* feat(Blog):fix for clickable link in post details, fix for author details
* feat(Blog):refactoring after removing author modal
* feat(Blog): fix unified date format
* (SP: 3) [AI] Add AI word helper with Groq integration (#200)
* (SP: 3) [AI] Add AI word helper with Groq integration
- Implement Groq API with Llama 3.1 70B model
- Add text selection detection on Q&A page
- Create floating "Explain" button
- Build draggable modal with 3-language support (uk/en/pl)
- Add localStorage caching for instant repeated lookups
- Implement guest CTA (login/signup)
- Add rate limiting (10 requests/min)
- Auth-gated feature (registered users only)
Components:
- SelectableText: Detects text selection
- FloatingExplainButton: Appears on selection
- AIWordHelper: Main modal with explanations
* (SP: 1) i18n: fix Polish locale and set EN as default
* Sanity (#202)
* feat(Blog):fix for clickable link in post details, fix for author details
* feat(Blog):refactoring after removing author modal
* feat(Blog): fix unified date format
* feat(Blog): Fix for click-outside-to-close search, recommended posts are limited to 3
* feat(Blog): selectedAuthorData fixed
* feat(Blog): Added description for /blog/[slug] metadata, Added Schema.org JSON‑LD for Article (BlogPosting) and BreadcrumbList , Added <time datetime> tags where blog dates renders
* Sanity (#203)
* feat(Blog):fix for clickable link in post details, fix for author details
* feat(Blog):refactoring after removing author modal
* feat(Blog): fix unified date format
* feat(Blog): Fix for click-outside-to-close search, recommended posts are limited to 3
* feat(Blog): selectedAuthorData fixed
* feat(Blog): Added description for /blog/[slug] metadata, Added Schema.org JSON‑LD for Article (BlogPosting) and BreadcrumbList , Added <time datetime> tags where blog dates renders
* feat(Blog): fix hover social links, fixed duplication not found search
* (SP: 3) [Frontend] Refactor Header UI and navigation states (#201)
* (SP: 3) [Frontend] Refactor Header UI and navigation states
- Add icon to the language switcher
- Add GitHub icon with stars indicator (frontend only)
- Update logo styles
- Improve touch interaction styles
- Verify correct placement and alignment of all header components
- Make mobile header modal full-screen
- Disable background scroll when mobile menu is open
- Highlight active navigation item
- Update navigation styles:
- Highlight Shop link when user is on Home pages
- Highlight Home link when user is on Shop pages
- Style changes only, no routing or logic changes
* fix CodeRabbit
* update HeaderButton styles
* fix: add accessibility for HeaderButton
* (SP: 3) [Testing] Vitest config + unit + integration tests for quiz module (#204)
* feat(quiz-ui): quiz UI polish - tabs, category accents, color scheme (issues #181, #193, #194)
- Refactor QaTabButton to shared CategoryTabButton component
- Add category accent colors to QuizCard, buttons, progress indicators
- Standardize colors with CSS variables, traffic light timer
- Add DynamicGridBackground to quizzes list page
- Border-only answer feedback, semi-transparent progress styles
* docs: update .gitignore
* fix(quiz): align disqualification threshold with warning banner
Changed violationsCount > 3 to >= 3 in QuizResult points block
to match the warning banner threshold at line 124.
* feat(quiz-testing): add quiz unit tests
- Configure Vitest for quiz module
- Add test factories and setup utilities
- Add quiz-crypto tests (13 tests)
- Add quiz-session tests (12 tests)
* test(quiz): add integration tests for verify-answer API and useAntiCheat hook (#199)
- verify-answer.test.ts: 8 tests for API endpoint
- Correct/wrong answer verification
- Validation errors (missing fields, tampered data)
- Security: rejects modified encrypted answers
- quiz-anticheat.test.ts: 10 tests for useAntiCheat hook
- Detects copy, paste, context-menu, tab-switch events
- Respects isActive flag
- Reset and cleanup functionality
Total quiz tests: 52 (9 setup + 25 unit + 18 integration)
* test(quiz): expand test coverage to 90%+ with hooks, API routes, and UI flow
Add 28 new tests covering:
- useQuizSession hook (6 tests)
- useQuizGuards hook (8 tests)
- guest-quiz storage (5 tests)
- guest-result API route (5 tests)
- quiz-slug API route (3 tests)
- QuizContainer UI flow (1 test)
Coverage: 35% -> 90.94% (quiz scope)
Tests: 52 -> 80
* chore: remove coverage-quiz from git, add to .gitignore
* chore: add coverage-quiz to .gitignore, fix quiz guards test
* fix(leaderboard): improve table mobile
* fix(leaderboard): correct malformed shadow class syntax for avatar glow
* Feature/leaderboard style update (#206)
* fix:leaderboard update leaderboard-style
* fix:leaderboard update leaderboard-style on mobile
* fix: resolve CodeRabbit issues and conflicts
* fix: move row border to first cell to resolve CodeRabbit issue
* fix: move row border to first cell to resolve CodeRabbit issue new
* fix(leaderboard): improve table mobile
* fix(leaderboard): correct malformed shadow class syntax for avatar glow
* test(q&a): add comprehensive qa tests and coverage setup (#208)
* test(q&a): add comprehensive qa tests and coverage setup
* test(q&a): align mocks and reset in qa tests
* (SP: 1) [Frontend] Remove Contacts References (#211)
* test(q&a): add comprehensive qa tests and coverage setup
* test(q&a): align mocks and reset in qa tests
* chore(nav): remove contacts page references
* Sanity (#209)
* feat(Blog):fix for clickable link in post details, fix for author details
* feat(Blog):refactoring after removing author modal
* feat(Blog): fix unified date format
* feat(Blog): Fix for click-outside-to-close search, recommended posts are limited to 3
* feat(Blog): selectedAuthorData fixed
* feat(Blog): Added description for /blog/[slug] metadata, Added Schema.org JSON‑LD for Article (BlogPosting) and BreadcrumbList , Added <time datetime> tags where blog dates renders
* feat(Blog): fix hover social links, fixed duplication not found search
* feat(Blog): Added: breadcrumbs to the post details page and updated the BreadcrumbList, logo to the cocial links in User info, Fixed: main container alignment, category navigation in breadcrumbs
* feat(Blog): Added: breadcrumbs to the post details page and updated the BreadcrumbList, logo to the cocial links in User info, Fixed: main container alignment, category navigation in breadcrumbs
* feat(Blog): Added scroll on the main blog page on filtering by author, fied breadcrumbs category translaion, added category to the recommended cards, fixed search for localisations
* feat(Blog): Changed image size on the post details page
* chore(release): update changelog for v0.5.0
* chore(release): v0.5.0
* [Refactor] Code Quality Improvements: Accessibility, Mobile Support, … (#213)
* fix(leaderboard): adjust podium heights for better visibility on desktop
* Feature/leaderboard style update (#214)
* fix(leaderboard): fix layout centering
* feat(Blog) (#216)
* feat(Blog) (#218)
* feat(Blog):fix for clickable link in post details, fix for author details
* feat(Blog):refactoring after removing author modal
* feat(Blog): fix unified date format
* feat(Blog): Fix for click-outside-to-close search, recommended posts are limited to 3
* feat(Blog): selectedAuthorData fixed
* feat(Blog): Added description for /blog/[slug] metadata, Added Schema.org JSON‑LD for Article (BlogPosting) and BreadcrumbList , Added <time datetime> tags where blog dates renders
* feat(Blog): fix hover social links, fixed duplication not found search
* feat(Blog): Added: breadcrumbs to the post details page and updated the BreadcrumbList, logo to the cocial links in User info, Fixed: main container alignment, category navigation in breadcrumbs
* feat(Blog): Added: breadcrumbs to the post details page and updated the BreadcrumbList, logo to the cocial links in User info, Fixed: main container alignment, category navigation in breadcrumbs
* feat(Blog): Added scroll on the main blog page on filtering by author, fied breadcrumbs category translaion, added category to the recommended cards, fixed search for localisations
* feat(Blog): Changed image size on the post details page
* feat(Blog): added tests
* feat(Blog): fix for big post on the post page, added tests
* feat(Blog): resolving comments
* feat(Blog): fixed hover for social links icins - dark theme
* (SP: 1) feat(i18n): translate 404 error page (#217)
- Add 404 translations (uk/en/pl)
- Implement [Global/Local/Combined] strategy
- Add helpful navigation links
* (SP: 2) [Frontend] Refactor Home HeroSection and Footer stylestor/home (#221)
* (SP:1) fix: 404 page layout (#219)
- 404 translations (uk/en/pl)
- Implement Global strategy
* feat(Blog) (#222)
* feat(Blog):fix for clickable link in post details, fix for author details
* feat(Blog):refactoring after removing author modal
* feat(Blog): fix unified date format
* feat(Blog): Fix for click-outside-to-close search, recommended posts are limited to 3
* feat(Blog): selectedAuthorData fixed
* feat(Blog): Added description for /blog/[slug] metadata, Added Schema.org JSON‑LD for Article (BlogPosting) and BreadcrumbList , Added <time datetime> tags where blog dates renders
* feat(Blog): fix hover social links, fixed duplication not found search
* feat(Blog): Added: breadcrumbs to the post details page and updated the BreadcrumbList, logo to the cocial links in User info, Fixed: main container alignment, category navigation in breadcrumbs
* feat(Blog): Added: breadcrumbs to the post details page and updated the BreadcrumbList, logo to the cocial links in User info, Fixed: main container alignment, category navigation in breadcrumbs
* feat(Blog): Added scroll on the main blog page on filtering by author, fied breadcrumbs category translaion, added category to the recommended cards, fixed search for localisations
* feat(Blog): Changed image size on the post details page
* feat(Blog): added tests
* feat(Blog): fix for big post on the post page, added tests
* feat(Blog): resolving comments
* feat(Blog): fixed hover for social links icins - dark theme
* feat(Blog): bringing the style on the blog page to a single site style
* feat(blog): aligning syles
* feat(blog): resolving comment from CodeRabbit
* feat(blog):fix comment for deployment
* Update AI model from 'llama-3.3-70b-versatile' to 'llama3-70b-8192' (#223)
* (SP 2) [Frontend] Update Features section content and improve mobile UX (#224)
* (SP 2) [Frontend] Update Features section content and improve mobile UX
- Features Section: Refined feature content and visuals.
- Mobile UX: Improved responsive layout and scaling for feature cards and interactive elements.
- Visual Enhancements: Added dynamic particle background effects to the Pricing section.
* fix(review): address accessibility, security, and performance feedback
* fix(review): resolve accessibility and hydration issues
* fix(perf): implement frame-rate independent animations
* fix(review): address accessibility, security, and performance feedback
* fix(review): enable SSR for features section and support HiDPI canvas
* fix(review): correct HiDPI logic for particle canvas measurements
* (SP:3) feat(i18n): add UA and PL translations for shop/admin pages
Add comprehensive i18n support for shop and admin sections in 3 languages (en, uk,
pl).
Translation coverage:
- Shop pages: main page, products, cart, checkout, orders
- Admin pages: dashboard, products management, orders management
- Navigation: header, mobile menu, category links
- Product components: cards, filters, sort, badges (NEW/SALE)
- Category names: Apparel, Lifestyle, Collectibles
- All UI buttons, labels, and actions
Key changes:
- Added ~250+ translation keys to messages/en.json, messages/uk.json,
messages/pl.json
- Updated 20+ components to use useTranslations() and getTranslations()
- Implemented color translation in cart and product detail pages
- Translated hero message
- Added badge translations
* fix(i18n): correct translation keys and localization in shop pages
- Replace confusing error.order with success.orderLabel in checkout success page
heading
- Localize boolean stockRestored display (yes/no instead of true/false) in order
details
- Fix active state detection for shop category links in mobile menu using search
params
- Add missing translation keys (orderLabel, yes, no) to all locales (en, uk, pl)
* fix(netlify): resolve AI API crash and 404 locale/theme issues
AI fixes:
- Extract getClientIp to separate file (avoid db import crash)
- Add missing zod dependency to package.json
404 page fixes:
- Use NEXT_LOCALE cookie for locale detection on Netlify
- Add theme detection script in root layout
- Update styling with hero background and gradient text
* Update frontend/app/not-found.tsx
* (SP:3) feat(i18n): translate about page and auth form validation messages
- Add about page translations (EN, UK, PL)
- Add auth.fields.validation translations for form errors
* fix(api): resolve Netlify 503 errors and harden AI explain endpoint
- Use dynamic import for groq-sdk (Netlify compatibility) - Bypass rate limiting for unknown IPs (serverless safety)
- Safe JSON parsing with request.text() + empty body check
- Fix ReferenceError: remove undefined errorMessage variable
- Remove sensitive debug info from client responses
- Add i18n keys: pricing.heading, sponsors.ctaAriaLabel
* feat(api): add GET health check endpoint for ai-explain
* chore(release): v0.5.1
---------
Co-authored-by: liudmylasovetovs <milkaegik@gmail.com>
Co-authored-by: Tetiana Zorii <131365289+TiZorii@users.noreply.github.com>
Co-authored-by: Anna <komrakova.anna@gmail.com>
Co-authored-by: AlinaRyabova <alinavr7@gmail.com>
Co-authored-by: Yevhenii Datsenko <yevheniydatsenko@gmail.com>
Co-authored-by: YNazymko12 <yulychka12@gmail.com>
Co-authored-by: liudmylasovetovs <127711697+liudmylasovetovs@users.noreply.github.com>
Co-authored-by: AlinaRyabova <115992255+AlinaRyabova@users.noreply.github.com>
Co-authored-by: Lesia Soloviova <106915140+LesiaUKR@users.noreply.github.com>
Co-authored-by: Yuliia Nazymko <122815071+YNazymko12@users.noreply.github.com>
Co-authored-by: Yevhenii Datsenko <134847096+yevheniidatsenko@users.noreply.github.com>
Co-authored-by: tetiana zorii <tanyusha.zoriy@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
1 parent 1d67be6 commit 31f3853
0 file changed
0 commit comments