Commit Graph

83 Commits

Author SHA1 Message Date
Your Name
bc948505e5 feat: enhance Content Security Policy and add mobile web app capability 2026-04-06 14:18:02 +02:00
Your Name
f63c929f25 fix: update API endpoint for signing PDF to match new route 2026-04-06 12:03:09 +02:00
Your Name
a539ad43af feat: add PWA support with service worker and update prompt
- Updated package.json to include vite-plugin-pwa and workbox-window.
- Added icon SVGs for PWA: icon-512.svg and maskable-512.svg.
- Created a manifest.json for PWA configuration.
- Implemented PwaUpdatePrompt component to notify users of available updates.
- Enhanced CookieConsent and SiteAssistant components for better layout and responsiveness.
- Updated global CSS for safe-area insets and mobile-first enhancements.
- Registered service worker in usePwaRegistration hook for managing updates.
- Modified Vite configuration to integrate PWA features and caching strategies.
2026-04-06 08:12:32 +02:00
Your Name
3f4d874560 feat: Add Gitea service to production compose 2026-04-05 15:25:26 +02:00
Your Name
ade7abac46 feat(i18n): update translations and improve error handling messages
- Updated site tagline and footer description in multiple languages.
- Enhanced error messages for various scenarios in the API service.
- Added translations for new error codes related to AI features and PDF processing.
- Improved user feedback in the UI components by utilizing i18n for dynamic text.
- Refactored error handling in the API service to map backend error codes to user-friendly messages.
2026-04-05 10:12:22 +02:00
Your Name
8693834230 feat: add Google AdSense verification script + expand ad coverage
- index.html: add adsbygoogle.js script with ca-pub-3822257947737372 for verification
- BlogPostPage: add bottom-banner AdSlot below article content
- AllToolsPage: add bottom-banner AdSlot below tools grid
- ComparisonPage: add bottom-banner AdSlot below comparison content
- SeoPage: add bottom-banner AdSlot below FAQ section
- SeoCollectionPage: add bottom-banner AdSlot below FAQ section

Ad coverage: 13 tool pages + homepage + 5 content pages = ~32 ad placements
2026-04-05 00:08:31 +02:00
Your Name
7928e688d5 perf: optimize frontend bundle - reduce main chunk 77%
- vite.config: separate lucide-react icons + analytics into own chunks
- App.tsx: defer SiteAssistant loading via requestIdleCallback
- HeroUploadZone: lazy-load ToolSelectorModal + dynamic import fileRouting
- HeroUploadZone: add aria-label on dropzone input (accessibility)
- SocialProofStrip: defer API call until component is in viewport
- index.html: remove dev-only modulepreload hint

Main bundle: 266KB -> 61KB (-77%)
2026-04-04 22:36:45 +02:00
Your Name
7e9edc2992 feat: Enhance Pricing Page with Enterprise Plan and Billing Toggle
- Added Enterprise plan with features and pricing.
- Introduced billing toggle for monthly and yearly subscriptions.
- Updated feature list to include enterprise-specific features.
- Improved UI for plan cards and added new styles for better visual appeal.
- Adjusted SEO metadata to reflect new pricing structure.
- Enhanced global styles for marketing elements.
2026-04-04 20:01:03 +02:00
Your Name
f012c9a3b3 Merge branch 'copilot/update-frontend-ui-modern-design' 2026-04-04 00:06:09 +02:00
Your Name
700941a24c feat: Add IndexNow submission and sitemap updates
- Add IndexNow submit script + state tracking
- Update deploy script to notify IndexNow after healthy deploy
- Publish IndexNow verification file in public
- Update sitemaps and add env placeholders
- Pass analytics/ads/IndexNow env vars into frontend build
2026-04-04 00:03:46 +02:00
copilot-swe-agent[bot]
f55d726df2 feat: comprehensive SaaS UI redesign — Hero mesh, ToolCard accent, How-it-Works, bottom CTA banner, Header CTA
Agent-Logs-Url: https://github.com/aborayan2022/SaaS-PDF/sessions/b8e294e5-c1b0-4395-a003-cfa8f003bf27

Co-authored-by: aborayan2022 <119736744+aborayan2022@users.noreply.github.com>
2026-04-03 00:32:09 +00:00
Your Name
92ca0af3c7 feat: add comparison page functionality and related routes
- Added a new route for comparison pages in routes.ts.
- Introduced a TOOL_WORKFLOWS object in seoData.ts to define tool usage sequences.
- Updated internal link generation to include workflow slugs.
- Added Arabic, English, and French translations for comparison features and FAQs in respective i18n files.
- Implemented the ComparisonPage component to display feature comparisons, advantages, verdicts, and related tools.
- Enhanced sitemap generation script to include comparison pages.
2026-04-03 02:29:14 +02:00
copilot-swe-agent[bot]
cf03d963fc chore: restore build artifacts not meant for commit
Agent-Logs-Url: https://github.com/aborayan2022/SaaS-PDF/sessions/a233a493-2fcf-4025-bd7f-68446c105e28

