Merge PDFs β’ Split PDFs β’ WordβPDF β’ Remove Pages β’ Resize Images β’ Compress Images
| Feature | Description |
|---|---|
| π Merge PDFs | Combine multiple PDF files into one |
| βοΈ Split PDF | Divide PDF into separate parts (ZIP download) |
| ποΈ Compress PDF | Reduce PDF size without quality loss |
| π Word β PDF | Convert .docx files to PDF instantly |
| π PDF β Word | Extract PDF content to editable .docx |
| ποΈ Remove Pages | Delete specific pages from any PDF |
| πΌοΈ Images β PDF | Convert multiple images to a single PDF |
| Resize to any custom dimension | |
| ποΈ Compress Image | Reduce image size with quality control |
| π JWT Auth | Optional login β tools work without account |
| π‘οΈ Admin Panel | User management and platform statistics |
| π± Mobile Ready | Fully responsive with hamburger navigation |
Frontend
- Vue 3 + Vite
- Pinia (State Management)
- Vue Router 4
- Axios (HTTP Client)
- Tailwind CSS
Backend
- Django 4.2
- Django REST Framework
- JWT Authentication (SimpleJWT)
- CORS Headers
Database & Storage
- PostgreSQL
- Pillow (Image Processing)
- PyPDF2 (PDF Processing)
- python-docx (Word Processing)
- ReportLab (PDF Generation)
- Python 3.10+
- Node.js 18+
- PostgreSQL 14+
git clone https://github.com/fameshkatre87/docforge.git
cd docforgecd backend
# Create virtual environment
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Configure environment
cp .env.example .env
# Edit .env with your database credentials
# Run migrations
python manage.py makemigrations
python manage.py migrate
# Create admin user
python manage.py createsuperuser
# Start server
python manage.py runservercd frontend
# Install dependencies
npm install
# Start dev server
npm run devhttp://localhost:5173
docforge/
βββ backend/
β βββ config/ # Django settings, urls, wsgi
β βββ apps/
β β βββ users/ # Auth, JWT, CustomUser model
β β βββ pdf_tools/ # PDF operations + history
β β βββ image_tools/ # Image operations + history
β βββ manage.py
β βββ requirements.txt
β
βββ frontend/
βββ src/
β βββ api/ # Axios with JWT interceptors
β βββ stores/ # Pinia stores (auth, files)
β βββ router/ # Vue Router + guards
β βββ components/ # AppLayout, ToolCard
β βββ composables/ # useTool (shared upload logic)
β βββ views/
β βββ tools/ # All tool pages
βββ package.json
βββ vite.config.js
| Method | Endpoint | Auth | Description |
|---|---|---|---|
| POST | /api/auth/register/ |
Public | Register user |
| POST | /api/auth/login/ |
Public | Login β JWT tokens |
| POST | /api/auth/refresh/ |
Public | Refresh token |
| GET | /api/auth/me/ |
Required | Get profile |
| POST | /api/pdf/merge/ |
Optional | Merge PDFs |
| POST | /api/pdf/split/ |
Optional | Split PDF β ZIP |
| POST | /api/pdf/compress/ |
Optional | Compress PDF |
| POST | /api/pdf/from-word/ |
Optional | Word β PDF |
| POST | /api/pdf/to-word/ |
Optional | PDF β Word |
| POST | /api/pdf/remove-pages/ |
Optional | Remove pages |
| POST | /api/pdf/images-to-pdf/ |
Optional | Images β PDF |
| POST | /api/image/resize/ |
Optional | Resize image |
| POST | /api/image/compress/ |
Optional | Compress image |
| GET | /api/auth/admin/stats/ |
Admin | Platform stats |
| GET | /api/auth/admin/users/ |
Admin | All users |
Create backend/.env file:
SECRET_KEY=your-secret-key-here
DEBUG=True
DB_NAME=docforge
DB_USER=postgres
DB_PASSWORD=yourpassword
DB_HOST=localhost
DB_PORT=5432
ALLOWED_HOSTS=localhost,127.0.0.1
CORS_ALLOWED_ORIGINS=http://localhost:5173- Fork karo
- Feature branch banao (
git checkout -b feature/AmazingFeature) - Commit karo (
git commit -m 'Add AmazingFeature') - Push karo (
git push origin feature/AmazingFeature) - Pull Request kholein
MIT License β free to use, modify and distribute.
Made with β€οΈ using Django + Vue.js
β Star this repo if you found it helpful!