/ (root) ├── .env ├── .gitignore ├── Dockerfile ├── README.md ├── config.js ├── docker-compose.yml ├── fileStructure.txt ├── index.html ├── main.jsx ├── nginx.conf ├── package.json ├── setup-frontend.sh ├── start.sh ├── vite.config.js │ ├── backend/ │ ├── node_modules/ │ ├── public/ │ │ ├── seo-files/ │ │ ├── uploads/ │ │ ├── robots.txt │ │ └── sitemap.xml │ │ │ └── src/ │ ├── db/ │ │ └── index.js │ │ │ ├── middleware/ │ │ ├── adminAuth.js │ │ ├── auth.js │ │ ├── seoMiddleware.js │ │ └── upload.js │ │ │ ├── models/ │ │ └── SystemSettings.js │ │ │ ├── routes/ │ │ ├── auth.js │ │ ├── blog.js │ │ ├── blogAdmin.js │ │ ├── blogCommentsAdmin.js │ │ ├── cart.js │ │ ├── categoryAdmin.js │ │ ├── couponAdmin.js │ │ ├── emailCampaignsAdmin.js │ │ ├── emailTemplatesAdmin.js │ │ ├── emailTracking.js │ │ ├── images.js │ │ ├── mailingListAdmin.js │ │ ├── orderAdmin.js │ │ ├── productAdmin.js │ │ ├── productAdminImages.js │ │ ├── productReviews.js │ │ ├── productReviewsAdmin.js │ │ ├── products.js │ │ ├── publicSettings.js │ │ ├── settingsAdmin.js │ │ ├── shipping.js │ │ ├── stripePayment.js │ │ ├── subscribers.js │ │ ├── subscribersAdmin.js │ │ ├── userAdmin.js │ │ └── userOrders.js │ │ │ ├── services/ │ │ ├── cacheService.js │ │ ├── emailService.js │ │ ├── notificationService.js │ │ ├── queueService.js │ │ ├── shippingService.js │ │ ├── sitemapService.js │ │ └── storageService.js │ │ │ └── uploads/ │ ├── temp/ │ ├── config.js │ ├── index.js │ └── worker.js │ ├── db/ │ ├── init/ │ │ ├── 01-schema.sql │ │ ├── 02-seed.sql │ │ ├── 03-api-key.sql │ │ ├── 04-product-images.sql │ │ ├── 05-admin-role.sql │ │ ├── 06-product-categories.sql │ │ ├── 07-user-keys.sql │ │ ├── 08-create-email.sql │ │ ├── 09-system-settings.sql │ │ ├── 10-payment.sql │ │ ├── 11-notifications.sql │ │ ├── 12-shipping-orders.sql │ │ ├── 13-cart-metadata.sql │ │ ├── 14-product-notifications.sql │ │ ├── 15-coupon.sql │ │ ├── 16-blog-schema.sql │ │ ├── 17-product-reviews.sql │ │ ├── 18-email-templates.sql │ │ ├── 19-branding-settings.sql │ │ ├── 20-mailinglist.sql │ │ ├── 21-order-refund.sql │ │ └── 22-blog-json.sql │ │ │ └── test/ │ └── frontend/ ├── node_modules/ ├── public/ │ ├── seo-files/ │ └── favicon.svg │ └── src/ ├── assets/ ├── components/ │ ├── CookieConsentPopup.jsx │ ├── CookieSettingsButton.jsx │ ├── CouponInput.jsx │ ├── EmailDialog.jsx │ ├── Footer.jsx │ ├── ImageUploader.jsx │ ├── Notifications.jsx │ ├── OrderStatusDialog.jsx │ ├── ProductImage.jsx │ ├── ProductRatingDisplay.jsx │ ├── ProductReviews.jsx │ ├── ProtectedRoute.jsx │ ├── SEOMetaTags.jsx │ ├── StripePaymentForm.jsx │ └── SubscriptionForm.jsx │ ├── context/ │ └── StripeContext.jsx │ ├── features/ │ ├── auth/ │ │ └── authSlice.js │ ├── cart/ │ │ └── cartSlice.js │ └── ui/ │ └── uiSlice.js │ ├── hooks/ │ ├── adminHooks.js │ ├── apiHooks.js │ ├── blogHooks.js │ ├── brandingHooks.js │ ├── categoryAdminHooks.js │ ├── couponAdminHooks.js │ ├── emailCampaignHooks.js │ ├── emailTemplateHooks.js │ ├── productAdminHooks.js │ ├── productReviewHooks.js │ ├── reduxHooks.js │ ├── settingsAdminHooks.js │ ├── useProductSeo.js │ ├── useSeoMeta.js │ └── useSeoUrl.js │ ├── layouts/ │ ├── AdminLayout.jsx │ ├── AuthLayout.jsx │ └── MainLayout.jsx │ ├── pages/ │ ├── Admin/ │ │ ├── BlogCommentsPage.jsx │ │ ├── BlogEditPage.jsx │ │ ├── BlogPage.jsx │ │ ├── BlogPreviewPage.jsx │ │ ├── BrandingPage.jsx │ │ ├── CampaignAnalyticsPage.jsx │ │ ├── CampaignSendPage.jsx │ │ ├── CategoriesPage.jsx │ │ ├── CouponsPage.jsx │ │ ├── CustomersPage.jsx │ │ ├── DashboardPage.jsx │ │ ├── EmailCampaignEditorPage.jsx │ │ ├── EmailCampaignsPage.jsx │ │ ├── EmailTemplatesPage.jsx │ │ ├── MailingListsPage.jsx │ │ ├── OrdersPage.jsx │ │ ├── ProductEditPage.jsx │ │ ├── ProductReviewsPage.jsx │ │ ├── ProductsPage.jsx │ │ ├── ReportsPage.jsx │ │ ├── SettingsPage.jsx │ │ └── SubscribersPage.jsx │ │ │ ├── BlogDetailPage.jsx │ ├── BlogPage.jsx │ ├── CartPage.jsx │ ├── CheckoutPage.jsx │ ├── CouponEditPage.jsx │ ├── CouponRedemptionsPage.jsx │ ├── HomePage.jsx │ ├── LoginPage.jsx │ ├── NotFoundPage.jsx │ ├── PaymentCancelPage.jsx │ ├── PaymentSuccessPage.jsx │ ├── ProductDetailPage.jsx │ ├── ProductsPage.jsx │ ├── RegisterPage.jsx │ ├── SubscriptionConfirmPage.jsx │ ├── SubscriptionPreferencesPage.jsx │ ├── UnsubscribePage.jsx │ ├── UserOrdersPage.jsx │ └── VerifyPage.jsx │ ├── services/ │ ├── adminService.js │ ├── api.js │ ├── authService.js │ ├── blogAdminService.js │ ├── blogService.js │ ├── cartService.js │ ├── categoryAdminService.js │ ├── consentService.js │ ├── couponService.js │ ├── emailTemplateService.js │ ├── imageService.js │ ├── productReviewsService.js │ ├── productService.js │ └── settingsAdminService.js │ ├── store/ │ └── index.js │ ├── theme/ │ ├── index.js │ └── ThemeProvider.jsx │ └── utils/ ├── imageUtils.js └── App.jsx