Co-authored-by: aborayan2022 <119736744+aborayan2022@users.noreply.github.com>
2026-04-02 23:06:47 +00:00
copilot-swe-agent[bot]
dbe9b86867 feat: modern SaaS UI - redesign Hero section and Dropzone widget
- tailwind.config.js: add borderRadius (3xl/4xl), glow box-shadows, smooth transition
- global.css: hero-upload-zone uses rounded-3xl, scale on drag, enhanced hover lift
- HeroUploadZone: UploadCloud icon, group hover animations, rounded-full CTAs, improved layout
- HomePage: animated badge pill, larger heading, improved gradient

Agent-Logs-Url: https://github.com/aborayan2022/SaaS-PDF/sessions/a233a493-2fcf-4025-bd7f-68446c105e28

Co-authored-by: aborayan2022 <119736744+aborayan2022@users.noreply.github.com>
2026-04-02 23:05:46 +00:00
Your Name
efb6854741 chore: add @doist/todoist-ai
dependency to package.json
اول دفعة من التطوير
2026-04-03 00:28:00 +02:00
Your Name
314f847ece fix: Add scrollable container to ToolSelectorModal for small screens
- Add max-h-[90vh] and flex-col to modal content container
- Wrap tools grid in max-h-[50vh] overflow-y-auto container
- Add overscroll-contain for smooth scroll behavior on mobile
- Fixes issue where 21 PDF tools overflow viewport on small screens
2026-04-01 22:22:48 +02:00
Your Name
3e1c0e5f99 perf: Optimize PageSpeed performance score
- Replace 2.2MB social-preview.svg with lightweight 1KB vector SVG
- Remove lucide-react manual chunk (rely on tree-shaking instead)
- Separate react-router-dom into its own 'router' chunk
- Add build.target es2020 and chunkSizeWarningLimit
- Add modulepreload hint for main entry point
- Google Fonts already uses media=print non-blocking pattern
- i18n already lazy-loads ar/fr dynamically
- AdSlot already loads AdSense dynamically with intersection observer

