PDFConnect is a robust and feature-rich web application designed for real-time collaborative writing and PDF editing. Built using the MERN stack (MongoDB, Express, React, Node.js), it offers a comprehensive set of tools to allow users to work together seamlessly on text documents and PDFs. Key features include real-time chat, AI-powered question answering, PDF extraction and editing, and system monitoring using Prometheus and Grafana.
- Real-Time Collaboration: Edit and write documents simultaneously with other users using a shared rich-text editor (Quill.js). All changes are synced instantly using Socket.io.
- PDF Extraction and Editing: Upload, extract content from PDFs, collaboratively edit it, and download it again as a new PDF.
- Generative AI Integration: Ask questions and get answers from AI using Google Gemini to improve writing and research productivity.
- Real-Time Chat: Communicate with other collaborators via an integrated real-time chat feature built with Socket.io.
- Authentication: Secure user login using JSON Web Tokens (JWT) for authentication, ensuring that only authorized users have access to documents.
- Email Notifications: Stay updated with real-time email notifications powered by Redis for events such as document edits or collaboration invites.
- System Monitoring: Performance monitoring with Docker, Prometheus, and Grafana to track metrics like server health and response times.
- Frontend: React.js
- Backend: Node.js, Express.js
- Database: MongoDB
- Real-Time Communication: Socket.io
- Authentication: JWT (JSON Web Tokens)
- AI Integration: Google Gemini
- PDF Editor: Quill.js
- Email Notifications: Redis
- Containerization: Docker
- Container Orchestration: Docker Compose
- Monitoring: Prometheus, Grafana
- Deployment: Render
Make sure you have npm installed
Just run the following command at the root of your project and answer questions:
-
Clone the repository:
git clone https://github.com/Srajan-Bansal/PDFConnect.git
-
Navigate to the client directory and install dependencies: cd client
npn install
-
Navigate to the server directory and install dependencies: cd server
npn install
-
Navigate to the worker directory and install dependencies: cd worker
npn install
-
Start the development servers:
In the client directory
npn run dev
In the server directory
npn start
In the worker directory
npn start
- Open your browser and navigate to http://localhost:5173 to start using PDFConnect.
- Open your browser and navigate to http://localhost:8000 for the server and use http://localhost:8000/metrics endpoint for monitoring.
- Open a document and start editing. Changes will be synced in real time with other collaborators.
- Use the integrated chat feature to communicate with collaborators.
- Upload a PDF file.
- Extract text from the PDF and edit it collaboratively.
- Download the edited document as a new PDF.
- Use the AI-powered question-answering feature to get assistance with writing and research.
- Securely log in using your credentials. JWT ensures that only authorized users can access documents.
- Receive real-time email notifications for document edits and collaboration invites.
- Monitor the application's performance using Prometheus and Grafana dashboards.
👤 Srajan Bansal
- Twitter: @Srajanstwt
- Github: @Srajan-Bansal
- LinkedIn: @srajan-bansal
- Integration of client and server
- Real-time collaboration ( Socket.io + Quill Editor )
- Docker
- Redis
- Monitoring ( Prometheus + Grafana stack )
- Security best practices ( Rate limiting, etc )
Give a ⭐️ if this project helped you!