Skip to content

"PDFMaster: Merge, split, compress, convert PDFs with responsive UI for phones/tablets." Covers all features and responsiveness.

Notifications You must be signed in to change notification settings

Jasgida/Pdfmaster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📄 Pdfmaster

Pdfmaster is a web-based tool for converting between PDF and Word documents.
Built with Flask, Docker, and Caddy for production-ready deployment.


🚀 Features

  • Convert Word → PDF
  • Convert PDF → Word
  • Extract text from PDFs
  • Merge PDFs
  • All endpoints CORS-enabled for frontend usage

🛠 Tech Stack

  • Backend: Flask, Flask-CORS, PyPDF2, fpdf, python-docx, pdf2docx
  • Frontend: React (served via Docker)
  • Proxy/SSL: Caddy (automatic HTTPS)
  • Containerization: Docker & Docker Compose

📂 Project Structure

Pdfmaster/ │── backend/ # Flask API │ ├── app.py # Main Flask backend app │ ├── requirements.txt # Python dependencies │ ├── Dockerfile # Backend Docker build │ └── pycache/ # (auto-generated by Python) │ │── frontend/ # React frontend │ ├── public/ │ │ ├── index.html │ │ ├── favicon.ico │ │ └── logo.png │ │ │ ├── src/ │ │ ├── App.js │ │ ├── Navbar.js │ │ ├── index.js │ │ ├── components/ │ │ │ ├── FileUpload.js │ │ │ ├── PdfToWord.js │ │ │ ├── WordToPdf.js │ │ │ ├── ExtractText.js │ │ │ └── MergePdf.js │ │ └── styles/ │ │ └── App.css │ │ │ ├── package.json │ ├── package-lock.json │ └── Dockerfile # Frontend Docker build │ │── Caddyfile # Reverse proxy + SSL │── docker-compose.yml # Orchestration file │── README.md # Project documentation


⚙️ Setup & Run

1. Clone Repo

git clone https://github.com/jasgida/Pdfmaster.git
cd Pdfmaster

2. Start Services with Docker Compose
docker-compose up --build -d


This will start:

🖥️ Frontend (React) → http://localhost:3000

⚙️ Backend (Flask API) → http://localhost:5000

🌍 Caddy (Reverse Proxy + SSL) → http://localhost
 and https://localhost

3. Access Application

Open your browser at 👉 https://localhost

All API calls will be proxied automatically via Caddy

🐳 Docker Services

Frontend → React app served at port 3000 (proxied by Caddy)

Backend → Flask app running at port 5000

Caddy → Reverse proxy, HTTPS, automatic TLS certificates

MongoDB (optional, if needed later for user data)

🛠️ Development Notes

Flask backend runs in production mode inside Docker.

Use docker logs <container_name> to debug issues.

Volumes are mounted for persistent storage.

📜 License

This project is licensed under the MIT License – feel free to use, modify, and share.

About

"PDFMaster: Merge, split, compress, convert PDFs with responsive UI for phones/tablets." Covers all features and responsiveness.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published