Commit a1562c4
Release v0.5.0 (#212)
* (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 (#187)
* 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
---------
Co-authored-by: Viktor Svertoka <victor.svertoka@gmail.com>
* (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)
* 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
* 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
---------
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>1 parent ecb7478 commit a1562c4
167 files changed
Lines changed: 15347 additions & 3077 deletions
File tree
- frontend
- app
- [locale]
- blog
- [slug]
- category/[category]
- contacts
- dashboard
- leaderboard
- quizzes
- shop
- admin
- orders
- products
- cart
- checkout/payment
- [orderId]
- orders
- products
- api
- ai/explain
- blog-author
- blog-search
- shop
- admin
- orders
- [id]
- refund
- reconcile-stale
- products
- [id]
- status
- cart/rehydrate
- catalog
- checkout
- internal/orders/restock-stale
- orders/[id]
- webhooks/stripe
- stats
- components
- about
- auth
- blog
- header
- leaderboard
- q&a
- quiz
- tests
- shop
- admin
- header
- tests/q&a
- theme
- ui
- data
- db/schema
- docs/security
- drizzle
- meta
- hooks
- i18n
- lib
- ai
- blog
- errors
- security
- services
- products
- admin
- mutations
- shop
- tests
- factories/quiz
- helpers
- q&a
- quiz
- messages
- studio
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| 33 | + | |
33 | 34 | | |
34 | 35 | | |
35 | 36 | | |
| |||
64 | 65 | | |
65 | 66 | | |
66 | 67 | | |
67 | | - | |
| 68 | + | |
68 | 69 | | |
69 | 70 | | |
70 | 71 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
159 | 159 | | |
160 | 160 | | |
161 | 161 | | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
| 2 | + | |
2 | 3 | | |
| 4 | + | |
3 | 5 | | |
4 | 6 | | |
5 | 7 | | |
| |||
83 | 85 | | |
84 | 86 | | |
85 | 87 | | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
86 | 93 | | |
87 | 94 | | |
88 | 95 | | |
89 | 96 | | |
90 | 97 | | |
91 | 98 | | |
92 | 99 | | |
| 100 | + | |
| 101 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| |||
45 | 46 | | |
46 | 47 | | |
47 | 48 | | |
48 | | - | |
49 | | - | |
| 49 | + | |
| 50 | + | |
0 commit comments