Commit Graph

264 Commits

Author SHA1 Message Date
parsa aghaei
59fba0484c fix(backend): add js-yaml dependency and type definitions for openapi generator
Some checks failed
Deploy Canina / deploy (push) Failing after 28s
2026-08-08 17:48:28 +03:30
parsa aghaei
e281ef75da feat(security/devops): disable swagger in prod, secure staging with basic auth & noindex, add DB backup script and uploads volume persistence
Some checks failed
Deploy Canina / deploy (push) Failing after 29s
2026-08-08 17:46:42 +03:30
9f11d8fb2d chore(workspace): eradicate all tsc errors and eslint warnings across frontend, admin, and backend
Some checks failed
Deploy Canina / deploy (push) Failing after 29s
2026-08-07 07:39:26 +03:30
1ae4c99ffc feat(backend): implement Phase A database models and controllers for cross-boundary dependencies
Some checks failed
Deploy Canina / deploy (push) Failing after 28s
2026-08-06 23:45:51 +03:30
ad3f149789 feat(devops,docs,verify): implement Phase 4 CI pipeline, OpenAPI synchronization, and E2E verification matrix
Some checks failed
Deploy Canina / deploy (push) Failing after 28s
2026-08-06 22:27:56 +03:30
71e19bfe43 fix(orders): add type assertions for Prisma relations in checkAndSendRefillReminders
Some checks failed
Deploy Canina / deploy (push) Failing after 28s
2026-08-06 21:44:44 +03:30
809c69f923 feat(phase2): implement database optimization and RBAC enforcement
Some checks failed
Deploy Canina / deploy (push) Failing after 28s
- TASK-FIN-001: Eliminate N+1 query loop in OrdersService.create with batched findMany query.
- Perform monetary calculations strictly using Prisma.Decimal methods (.add(), .mul(), .sub()).
- Add validation for duplicate product IDs and invalid quantities in order items.
- Implement global DecimalInterceptor registered in main.ts to serialize Prisma.Decimal values into exact string representations in API responses.
- TASK-SEC-003: Create roles.decorator.ts and roles.guard.ts in common directory with backward-compatible re-exports in auth directory.
- Enforce RBAC on SettingsController with @UseGuards(JwtAuthGuard, RolesGuard) and @Roles('Admin').
- Add unit specs for DecimalInterceptor, RolesGuard, SettingsController, and OrdersService Decimal batch operations.
2026-08-06 21:29:20 +03:30
a64291a19a feat(security): implement phase 1 core security & build hygiene
Some checks failed
Deploy Canina / deploy (push) Failing after 28s
2026-08-06 21:15:18 +03:30
parsa aghaei
053d6f06d8 fix(types): resolve type errors in ReportData, SmsService, and GetProductsDto
Some checks are pending
Deploy Canina / deploy (push) Waiting to run
2026-08-05 15:48:11 +03:30
parsa aghaei
8a05854aa0 feat(orders): atomic order transaction and refill cron job handler [TASK-26.19] 2026-08-05 14:41:58 +03:30
parsa aghaei
cbcff26e63 feat(pets): add admin pet health records query and paginated pet list endpoint [TASK-26.17] 2026-08-05 14:41:26 +03:30
parsa aghaei
d94b33f96d feat(admin): wallet adjustment endpoint and atomic prisma wallet topup transaction [TASK-26.14] [TASK-26.15] [TASK-26.16] 2026-08-05 14:40:35 +03:30
parsa aghaei
3497a743b3 feat(products): fix search query filter overwrite and add minPrice maxPrice sorting filters [TASK-26.10] [TASK-26.11] 2026-08-05 14:39:58 +03:30
parsa aghaei
350182c5a4 security(auth): remove OTP console log and hardcoded admin credentials [TASK-26.4] [TASK-26.5] 2026-08-05 14:38:57 +03:30
parsa aghaei
c6aa77f7c9 feat(admin): add product buy price field, dual price/percentage margin calculator, and security sanitization [TASK-BUYPRICE] 2026-08-03 12:04:27 +03:30
parsa aghaei
67bc500692 security(products): sanitize wholesalePrice for non-B2B/Admin roles [TASK-19.1] 2026-08-03 11:50:20 +03:30
parsa aghaei
920dd532e8 fix(admin-panel): resolve all ESLint errors, types, and hooks lifecycle warnings 2026-08-02 17:08:01 +03:30
parsa aghaei
a1f0640483 fix(linter): resolve all linter rules and type errors across 3 subprojects 2026-08-02 09:39:53 +03:30
parsa aghaei
b6b2d20b16 feat(sms): set MeliPayamak username 9364100228 and patterns 508079, 508081, 508082, 508083 (TASK-9.1) 2026-08-02 09:30:21 +03:30
parsa aghaei
47bff2c6ed feat(doctor): implement Doctors / Vets CRUD backend and DB model (TASK-2.18) 2026-08-02 09:29:33 +03:30
parsa aghaei
d784f3fcc7 feat(admin): update dashboard real analytics & wiki related products (TASK-2.21, TASK-2.22, TASK-2.23) 2026-08-02 09:28:17 +03:30
parsa aghaei
88521c6bac feat(settings): add Maintenance Mode, Catalog Mode, Brand Identity & UI Text management (TASK-2.14, TASK-2.15, TASK-2.16) 2026-08-02 09:26:06 +03:30
parsa aghaei
e2e9615bd8 feat(media): implement persistent storage & media SEO fields (altText, title, description, caption) (TASK-2.5, TASK-2.6) 2026-08-02 09:23:30 +03:30
parsa aghaei
357fb73d5e feat(product): add product gallery images and multimedia fields podcastUrl/videoUrl/pdfUrl (TASK-2.2, TASK-2.3, TASK-2.4) 2026-08-02 09:21:27 +03:30
parsa aghaei
2ce24b0473 fix(admin): cleanup price display input, upgrade pagination component and extend roles guard for CMS & B2B 2026-08-01 18:30:14 +03:30
parsa aghaei
2aea3bded4 feat(contact): implement contact form submission, admin management and dynamic contact info 2026-08-01 18:28:19 +03:30
parsa aghaei
95e488baaa fix(lint): sync clean types and imports to main
All checks were successful
Deploy Canina / deploy (push) Successful in 1m54s
2026-07-29 16:45:13 +03:30
parsa aghaei
2de442dbae fix(lint): clean up type definitions and missing imports
Some checks failed
Deploy Canina / deploy (push) Failing after 30m46s
2026-07-29 16:44:53 +03:30
parsa aghaei
f0329d8b5b fix(admin): sync product update & image URL features to main
Some checks failed
Deploy Canina / deploy (push) Failing after 1m1s
2026-07-29 16:42:30 +03:30
parsa aghaei
9c8286c63f fix(admin): resolve 500 on missing product update and add direct image URL & paste support
Some checks failed
Deploy Canina / deploy (push) Has been cancelled
2026-07-29 16:42:23 +03:30
parsa aghaei
a3291cc468 feat(agency): implement Farsi error handling, trust seals page, and MeliPayamak SMS integration
Some checks failed
Deploy Canina / deploy (push) Has been cancelled
2026-07-29 16:40:42 +03:30
parsa aghaei
a767e9a6b8 merge: sync develop fixes into main
Some checks failed
Deploy Canina / deploy (push) Failing after 9m25s
2026-07-29 15:55:50 +03:30
parsa aghaei
bf60df34ef fix(seed): safely handle blog upsert in try-catch block
All checks were successful
Deploy Canina / deploy (push) Successful in 2m6s
2026-07-29 15:49:39 +03:30
parsa aghaei
84d9ed3a9d perf(docker): replace slow RUN chown -R with fast COPY --chown in backend Dockerfile 2026-07-29 15:48:26 +03:30
parsa aghaei
62bd8811fa style: apply standard ESLint & Prettier formatting across backend
All checks were successful
Deploy Canina / deploy (push) Successful in 4m58s
2026-07-29 15:41:53 +03:30
parsa aghaei
ae636c8b03 fix(seed): add explicit String casting for ingredient and symptom loop items to satisfy TypeScript compiler 2026-07-29 15:40:44 +03:30
parsa aghaei
3ede3c31f9 fix(seed): format seed-products.ts with Prettier and add type annotations for ESLint 2026-07-29 15:40:01 +03:30
parsa aghaei
ddf2bafb3c fix(seed): deduplicate ingredients and symptoms to ensure clean database seeding 2026-07-29 15:38:15 +03:30
parsa aghaei
8a6afa10d8 fix(seed): remove duplicate out-of-scope code in seed-products.ts
Some checks failed
Deploy Canina / deploy (push) Has been cancelled
2026-07-29 15:23:14 +03:30
parsa aghaei
e1fb300b87 fix(seed): handle duplicate product barcodes safely with try-catch in seed-products.ts
Some checks failed
Deploy Canina / deploy (push) Has been cancelled
2026-07-29 15:21:41 +03:30
parsa aghaei
485c6bfec6 fix(prisma): add dedicated tsconfig.seed.json for clean cross-platform seeding
All checks were successful
Deploy Canina / deploy (push) Successful in 5m57s
2026-07-29 14:36:20 +03:30
parsa aghaei
782720d86d fix: use ts-node transpile-only with CJS override for seed (no new packages)
All checks were successful
Deploy Canina / deploy (push) Successful in 10m25s
- Remove tsx (Nexus doesn't have it cached - causes E404)
- Use ts-node --transpile-only --compiler-options with module:CommonJS
  to bypass nodenext ESM cycle issue without any new dependencies
- Copy tsconfig.json to runtime container for ts-node compatibility
2026-07-29 14:21:58 +03:30
parsa aghaei
813f5d7bc6 fix: use tsx for prisma seed to resolve ESM/CJS cycle in Node 20
Some checks failed
Deploy Canina / deploy (push) Failing after 41s
- Replace ts-node/esm loader with tsx which handles nodenext module natively
- tsx avoids ERR_REQUIRE_CYCLE_MODULE with Prisma client ESM/CJS interop
- Add tsx ^4.19.0 as devDependency
2026-07-29 14:14:20 +03:30
parsa aghaei
776829e099 fix: seed command ESM compatibility and CI/CD timeout increase
All checks were successful
Deploy Canina / deploy (push) Successful in 10m5s
- Fix prisma seed command: use node --loader ts-node/esm (nodenext module needs ESM loader)
- Increase CI/CD timeout from 15m to 40m to accommodate Docker build + VPN time
- Prisma env vars already in compose files for OpenSSL 3.0.x binary selection
2026-07-29 14:00:00 +03:30
parsa aghaei
431e2b547d fix: Prisma OpenSSL engine binary detection on Alpine
All checks were successful
Deploy Canina / deploy (push) Successful in 34s
- Set PRISMA_SCHEMA_ENGINE_BINARY to 3.0.x binary path
- Set PRISMA_QUERY_ENGINE_LIBRARY to 3.0.x library path
- node:20-alpine has libssl.so.3 but no openssl CLI binary
- Prisma detection fails silently, defaults to 1.1.x engines
- Explicit paths bypass detection and use correct binaries
- Remove apk add openssl (not needed, causes build failure without VPN)
- backend Dockerfile: use PRISMA_CLI_BINARY_TARGETS to generate correct client
2026-07-29 09:21:39 +03:30
parsa aghaei
501addc909 fix: CI/CD pipeline, dynamic API URLs, Dockerfile fixes
All checks were successful
Deploy Canina / deploy (push) Successful in 5m39s
- Backend Dockerfile: add chown for node_modules (Prisma permissions fix)
- Frontend Dockerfile: add ARG/ENV for NEXT_PUBLIC_API_URL, VITE_API_URL
- nginx.conf: template with __PLACEHOLDERS__ for per-env substitution
- deploy.yml: SSH keepalive, sudo for VPN
- api.ts: dynamic API URL via env vars instead of hardcoded
- next.config.ts: rewrite only in development mode
- scripts: deploy.sh, compose.stage.yml, compose.prod.yml
2026-07-28 16:37:05 +03:30
parsa aghaei
ee65d87899 fix(prisma): export main in seed modules and execute directly in seed.ts 2026-07-28 16:36:30 +03:30
devops
e4c196b080 fix: VPN build, caching, Dockerfile fixes for Iran network
Some checks failed
Deploy Canina / deploy (push) Failing after 12s
2026-07-27 16:06:59 +00:00
devops
41d7629d2a fix: VPN build, caching, Dockerfile fixes for Iran network
Some checks failed
Deploy Canina / deploy (push) Failing after 12s
2026-07-27 16:06:35 +00:00
parsa aghaei
0540d8701e fix(prisma): add binaryTargets linux-musl-openssl-3.0.x to schema.prisma 2026-07-27 16:46:33 +03:30
parsa aghaei
f089f7ed91 fix(prisma-videos-ide): resolve IDE TypeScript error by accessing video model through typed getter helper in VideosService 2026-07-27 13:39:35 +03:30
parsa aghaei
3e9fffe71f feat(cms-builder-videos-hydration-catalog): resolve IDE Prisma types, fix Header hydration error, add Media Upload & Aparat embed to Admin Videos, fix Catalog scrollbar/spacing, and overhaul CMS into section-by-section Visual Page Builder 2026-07-27 12:25:36 +03:30
parsa aghaei
2b1bd9efcb feat(header-refill-videos): restore full DB seeding, wire homepage videos to backend API, upgrade Refill to Cashback Loyalty system, and refactor Header into 2-tier Mega-Menu layout 2026-07-27 12:07:29 +03:30
parsa aghaei
52f0caccfc feat(videos): add Video module in NestJS, build Video CRUD in Admin Panel, sync dynamic video fetching on frontend, and update catalog links to /catalog 2026-07-27 11:54:16 +03:30
parsa aghaei
85d5a11a5e feat(refill): overhaul subscription model to Smart Course Reservation & 5% Next-Order Loyalty Voucher reward 2026-07-27 11:46:45 +03:30
parsa aghaei
24c361c4ff feat(admin): overhaul orders management page with interactive modal, postal tracking code editor, inline status selector and invoice print 2026-07-27 11:27:47 +03:30
parsa aghaei
377ec7fb34 fix(orders,wallet): implement full-stack wallet deduction in PostgreSQL and sync charity donation total in user profile 2026-07-26 20:40:01 +03:30
parsa aghaei
51b2f811fa fix(orders): add type assertion to order creation payload to eliminate IDE TS server cache warning 2026-07-26 20:34:07 +03:30
parsa aghaei
72badb1a7b fix(auth,backend): synchronize auth state across stores, reset guest profile data, and resolve backend spec compilation 2026-07-26 20:18:35 +03:30
parsa aghaei
4979d4120c fix(checkout,orders,admin): resolve guest checkout address bug, persist refill and charity in DB, and fix admin media thumbnail cropping 2026-07-26 20:11:26 +03:30
parsa aghaei
989f77e106 fix(shop): map requiresRx in productService, enable backend query param filtering, and classify 11 prescription vs 24 OTC products 2026-07-26 20:03:45 +03:30
parsa aghaei
0bdb500554 feat(backend): support prescriptionUrl attachment in CreateOrderDto and OrdersService 2026-07-26 19:21:46 +03:30
parsa aghaei
7cc5c7d176 feat(backend): implement WholesaleModule for B2B wholesale applications and admin approvals 2026-07-26 19:20:29 +03:30
parsa aghaei
0046fb7106 feat(backend): implement CmsModule for full CRUD of HeroBanners, VetTestimonials, and SmartAdvisorRules 2026-07-26 19:17:23 +03:30
parsa aghaei
0162bc7b6d fix: resolve TypeScript build error in SmartAdvisor, wire live API products, and verify 3-app production build 2026-07-26 18:42:32 +03:30
parsa aghaei
6a8d20f81a feat: add SeoModule, rate limiting, and complete agency task backlog execution 2026-07-26 17:55:54 +03:30
parsa aghaei
0a04bac013 feat: complete specialist review and initial agency alignment for Canina Iran 2026-07-26 17:54:46 +03:30
parsa aghaei
08c968300f feat: TASK-101 - optimize Prisma schema, compound indexes, wholesale price and Rx fields 2026-07-26 16:25:01 +03:30
parsa aghaei
1340a2be87 refactor(backend): consolidate all prisma seeders into single master seed.ts entrypoint 2026-07-21 14:53:09 +03:30
parsa aghaei
ac4813ebde feat(admin/seo): add Google SERP Simulator in SEO tab, View Online deep link in modal header & seed scientific taglines in database 2026-07-15 17:56:37 +03:30
parsa aghaei
8345410376 feat(admin): implement symptoms management in admin panel product form 2026-07-15 17:49:03 +03:30
parsa aghaei
717a61a225 fix(database): fix baseSlug format in products seed to populate product symptoms successfully + format cleanup in ArchivePage 2026-07-15 17:46:27 +03:30
parsa aghaei
6dafe86344 feat: full symptoms filtering system — backend API, megamenu pills, sidebar server-side filter, PDP tags 2026-07-15 15:03:09 +03:30
parsa aghaei
f66170cc20 feat: split Product name into nameFa and nameEn, add symptoms mapping mapping to seed-products 2026-07-15 14:08:45 +03:30
parsa aghaei
1d9b699d61 feat: implement dynamic category solutions in MegaMenu navigation and convert static footer buttons to Next.js links 2026-07-15 13:53:23 +03:30
parsa aghaei
0ccf37f922 feat: implement fully dynamic filter sidebar in backend getActiveFilters and frontend ArchivePage mapping with URL sync 2026-07-15 13:49:13 +03:30
parsa aghaei
27ac668e42 fix: re-seed database with exact official PDF catalog details, prices, Farsi categories, and short descriptions, and remove frontend slicing fallbacks 2026-07-15 12:18:58 +03:30
parsa aghaei
67d6f71d7a fix: resolve product images falling back to logo by mapping real URLs in database seed, correct 2x price discrepancy to match PDF catalog exactly, and set local cover for third video 2026-07-15 11:51:10 +03:30
parsa aghaei
cf705ea121 style: improve health advisor UX, fix broken thumbnails, add Persian equivalents to product names for SEO, and refine card title alignments 2026-07-15 11:40:39 +03:30
parsa aghaei
4d14885feb feat: complete currency, font, new pages, footer logo, dynamic PDP layout and custom dosage titles 2026-07-14 20:03:25 +03:30
devops
2c47e35153 fix: IngredientWiki fallback to scientificTerms from API with keywords as benefits
All checks were successful
Deploy Canina / deploy (push) Successful in 1m8s
2026-07-14 12:27:43 +00:00
devops
f71b22a664 fix: wiki sortBy, wiki detail page endpoint, blog SSR URL, and upload volume
All checks were successful
Deploy Canina / deploy (push) Successful in 1m34s
2026-07-14 12:19:40 +00:00
devops
10849233de trigger ci rebuild
All checks were successful
Deploy Canina / deploy (push) Successful in 49s
2026-07-14 11:59:00 +00:00
DevOps
3c8f7729c2 ci: use sh shell instead of bash for ci-runner (Alpine based)
Some checks failed
Deploy Canina / deploy (push) Failing after 1m45s
2026-07-14 03:32:53 +00:00
DevOps
a5b1b31ef8 ci: trigger deploy after SSH config fix
Some checks failed
Deploy Canina / deploy (push) Failing after 1s
2026-07-13 13:13:52 +00:00
DevOps
1b2040c880 fix: production URLs for admin panel, seed __dirname, nginx.conf
Some checks failed
Deploy Canina / deploy (push) Failing after 8m3s
2026-07-13 11:20:43 +00:00
parsa aghaei
60939f14ea chore: remove committed build artifacts (node_modules, dist, .next)
- Remove node_modules, dist, .next from git tracking
- Add .next and *.tsbuildinfo to .gitignore
- Remove Iranian mirrors from Dockerfiles (arvancloud.ir)
- Add npm ci step for dependency installation
- Ready for VPN-based internet access workflow
2026-07-12 13:24:33 +03:30
parsa aghaei
e236190aaa nodemodules added to repo 2026-07-11 20:56:16 +03:30
parsa aghaei
b0d639996b dockerfile changes 2026-07-11 20:15:19 +03:30
parsa aghaei
40d750ad4b fix: hero image configurable via uiText + seed no longer overwrites admin values
- Hero.tsx reads hero_image_url from uiText store first, falls back to banners then default
- Seed script now only creates keys that don't exist (no overwrite)
- Added hero_image_url key to seed + admin panel UI texts groups
- Reverted DEFAULT_TEXTS initialization (caused hydration mismatch)
- settingsStore back to empty init, fetchSettings populates from API
2026-07-11 18:25:59 +03:30
parsa aghaei
1a0c98a34e feat: dynamic UI texts system + admin panel editor + Vazirmatn local font + bug fixes
- Add getText() system for all homepage sections (Header, Hero, FeaturedProducts, SmartAdvisor, VetGallery, Footer)
- Add UITexts admin page in frontend/admin-panel with search, group collapse, per-key save
- Add seed-ui-texts.ts with 102 texts in 9 groups
- Add local VazirmatnVariable.woff2 font, remove CDN + Inter references
- Fix hero image path, productService return type { data, meta }
- Fix ArchivePage pagination + CATEGORIES list + breadcrumbs
- Fix BlogPage/Wiki page links + brightness-0 invert removal
- Fix IngredientWiki search + product links + placeholder
- Fix all getProducts() callers for { data } destructuring
- Fix sitemap.ts, CartDrawer, B2BPortal, CheckoutPage type issues
- Add .gitignore for /fonts/ and /backend/uploads/
2026-07-11 17:19:55 +03:30
parsa aghaei
ab7ed279c8 fix: await params Promise in blog and wiki [slug] pages for Next.js 16
- blog/[slug]/page.tsx: fix params type to Promise and await it
- wiki/[slug]/page.tsx: fix params type to Promise and await it + Fix API port from 4000 to 4001
- blog/page.tsx: fix fallback API URL from port 4000 to 4001
2026-07-11 15:51:29 +03:30
parsa aghaei
7615aa0e51 fix: resolve seed encoding, search param, and wiki data source issues
- Fix seed-products.ts TS error (implicit any) and BOM handling
- Re-run full seed to restore correct Persian encoding in DB
- Fix productService query→search param mismatch
- Fix IngredientWiki hardcoded port 4000→use settingsStore
- Restore seed-products-data.json from git after accidental corruption
2026-07-11 15:40:49 +03:30
parsa aghaei
cd17a532d9 fix: resolve backend TS compilation errors, startup order, and add clipboard paste upload
- Fix products.service.ts: ingredients -> ingredientList (Prisma relation name)
- Fix seed-blogs.ts: template literal refactor (array join) to avoid esbuild parse error
- Fix seed-custom.ts: category string -> connectOrCreate relation
- Add start-dev.js: sequential startup (backend first, then frontends)
- Add Ctrl+V paste upload to admin MediaSelector component
- Create missing images/vets/ and images/slider/ directories
2026-07-11 13:51:12 +03:30
parsa aghaei
0ea6c6d271 feat: enrich all site content with Canina pharma research data
- Add 20 new products to frontend products.ts (total 29 products)
- Enrich existing 9 product descriptions with biochemical/clinical details
- Add new blog articles with real content from research document
- Update UI texts with Canina brand history (1984 founding, IFS/HACCP)
- Add 9 new scientific terms (Ca:P, D3, BARF, biotin, taurine, etc.)
- Expand INGREDIENTS_WIKI with collagens, biotin, taurine entries
- Add new medical options (heart disease, parasites) to SmartAdvisor
2026-07-11 13:34:22 +03:30
parsa aghaei
140872c888 fix: resolve Hero image CORS, button contrast, floating labels, footer border + refactor product seeder with full catalog data from JSON + add barcode/buyPrice/productGroup fields to Product model 2026-07-11 13:21:30 +03:30
parsa aghaei
3dedc89ee1 تغییرات کلی در backend و frontend 2026-07-11 12:30:17 +03:30
71f5ac2fa6 fix: resolve unique constraint bug in prisma seeders and run products/home seeders successfully 2026-07-10 18:20:05 +03:30
f69537a688 feat: rename brand from canina to canino across codebase 2026-07-10 16:32:31 +03:30
2851ef8a25 feat: complete backend swagger annotations, admin pages pagination, and frontend application fixes 2026-07-10 16:13:52 +03:30
24137beb32 docs: complete swagger annotations for auth, home, blogs and wiki endpoints 2026-06-12 23:30:22 +03:30
dcfc4acae4 fix: restore wiki to dictionary, create dynamic blog pages and backend wiki CRUD 2026-06-12 23:14:21 +03:30
945c007a79 feat: complete app democking, fix types, add blogs api 2026-06-12 22:53:57 +03:30
6027e635db feat: implement backend auth and fix pet profile payload 2026-06-12 22:37:35 +03:30
82ab454647 Fix Admin panel categories modal, add error handling, enforce cursor-pointer globally 2026-06-12 21:57:09 +03:30
69502fc380 feat: implement advanced reports, pagination for all tables, global settings, and discounts modules 2026-06-12 16:28:06 +03:30
a7ebb8d792 feat: complete admin panel major functionalities including responsive layout, recharts, custom modals, inline editing, and loading states 2026-06-12 16:19:57 +03:30
ee041d4e52 fix: resolve Hyper-V reserved port collisions and Tailwind v4 CSS 2026-06-12 14:18:55 +03:30
29ab7f4141 fix: change frontend and backend ports to resolve EACCES 3000 2026-06-12 14:05:50 +03:30
0fa65c0802 feat: backend database changes for advanced SEO fields 2026-06-12 01:25:08 +03:30
eff6c00a9c feat: complete phase 2 mock removal and db seed 2026-06-12 00:58:10 +03:30
4b69932409 chore: save initial uncommitted changes 2026-06-12 00:21:03 +03:30
40ff169dc2 feat: complete testing, security, dynamic content, and devops overhaul 2026-05-27 02:00:14 +03:30
467532713c feat: connect UI texts, address CRUD, OTP autofocus and profile to backend 2026-05-26 21:39:14 +03:30