Expected improvement: 34 → 70+ on mobile PageSpeed
2026-04-01 07:58:40 +02:00
Your Name
568446697c Update sitemaps and improve language handling
- Updated last modification dates in static and tools sitemaps to 2026-04-01.
- Enhanced language switching in the Header component to ensure language resources are loaded before changing the language.
- Added language resource loading logic in i18n configuration to support dynamic loading of language files.
- Improved SEO route page to ensure correct language is set based on URL parameters.
- Adjusted global CSS for deferred sections to optimize rendering.
- Configured Nginx to enable Brotli compression for better performance.
2026-04-01 07:25:24 +02:00
Your Name
eb8d6463c5 fix: Fix Decimal serialization in rating_service for PostgreSQL compatibility 2026-04-01 01:25:34 +02:00
Your Name
271674a9c5 feat: Complete admin dashboard overhaul with professional features
- Add Events Timeline tab showing chronological project activity
- Add Create User modal with email, password, plan, role selection
- Add Delete User button with confirmation dialog
- Add Plan and Role management dropdowns per user
- Add event type summary cards with color-coded icons
- Add period selector for events (7d, 14d, 30d, 90d)
- Add i18n translations for all new features (EN + AR)
- Add new API functions: createAdminUser, deleteAdminUser, updateAdminUserPlan, updateAdminUserRole, getProjectEvents
2026-04-01 00:27:27 +02:00
Your Name
33ccb4fde5 feat: Add database stats tab to admin dashboard with PostgreSQL support 2026-03-31 22:58:50 +02:00
Your Name
6e8cf6f83a feat: harden PDF translation workflow 2026-03-30 14:24:18 +02:00
Ahmed Bakr Ali
d1258cdbd5 Merge branch 'main' into copilot/vscode-mnbk5p20-roym 2026-03-30 10:43:23 +02:00
Your Name
736d08ef04 feat: enhance SEO capabilities and add All Tools page
- Updated generate-seo-assets script to create separate sitemap files for static, blog, tools, and SEO pages.
- Introduced render-seo-shells script to generate HTML shells for SEO pages with dynamic metadata.
- Added All Tools page with categorized tool listings and SEO metadata.
- Updated routing to include /tools path and linked it in the footer.
- Enhanced SEOHead component to remove unused keywords and improve OpenGraph metadata.
- Updated translations for tools hub in English, Arabic, and French.
- Refactored SEO-related utility functions to support new structured data formats.
2026-03-30 10:31:27 +02:00
Your Name
5ac1d58742 feat: enhance ImagesToPdf component with mobile-friendly file picker and unique file selection logic; update translations for mobile picker guidance 2026-03-29 21:04:34 +02:00
Your Name
f82a77febe Refactor code structure for improved readability and maintainability 2026-03-29 20:17:52 +02:00
Your Name
03c451abe5 feat: add design system with colors, components, and theme configuration
- Introduced a comprehensive color palette in colors.ts, including primary, accent, success, warning, error, info, neutral, slate, and semantic colors for light and dark modes.
- Created a components-registry.ts to manage UI components with metadata, including buttons, inputs, cards, layout, feedback, and navigation components.
- Developed a theme.ts file to centralize typography, spacing, border radius, shadows, z-index, transitions, breakpoints, containers, and responsive utilities.
- Configured Nginx for development with a new nginx.dev.conf, routing API requests to the Flask backend and frontend requests to the Vite development server.
2026-03-29 11:39:08 +02:00
Your Name
e717c4c446 Checkpoint from VS Code for cloud agent session 2026-03-29 11:29:52 +02:00
Your Name
aa3420281c أعد هيكلة منطق استطلاع المهام للتعامل مع حمولات الأخطاء المنظمة وتحسين رسائل الخطأ 2026-03-25 16:51:38 +02:00
Your Name
14743c6cfe Fix frontend test setup and refresh docs 2026-03-25 04:32:04 +02:00
Your Name
6489ce2735 Remove redundant script tags from index.html for cleaner code 2026-03-25 03:28:21 +02:00
Your Name
a6877c6dd7 Enhance UI components and styles for better performance and accessibility
- Added a fixed minimum height to the AdSlot component to reduce Cumulative Layout Shift (CLS) and adjusted styles for better layout consistency.
- Specified width and height attributes for the Barcode and QR Code images to improve rendering performance and maintain aspect ratios.
- Introduced font-face declarations in global CSS for 'Inter' and 'Tajawal' fonts with 'swap' display to optimize font loading and reduce CLS.
2026-03-25 03:08:19 +02:00
Your Name
5207204778 feat: update prebuild script to ensure generated SEO data is used and refactor SEO data import 2026-03-23 19:26:53 +02:00
Your Name
0fe1e42e54 feat: enhance SEO data loading with generated fallback
- Implemented a mechanism to load SEO data from a generated file (seoData.generated.json) if available.
- Added error handling to fallback to the original SEO data file (seoData.json) if the generated file is not present.
2026-03-23 18:54:22 +02:00
Your Name
4d71106aa8 feat: add Google Ads script for enhanced monetization 2026-03-23 17:24:22 +02:00
Your Name
97ce499216 feat: integrate Microsoft Clarity script for enhanced user analytics and update HTML structure 2026-03-23 16:08:20 +02:00
Your Name
baf2ab55b7 feat: add Microsoft Clarity dependency for enhanced user analytics 2026-03-23 02:27:53 +02:00
Your Name
42714730f2 feat: update Clarity initialization method in App component 2026-03-23 02:00:32 +02:00
Your Name
20c15e333c feat: integrate Microsoft Clarity for enhanced user analytics and add necessary configurations 2026-03-23 01:28:14 +02:00
Your Name
5310493cac feat: update HTML structure and enhance script for theme and language handling 2026-03-23 00:13:27 +02:00
Your Name
018459eb6f feat: enhance loading state in SocialProofStrip and remove deferred-section visibility 2026-03-22 23:35:43 +02:00
Your Name
46bc0441b4 feat: add SVG conversion functionality for raster images and update requirements 2026-03-22 20:39:30 +02:00
Your Name
436bbf532c seo(frontend): strengthen indexing and internal linking 2026-03-22 20:20:15 +02:00
Your Name
bf9a5c65bc perf(frontend): reduce initial rendering cost 2026-03-22 20:15:35 +02:00
Your Name
2f60043ed8 feat: add error handling with toast notifications across various tools and admin page 2026-03-22 17:24:33 +02:00
Your Name
ce610f5c6e feat: add toast notifications for error handling and success messages across various components 2026-03-22 16:48:07 +02:00
Your Name
70d7f09110 feat: enhance file uploader with size validation and error handling 2026-03-22 15:12:19 +02:00
Your Name
d8a51d8494 feat: track user interest in paid plans and enhance admin analytics
- Added tracking for user interest in the pro plan on the PricingPage.
- Implemented auto-retry for CSRF token failures in API response interceptor.
- Introduced new interfaces and API functions for enhanced admin analytics, including ratings, tool usage, user stats, plan interest, and system health.
2026-03-21 13:49:02 +02:00
Your Name
c800f707e3 Add SEO data generation and testing for bilingual pages
- Implemented SEO data structures for programmatic tool and collection pages.
- Created functions to build FAQs and content sections for SEO pages.
- Added tests to ensure at least 50 bilingual SEO pages are generated, no duplicate English slugs, and matching Arabic localized paths.
- Verified that both tool and collection SEO inventories are populated adequately.
2026-03-21 10:55:43 +02:00
Your Name
a8a7ec55a2 Refactor SEO routing and page structure
- Replaced SeoProgrammaticPage with SeoRoutePage to handle dynamic routing for SEO pages.
- Updated App.tsx to use SeoRoutePage for dynamic routes.
- Consolidated SEO page logic into SeoPage component.
- Removed individual SEO programmatic routes and replaced them with a dynamic route structure.
- Added tests to ensure all routes are accounted for and dynamic SEO routes are present.
- Introduced new SeoRoutePage to manage locale and slug parameters for SEO pages.
2026-03-21 09:41:52 +02:00