f3470229242cccd7fa4daaa61f78b3ead9a22db5
- 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 داخل صفحات الأدوات التحقق
Dociva — Free Online Tools Platform
A free SaaS platform offering PDF, image, video, and text processing tools. Built with Python Flask (backend) and React + Vite (frontend), powered by Celery + Redis for async processing.
Live at: https://dociva.io
🛠 Tools (Current)
- PDF Conversion — PDF↔Word
- PDF Optimization — Compress PDF
- PDF Utilities — Merge, split, rotate, page numbers, watermark
- PDF Security — Protect and unlock PDF
- PDF/Image Tools — PDF→Images, Images→PDF
- Image Tools — Convert and resize images
- Video Tools — Video→GIF
- Text Tools — Word counter and text cleaner
- Flowchart Tools — Extract procedures from PDF and generate flowcharts (+ sample mode)
- Accounts & History — Email/password sign-in with recent generated-file history
🏗 Tech Stack
| Layer | Technology |
|---|---|
| Backend API | Python 3.12 + Flask 3.x |
| Task Queue | Celery 5.x + Redis |
| File Processing | LibreOffice, Ghostscript, Pillow, ffmpeg |
| Frontend | React 18 + Vite 5 + TypeScript |
| Styling | Tailwind CSS (RTL support) |
| i18n | react-i18next (Arabic + English + French) |
| Storage | AWS S3 (temp files with auto-cleanup) |
| CDN | AWS CloudFront |
| Server | AWS EC2 + Nginx |
🚀 Quick Start (Development)
# 1. Clone the repo
git clone https://github.com/aborayan2022/SaaS-PDF.git
cd SaaS-PDF
# 2. Copy environment file
cp .env.example .env
cp frontend/.env.example frontend/.env
# For AI tools like Chat with PDF, set your OpenRouter credentials in .env
# OPENROUTER_API_KEY=your-openrouter-key
# 3. Start all services with Docker
docker-compose up --build
# 4. Access the app
# Frontend: http://localhost:5173
# Backend API: http://localhost:5000/api
# Celery Flower: http://localhost:5555
⚙️ Runtime Limits (Default)
- File retention: 30 minutes (
FILE_EXPIRY_SECONDS=1800) - PDF max size: 20MB
- Word max size: 15MB
- Image max size: 10MB
- Video max size: 50MB
🔐 Accounts & Sessions
- Session-backed authentication via
/api/auth/* - Free account creation with email + password
- Recent generated-file history via
/api/history - Persistent SQLite storage at
DATABASE_PATH(defaults tobackend/data/dociva.dblocally)
📈 Analytics & Ads Env
VITE_GA_MEASUREMENT_IDVITE_ADSENSE_CLIENT_IDVITE_ADSENSE_SLOT_HOME_TOPVITE_ADSENSE_SLOT_HOME_BOTTOMVITE_ADSENSE_SLOT_TOP_BANNERVITE_ADSENSE_SLOT_BOTTOM_BANNERDATABASE_PATH
📁 Project Structure
Dociva/
├── backend/ # Flask API + Celery Workers
├── frontend/ # React + Vite + TypeScript
├── nginx/ # Reverse proxy configuration
├── scripts/ # Deployment & maintenance scripts
├── docs/ # Project documentation
├── docker-compose.yml
└── docker-compose.prod.yml
💰 Revenue Model
- Google AdSense — Ads on result/download pages
- Freemium (next phase) — Pro features: no ads, higher limits, API access
📄 License
MIT
Description
Languages
TypeScript
48.9%
Python
47.6%
JavaScript
1.7%
Shell
0.8%
CSS
0.6%
Other
0.4%