Files
SaaS-PDF/README.md

101 lines
3.1 KiB
Markdown

# SaaS-PDF — 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, and deployed on **AWS**.
## 🛠 Tools (Current)
1. **PDF Conversion** — PDF↔Word
2. **PDF Optimization** — Compress PDF
3. **PDF Utilities** — Merge, split, rotate, page numbers, watermark
4. **PDF Security** — Protect and unlock PDF
5. **PDF/Image Tools** — PDF→Images, Images→PDF
6. **Image Tools** — Convert and resize images
7. **Video Tools** — Video→GIF
8. **Text Tools** — Word counter and text cleaner
9. **Flowchart Tools** — Extract procedures from PDF and generate flowcharts (+ sample mode)
10. **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)
```bash
# 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 to `backend/data/saas_pdf.db` locally)
## 📈 Analytics & Ads Env
- `VITE_GA_MEASUREMENT_ID`
- `VITE_ADSENSE_CLIENT_ID`
- `VITE_ADSENSE_SLOT_HOME_TOP`
- `VITE_ADSENSE_SLOT_HOME_BOTTOM`
- `VITE_ADSENSE_SLOT_TOP_BANNER`
- `VITE_ADSENSE_SLOT_BOTTOM_BANNER`
- `DATABASE_PATH`
## 📁 Project Structure
```
SaaS-PDF/
├── 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