Researchify is a web-based application designed to simplify document management and analysis. It allows users to upload documents, process them for summaries, retrieve information using queries, and interact with the content through AI-powered chat. Built with a modern tech stack, Researchify ensures efficient, scalable, and user-friendly operations.
The home page provides an overview of Researchify's features with a clean and intuitive design.

Upload documents seamlessly for processing and analysis.

View all your uploaded documents, with options to download, delete, or chat with the AI.

Interact with the AI assistant for detailed analysis and insights on your uploaded documents.

- Upload PDFs and process them for text, tables, and images.
- Extract and summarize content using AI-powered models.
- Store processed content securely in ChromaDB for efficient vector-based retrieval.
- View all uploaded documents with metadata.
- Download or delete documents directly from the interface.
- Query documents using natural language to retrieve relevant information.
- Chat with documents to explore insights interactively.
- Fully responsive interface built with React and TailwindCSS.
- Mobile-friendly design with a seamless navigation experience.
- React (Vite): For building a fast, modular, and responsive user interface.
- TailwindCSS: For utility-first styling and responsiveness.
- React Router: For single-page application routing.
- Flask: Lightweight and efficient backend framework.
- ChromaDB: Vector-based database for semantic search and document retrieval.
- Python Libraries:
- Unstructured: For extracting and preprocessing PDFs.
- LangChain: For managing AI models and vector operations.
- Postman: For testing and verifying API endpoints during development.
Ensure you have the following installed:
- Node.js (for the frontend)
- Python 3.9+ (for the backend)
- pip (Python package manager)
- Virtualenv (optional, for Python environment isolation)
-
Clone the repository:
git clone https://github.com/yourusername/researchify.git cd researchify/backend -
Create a virtual environment and activate it:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install the required Python libraries:
pip install -r requirements.txt
-
Start the Flask server:
flask run
The server will be accessible at
http://127.0.0.1:5000.
-
Navigate to the frontend directory:
cd ../frontend -
Install dependencies:
npm install
-
Start the development server:
npm run dev
The frontend will be accessible at
http://127.0.0.1:5173.
/backend/app.py: Flask application with API endpoints for upload, delete, retrieve, etc./backend/services/: Contains modularized services for PDF processing, vector storage, and summarization.
/frontend/src/components/: Contains reusable UI components likeTabBar,Footer, andHome./frontend/src/pages/: Includes page-level components likeUploadandDocuments.
POST /upload
- Description: Uploads and processes a document.
- Payload:
{ "file": "<PDF File>", "user_id": "guest_user" } - Response:
{ "message": "Document processed and stored successfully.", "file_id": "<unique-file-id>" }
GET /documents
- Description: Lists all documents for a specific user.
- Query Parameters:
user_id: User identifier.
- Response:
{ "documents": [ { "file_id": "<file-id>", "type": "pdf" } ] }
POST /retrieve
- Description: Retrieves relevant content based on a query.
- Payload:
{ "query": "What is attention mechanism?", "user_id": "guest_user", "file_id": "<file-id>" } - Response:
{ "results": [ { "content": "Attention mechanism focuses on...", "metadata": { "type": "text" } } ] }
DELETE /delete_file
- Description: Deletes a document by file ID.
- Payload:
{ "file_id": "<file-id>", "user_id": "guest_user" } - Response:
{ "message": "File deleted successfully." }
GET /data/<file_id>/<filename>
- Description: Downloads the uploaded document.
- Authentication: Implement user authentication for added security.
- Analytics Dashboard: Visualize insights from uploaded documents.
- Cloud Integration: Store documents in cloud storage for scalability.
- Amit Gupta - Developer