Commit Graph

70 Commits

Author SHA1 Message Date
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
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
Your Name
f347022924 feat: add SEO configuration and pages for programmatic tools and collections
- Introduced seoPages.ts to manage SEO-related configurations and types for programmatic tools and collection pages.
- Created SeoCollectionPage and SeoProgrammaticPage components to render SEO content dynamically based on the new configuration.
- Enhanced API service to ensure CSRF token handling for secure requests.
- Added generateHowTo utility function for structured data generation.
- Updated sitemap generation script to include SEO tool and collection pages.
- Configured TypeScript to resolve JSON modules for easier integration of SEO data.   ستراتيجية التنفيذ

لم أغير أي core logic في أدوات التحويل أو الضغط أو التحرير
استخدمت architecture إضافية فوق النظام الحالي بدل استبداله
جعلت الـ SEO pages تعتمد على source of truth واحد حتى يسهل التوسع
ربطت التوليد مع build حتى لا تبقى sitemap وrobots ثابتة أو منسية
دعمت العربية والإنجليزية داخل نفس config الجديد
عززت internal linking من:
صفحات SEO إلى tool pages
صفحات SEO إلى collection pages
footer إلى collection pages
Suggested tools داخل صفحات الأدوات
التحقق
2026-03-21 01:19:32 +02:00
Your Name
aed02e36e5 fix: production CSRF, ProxyFix, and SSE streaming issues 2026-03-18 11:21:42 +02:00
Your Name
ca20413667 feat: Improve error handling in ContactPage and update Axios headers management 2026-03-18 00:07:18 +02:00
Your Name
a2824b2132 feat: Implement CSRF protection and PostgreSQL support
- Added CSRF protection mechanism in the backend with utility functions for token management.
- Introduced a new CSRF route to fetch the active CSRF token for SPA bootstrap flows.
- Updated the auth routes to validate CSRF tokens on sensitive operations.
- Configured PostgreSQL as a database option in the environment settings and Docker Compose.
- Created a new SQLite configuration file for local development.
- Enhanced the API client to automatically attach CSRF tokens to requests.
- Updated various frontend components to utilize the new site origin utility for SEO purposes.
- Modified Nginx configuration to improve redirection and SEO headers.
- Added tests for CSRF token handling in the authentication routes.
2026-03-17 23:26:32 +02:00
Your Name
3f24a7ea3e feat: Enhance task access control and session management
- Implemented API and web task access assertions in the task status polling endpoint.
- Added functions to remember and check task access in user sessions.
- Updated task status tests to validate access control based on session data.
- Enhanced download route tests to ensure proper access checks.
- Improved SEO metadata handling with dynamic social preview images.
- Updated sitemap generation to include blog posts and new tools.
- Added a social preview SVG for better sharing on social media platforms.
2026-03-17 21:19:23 +02:00
Your Name
467b1ea6ea chore: update environment configuration for production readiness and add SMTP settings 2026-03-16 23:50:37 +02:00
Your Name
1eb9faf6ca feat: enhance Vite configuration with dynamic allowed hosts and update Nginx server_name 2026-03-16 23:44:11 +02:00
Your Name
f933ffa8a0 chore: update project branding from SaaS-PDF to Dociva
- Updated robots.txt to reflect new site name and sitemap URL.
- Modified sitemap.xml to change all URLs from saas-pdf.com to dociva.io.
- Changed storage key for site assistant in SiteAssistant.tsx.
- Updated SEOHead.tsx to change site name in meta tags.
- Translated app name and related text in Arabic, English, and French JSON files.
- Updated contact email in ContactPage.tsx, PrivacyPage.tsx, and TermsPage.tsx.
- Changed internal admin page title to reflect new branding.
- Updated pricing page meta description to reference Dociva.
- Adjusted Nginx configuration for new domain.
- Modified deployment script to reflect new branding.
- Updated sitemap generation script to use new domain.
2026-03-16 21:51:12 +02:00
Your Name
957d37838c تم الانتهاء من آخر دفعة تحسينات على المشروع، وتشمل:
تحويل لوحة الإدارة الداخلية من secret header إلى session auth حقيقي مع صلاحيات admin.
إضافة دعم إدارة الأدوار من داخل لوحة الإدارة نفسها، مع حماية الحسابات المعتمدة عبر INTERNAL_ADMIN_EMAILS.
تحسين بيانات المستخدم في الواجهة والباكند لتشمل role وis_allowlisted_admin.
إضافة اختبار frontend مخصص لصفحة /internal/admin بدل الاعتماد فقط على build واختبار routes.
تحسين إضافي في الأداء عبر إزالة الاعتماد على pdfjs-dist/pdf.worker في عدّ صفحات PDF واستبداله بمسار أخف باستخدام pdf-lib.
تحسين تقسيم الـ chunks في build لتقليل أثر الحزم الكبيرة وفصل أجزاء مثل network, icons, pdf-core, وeditor.
التحقق الذي تم:

