Skip to content

ilkan22/pdf-tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📄 PDF Tool WebApp

Modular. Web-based. Easily Extendable.

This lightweight web app lets you manipulate PDF files directly in your browser. Currently supported features:

  • 🔗 Merge two PDF files
  • ✂️ Cut (remove) pages
  • 🔃 Reorder pages
  • ✏️🗑️ Change/Delete Metadata
  • 🔑 Encrypt PDF files
  • 🔑 Decrypt PDF files

Built with React (Vite) and Flask, the app is designed for fast, modular feature expansion. Want to add a new tool? Touch just three files and create one:

  • routes.py (backend)
  • main.jsx + a new component (frontend)
  • LandingPage.jsx (frontend)

📽️ Screenshots

Landing Page

Landing Page

Merge Tile

Merge Tile


🧱 Tech Stack

Layer Technology
Frontend React + Vite
Backend Python + Flask

⚡ Quick Start

🐳 Using Docker

docker compose up --build

Launches the app in a production-like container environment.

💻 Local Development

0. Adjust configuration for local development

Open the vite.config.js file in the frontend directory and replace:

target: 'http://backend:5000',

with:

target: 'http://localhost:5000',

1. Start the backend

cd ./backend
pip install -r requirements.txt
python main.py

2. Start the frontend

cd ./frontend
npm install
npm run dev

🛠️ Adding New Features

  1. Backend

    • Add your logic or new route in routes.py
  2. Frontend

    • Create a new JSX component inside components/
    • Register the component and its route in main.jsx
    • Add a Tile in LandingPage.jsx

📁 Project Structure

pdf-tool/
├── backend/
│   ├── main.py
│   ├── requirements.txt
│   ├── Dockerfile
│   └── app/routes/
│       └── routes.py
├── frontend/
│   ├── src/
│   │   ├── components/
│   │   │   ├── feature/
│   │   │   │   ├── Merge.jsx
│   │   │   │   ├── Cut.jsx
│   │   │   │   ├── Reorder.jsx
│   │   │   │   ├── [NewFeature].jsx
│   │   │   │   └── ...
│   │   │   └── layout
│   │   │   │   ├── LandingPage.jsx
│   │   │   │   ├── Tiles.jsx
│   │   │   │   └── ...
│   │   ├── main.jsx
│   │   ├── nginx.conf
│   │   └── Dockerfile
├── docker-compose.yml
└── README.md

About

Browser-based, modular PDF editor built with React and Flask

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published