+
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

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载