Skip to content

πŸ” Papyrus – Securely add or remove passwords from PDF files in your browser. Built with React + Vite & FastAPI for speed, privacy, and simplicity.

License

Notifications You must be signed in to change notification settings

tejastn10/papyrus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

89 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Papyrus Logo

Papyrus πŸ“„

Python FastAPI Vite React License

Papyrus is a lightweight and secure PDF management tool that helps you seamlessly add or remove passwords from PDF files. Built with a blazing-fast frontend using React + Vite and a high-performance FastAPI backend, Papyrus ensures privacy and ease of use β€” right from your browser.


✨ Features

  • πŸ” Add Password: Secure your PDF files with a password in just one click.
  • πŸ”“ Remove Password: Strip password protection from encrypted PDF files.
  • ⚑ Fast & Lightweight: Optimized for speed with Vite + React and FastAPI.
  • πŸ›‘οΈ No File Storage: All files are processed in memory β€” nothing is stored on disk.
  • 🎯 User-Friendly UI: Simple drag-and-drop interface for quick interaction.

πŸš€ Getting Started

πŸ“¦ Prerequisites

Ensure you have the following installed:

  • Node.js: v22 or later
  • Python: v3.11 or later
  • Poetry: for managing Python dependencies
  • Docker (optional, for containerized setup)

πŸ§ͺ Local Development

Backend (FastAPI)

# Navigate to backend folder
cd backend

# Install dependencies
poetry install

# Start FastAPI server
poetry run uvicorn app.main:app --reload --port 5000

Server will be available at: http://localhost:5000/docs

Frontend (Vite + React)

# Navigate to frontend folder
cd frontend

# Install dependencies
npm install

# Start development server
npm run dev

Frontend runs at: http://localhost:3000


🐳 Using Docker (Optional)

docker-compose up --build

This starts both the FastAPI backend and React frontend.


πŸ“‚ Project Structure

papyrus/
β”œβ”€β”€ backend/                   # FastAPI backend
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ api/               # API routes
β”‚   β”‚   β”œβ”€β”€ utils/             # Common utility functions
β”‚   β”‚   β”œβ”€β”€ models/            # Models
β”‚   β”‚   β”œβ”€β”€ config/            # Settings, config
β”‚   β”‚   β”œβ”€β”€ services/          # PDF encryption/decryption logic
β”‚   β”‚   β”œβ”€β”€ middleware/        # Middleware
β”‚   β”‚   └── main.py            # App entry point
β”‚   β”œβ”€β”€ tests/                 # Backend unit tests
β”‚   β”œβ”€β”€ pyproject.toml         # Poetry config
β”‚   └── Dockerfile             # Backend Docker setup
β”‚
β”œβ”€β”€ frontend/                  # React + Vite frontend
β”‚   β”œβ”€β”€ src/                   # Main app code
β”‚   β”œβ”€β”€ public/                # Static assets
β”‚   β”œβ”€β”€ vite.config.ts         # Vite configuration
β”‚   └── Dockerfile             # Frontend Docker setup
β”‚
β”œβ”€β”€ compose.yml         # Multi-service Docker config
└── README.md                  # You're here!

πŸ“˜ API Documentation

Swagger docs are auto-generated and available at:

http://localhost:5000/docs

βš–οΈ License

This project is licensed under the MIT License.


πŸ™Œ Acknowledgments

  • Powered by FastAPI and React
  • PDF operations handled by PyPDF2
  • UI inspired by minimal productivity apps like CleanShot and Arc Browser.

Built with πŸ’™ by Tejas.

About

πŸ” Papyrus – Securely add or remove passwords from PDF files in your browser. Built with React + Vite & FastAPI for speed, privacy, and simplicity.

Topics

Resources

License

Stars

Watchers

Forks