Commit Graph

133 Commits

Author SHA1 Message Date
Your Name
586d93eb41 fix: Use git.dociva.io TLS certificate for Gitea 2026-04-05 20:48:19 +02:00
Your Name
d066d8e414 fix: Prevent nginx crash before git.dociva.io cert exists 2026-04-05 19:47:29 +02:00
Your Name
f57779205b feat: Add git.dociva.io reverse proxy for Gitea 2026-04-05 19:43:20 +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
009ac7f087 fix: disable brotli in nginx.prod.conf (not available in nginx:alpine) 2026-04-04 22:46:06 +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
0f9b1fe260 fix: Override celery beat healthcheck in dev compose 2026-04-04 00:14:15 +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
copilot-swe-agent[bot]
9f91e7d0ac Initial plan 2026-04-02 22:55:55 +00:00
Your Name
209fdb6509 Merge branches 'main' and 'main' of https://github.com/aborayan2022/SaaS-PDF 2026-04-03 00:28:13 +02:00
Your Name
efb6854741 chore: add @doist/todoist-ai
dependency to package.json
اول دفعة من التطوير
2026-04-03 00:28:00 +02:00
Ahmed Bakr Ali
5ecaaf86ba Change default PostgreSQL password for development 2026-04-02 21:28:45 +02:00
Ahmed Bakr Ali
fde60163cb Change default PostgreSQL password to a placeholder
Updated the default PostgreSQL password in docker-compose.
2026-04-02 21:27:53 +02:00
Ahmed Bakr Ali
e869ef6110 Set placeholder for GOOGLE_API_KEY
Updated GOOGLE_API_KEY placeholder in .env.example
2026-04-02 21:26:10 +02:00
Ahmed Bakr Ali
af6c13c5f1 Remove hardcoded PostgreSQL password from .env.example
Removed the hardcoded PostgreSQL password from the example file.
2026-04-02 21:23:11 +02:00
Ahmed Bakr Ali
f9e2e5509e Clear GOOGLE_API_KEY in .env.example
Remove sensitive GOOGLE_API_KEY from example file
2026-04-02 21:22:30 +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
c59db300d0 feat: Add admin user management endpoints and project events timeline
- Add create user, delete user, update plan, update role endpoints
- Add project events timeline endpoint for chronological activity view
- Add admin@dociva.io to INTERNAL_ADMIN_EMAILS
- Fix datetime imports in admin routes
2026-03-31 23:59:35 +02:00
Your Name
890adf480a fix: Update PostgreSQL password to strong password and prepare admin user creation 2026-03-31 23:49:23 +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
d4236b0757 fix: Fix stripe_service postgres RealDictCursor row access 2026-03-31 22:36:48 +02:00
Your Name
dac23667df fix: Fix stripe_service.py postgres column check 2026-03-31 22:33:59 +02:00
Your Name
892db08d22 fix: Update stripe_service.py to use database abstraction layer 2026-03-31 22:03:19 +02:00
Your Name
030418f6db feat: Add PostgreSQL support and enhance admin dashboard
- Migrate all service files from hardcoded SQLite to dual SQLite/PostgreSQL support
- Add PostgreSQL service to docker-compose.yml
- Create database abstraction layer (database.py) with execute_query, row_to_dict helpers
- Update all 7 service files: account, rating, contact, ai_cost, quota, site_assistant, admin
- Add new admin endpoint /database-stats for table size and row count visualization
- Add database_type field to system health endpoint
- Update .env.example with proper PostgreSQL connection string
2026-03-31 21:51:45 +02:00
Your Name
42b1ad1250 feat: integrate Google Generative AI as a fallback for OpenRouter in translation and chat services 2026-03-31 19:42:08 +02:00
Your Name
e7fa0730c6 fix: Mount certbot volumes into nginx container for SSL certificates 2026-03-31 18:01:00 +02:00
Your Name
0a6101a784 fix: Add HTTPS configuration with SSL to nginx.dev.conf 2026-03-31 17:57:50 +02:00
Your Name
c2a58ff8f5 feat: add backup and pull script for handling untracked files during git operations 2026-03-30 22:01:10 +02:00
Your Name
6e8cf6f83a feat: harden PDF translation workflow 2026-03-30 14:24:18 +02:00
Ahmed Bakr Ali
499ebe3ce8 Merge pull request #5 from aborayan2022/copilot/vscode-mnbk5p20-roym
[WIP] Add new feature for user dashboard
2026-03-30 10:43:39 +02:00
Ahmed Bakr Ali
d1258cdbd5 Merge branch 'main' into copilot/vscode-mnbk5p20-roym 2026-03-30 10:43:23 +02:00
Ahmed Bakr Ali
db3d32505c Merge pull request #6 from aborayan2022/copilot/fix-typo-in-documentation
[WIP] Fix typo in documentation
2026-03-30 10:39:32 +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
4ac4bf4e42 refactor: improve app initialization and update rate limiter tests for consistency 2026-03-30 00:12:34 +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
copilot-swe-agent[bot]
83bb610f9f Initial plan 2026-03-29 09:41:33 +00: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