نجاح build للواجهة.
نجاح اختبار صفحة الإدارة الداخلية في frontend.
نجاح اختبارات auth/admin في backend.
نجاح full backend suite مسبقًا مع EXIT:0.
ولو تريد نسخة أقصر جدًا، استخدم هذه:

آخر التحديثات:
تم تحسين نظام الإدارة الداخلية ليعتمد على صلاحيات وجلسات حقيقية بدل secret header، مع إضافة إدارة أدوار من لوحة admin نفسها، وإضافة اختبارات frontend مخصصة للوحة، وتحسين أداء الواجهة عبر إزالة pdf.worker وتحسين تقسيم الـ chunks في build. جميع الاختبارات والتحققات الأساسية المطلوبة نجح
2026-03-16 13:50:45 +02:00
Your Name
c167091399 feat: enhance production readiness with environment configuration, dependency checks, and sitemap updates 2026-03-15 13:29:02 +02:00
Your Name
2b3367cdea feat: add site assistant component for guided tool selection
- Introduced SiteAssistant component to assist users in selecting the right tools based on their queries.
- Integrated assistant into the main App component.
- Implemented message handling and storage for user-assistant interactions.
- Added quick prompts for common user queries related to tools.
- Enhanced ToolLandingPage and DownloadButton components with SharePanel for sharing tool results.
- Updated translations for new assistant features and sharing options.
- Added API methods for chat functionality with the assistant, including streaming responses.
2026-03-14 10:07:55 +02:00
Your Name
e06e64f85f feat: Enhance PDF tools with new reorder and watermark removal functionalities
- Added tests for rotating PDFs, removing watermarks, and reordering pages in the backend.
- Implemented frontend logic to read page counts from uploaded PDFs and validate page orders.
- Updated internationalization files to include new strings for reorder and watermark removal features.
- Improved user feedback during page count reading and validation in the Reorder PDF component.
- Ensured that the reorder functionality requires a complete permutation of pages.
2026-03-11 14:21:25 +02:00
Your Name
d4c7195eeb feat: Implement rating prompt feature across tools
- Added a rating prompt dispatch mechanism to various tools (ChatPdf, PdfFlowchart, QrCodeGenerator, SummarizePdf, TranslatePdf, TableExtractor) to encourage user feedback after tool usage.
- Introduced a new utility for handling rating prompts, including event dispatching and current tool identification.
- Updated the ToolRating component to manage user feedback submission, including UI enhancements and state management.
- Enhanced the sitemap generation script to include new routes for pricing and blog pages.
- Removed hardcoded API key in pdf_ai_service.py for improved security.
- Added a project status report documenting current implementation against the roadmap.
- Updated translations for rating prompts in Arabic, English, and French.
- Ensured consistency in frontend route registry and backend task processing.
2026-03-10 23:52:56 +02:00