Skip to content

pallaviii21/PDF-Signature-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 

Repository files navigation

✍️ SIGNify - Document Signature App

SIGNify is a secure and elegant PDF document signing app built using the MERN stack (MongoDB, Express, React, Node.js). Users can register, upload documents, drag-and-drop signatures, preview signed PDFs, and download them.


🔗 Live URLs


⚙️ Tech Stack

Layer Technology
Frontend React, Tailwind CSS, Vite
Backend Node.js, Express
Database MongoDB (Mongoose ORM)
PDF Tools pdf-lib, pdfjs-dist
Auth JWT, bcrypt, Nodemailer
Deployment Vercel (Frontend), Render (Backend)

✨ Features

✅ Register & Login
✅ Email verification
✅ Forgot & reset password via email
✅ Upload PDF documents
✅ Type signatures with custom fonts & colors
✅ Drag-and-drop signature onto PDF
✅ Preview and download signed PDF
✅ View and delete uploaded documents
✅ Mobile-friendly responsive design
✅ Protected routes using JWT


🖼️ Screenshots

image image image image


📁 Folder Structure

├── client

│ ├── public

│ ├── src

│ │ ├── components

│ │ ├── pages

│ │ ├── App.jsx

│ │ ├── main.jsx

│ │ └── ...

├── server

│ ├── controllers

│ ├── models

│ ├── routes

│ ├── uploads

│ └── index.js


🚀 Getting Started Locally

🔧 Prerequisites Node.js & npm

MongoDB

(Optional) Vite globally installed

1. Clone the Repository

git clone https://github.com/yourusername/signify-pdf-signer.git
cd signify-pdf-signer


2. Setup Backend

cd server
npm install
touch .env  # Add environment variables here
npm run dev  # Runs on http://localhost:5000

3. Setup Frontend

cd client
npm install
touch .env  # Add VITE_SERVER_URL
npm run dev  # Runs on http://localhost:5173

🧪 Testing Checklist

✅ Register a new account (check email for verification)

✅ Upload a PDF

✅ Type and drag your signature

✅ Preview and download the signed PDF

✅ Delete any uploaded document

📦 Deployment Guide

🔹 Frontend (Vercel)

Push /client folder to GitHub

Connect to Vercel and import project

Set VITE_SERVER_URL in Vercel Environment Variables

🔹 Backend (Render)

Push /server folder to GitHub

Create a new Web Service on Render

Add Environment Variables (PORT, MONGO_URI, JWT_SECRET, etc.)

Manually create an uploads folder in the root directory


🔐 Environment Variables

`client/.env

VITE_SERVER_URL=https://your-server-xxxxx.onrender.com

`server/.env

MONGO_URI=your_mongo_connection_string
JWT_SECRET=your_jwt_secret
VITE_CLIENT_URL=https://your-client-url.vercel.app
EMAIL_USER=your_email@example.com
EMAIL_PASS=your_email_password_or_app_key

📧 Contact

Reach out at: pallaviiik11.11@gmail.com

About

A MERN based website to sign PDFs digitally

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published