Skip to content

fameshkatre87/docforge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“„ DocForge

Professional PDF & Image Management SaaS Platform

Django Vue.js PostgreSQL License

Merge PDFs β€’ Split PDFs β€’ Word↔PDF β€’ Remove Pages β€’ Resize Images β€’ Compress Images

🌐 Live Demo β€’ πŸ“– API Docs β€’ πŸš€ Quick Start


✨ Features

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 Image 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

πŸ› οΈ Tech Stack

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)

πŸš€ Quick Start

Prerequisites

  • Python 3.10+
  • Node.js 18+
  • PostgreSQL 14+

1. Clone Repository

git clone https://github.com/fameshkatre87/docforge.git
cd docforge

2. Backend Setup

cd 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 runserver

3. Frontend Setup

cd frontend

# Install dependencies
npm install

# Start dev server
npm run dev

4. Open Browser

http://localhost:5173

πŸ“ Project Structure

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

πŸ”Œ API Endpoints

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

βš™οΈ Environment Variables

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

🀝 Contributing

  1. Fork karo
  2. Feature branch banao (git checkout -b feature/AmazingFeature)
  3. Commit karo (git commit -m 'Add AmazingFeature')
  4. Push karo (git push origin feature/AmazingFeature)
  5. Pull Request kholein

πŸ“„ License

MIT License β€” free to use, modify and distribute.


Made with ❀️ using Django + Vue.js

⭐ Star this repo if you found it helpful!

About

πŸš€ Full-stack PDF & Image Management SaaS β€” Merge, Split, Compress PDFs, Convert Word↔PDF, Resize & Compress Images. Built with Vue 3 + Django + PostgreSQL

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors