{"id":19481424,"url":"https://github.com/gauravooo2/assignment-chat-with-docs-frontend","last_synced_at":"2026-05-15T00:35:38.885Z","repository":{"id":260591561,"uuid":"881774444","full_name":"GauravOOO2/Assignment-Chat-with-Docs-Frontend","owner":"GauravOOO2","description":null,"archived":false,"fork":false,"pushed_at":"2024-11-01T07:47:41.000Z","size":183,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-08T07:17:06.147Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GauravOOO2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-01T07:44:13.000Z","updated_at":"2024-11-01T07:47:44.000Z","dependencies_parsed_at":"2024-11-01T08:26:38.226Z","dependency_job_id":"c076cf37-da44-4224-bcc1-36e09e201d85","html_url":"https://github.com/GauravOOO2/Assignment-Chat-with-Docs-Frontend","commit_stats":null,"previous_names":["gauravooo2/assignment-chat-with-docs-frontend"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GauravOOO2%2FAssignment-Chat-with-Docs-Frontend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GauravOOO2%2FAssignment-Chat-with-Docs-Frontend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GauravOOO2%2FAssignment-Chat-with-Docs-Frontend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GauravOOO2%2FAssignment-Chat-with-Docs-Frontend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GauravOOO2","download_url":"https://codeload.github.com/GauravOOO2/Assignment-Chat-with-Docs-Frontend/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240712832,"owners_count":19845548,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T20:04:47.309Z","updated_at":"2026-05-15T00:35:38.857Z","avatar_url":"https://github.com/GauravOOO2.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Document Management System with NLP and RAG Integration\n\n## Overview\n\nThis project is a secure, scalable, full-stack application that allows users to upload, store, and interact with various document types (e.g., PDF, PPT, CSV) using advanced Natural Language Processing (NLP). A RAG (Retrieve and Generate) Agent is implemented to query documents with user questions. This solution supports document management, user authentication, and effective NLP-based querying, utilizing `unstructured.io` for efficient document parsing.\n\n## Technologies\n\n- **Backend**: FastAPI\n- **Frontend**: React.js\n- **Database**: PostgreSQL, Redis\n- **File Storage**: AWS S3 (or equivalent)\n- **Document Parsing**: `unstructured.io` for text and metadata extraction\n- **NLP Processing**: LangChain/LLamaIndex\n- **Agents**: Autogen/Crewai (or equivalent)\n- **Search Engine**: Elasticsearch\n- **Authentication**: Session-based (OAuth2.0 or JWT as alternatives)\n- **Deployment**: Docker, Kubernetes\n\n## Features\n\n### Document Upload and Management\n- **Multi-format Support**: Upload and store documents in various formats (PDF, PPT, CSV, etc.) securely.\n- **Real-time Parsing**: Automatic text and metadata extraction using `unstructured.io`.\n- **Storage**: AWS S3 (or equivalent) ensures document durability and accessibility.\n\n### Advanced NLP Features with RAG Agents\n- **Contextual Query Handling**: Retrieve and generate answers based on stored document content.\n- **NLP Processing**: LangChain/LLamaIndex for document indexing and search.\n- **Response Generation**: Autogen/Crewai agents provide context-aware answers.\n\n### Additional Functionalities\n- **Authentication**: Secure user login with session management.\n- **Usability**: User-friendly interface for ease of use.\n- **Scalability**: Supports complex NLP queries with efficient resource use.\n\n## Architecture\n\nThis application consists of a microservices architecture where:\n1. **Frontend Service**: React.js UI for document upload, query input, and response display.\n2. **Backend Service**: FastAPI server handling document management, NLP processing, and RAG agent querying.\n3. **Database**: PostgreSQL for structured data and Redis for cache management.\n4. **File Storage**: AWS S3 for document storage.\n5. **Search and Indexing**: Elasticsearch for quick document retrieval.\n6. **Document Parsing Service**: `unstructured.io` for document text and metadata extraction.\n\n## Database Schema\n\n- **Documents**: Stores document metadata, format, and related attributes.\n- **Users**: Manages user authentication and session data.\n- **Queries**: Logs user queries and response history.\n\n## Setup and Installation\n\n### Prerequisites\n- Docker, Docker Compose\n- Kubernetes (optional for deployment)\n- PostgreSQL, Redis, and AWS S3 credentials\n\n### Installation Steps\n\n1. **Clone the Repository**\n   ```bash\n   git clone https://github.com/GauravOOO2/Assignment-Chat-with-Docs-Frontend.git\n   cd Assignment-Chat-with-Docs-Frontend\n   ```\n\n2. **Environment Variables**: Configure environment variables for database, AWS S3, and other integrations.\n\n3. **Database Setup**\n   - Run PostgreSQL and Redis containers:\n     ```bash\n     docker-compose up -d postgres redis\n     ```\n   - Apply migrations to initialize the database schema.\n\n4. **Backend Service**:\n   - Install dependencies and start the FastAPI server:\n     ```bash\n     cd backend\n     pip install -r requirements.txt\n     uvicorn main:app --reload\n     ```\n\n5. **Frontend Service**:\n   - Navigate to the `frontend` folder, install dependencies, and start the React app:\n     ```bash\n     cd frontend\n     npm install\n     npm start\n     ```\n\n6. **Elasticsearch Setup**:\n   - Ensure Elasticsearch is running and configured with appropriate indices.\n\n### Docker Deployment\n\n1. **Build Docker Images**:\n   ```bash\n   docker-compose build\n   ```\n\n2. **Run Docker Containers**:\n   ```bash\n   docker-compose up\n   ```\n\n### Kubernetes Deployment (Optional)\n\n- Deploy the app components with Kubernetes manifests:\n  ```bash\n  kubectl apply -f k8s/\n  ```\n\n### Monitoring and Logging (Optional)\n\n- **Monitoring**: Use Prometheus and Grafana for collecting metrics and dashboard visualization.\n- **Logging**: Configure ELK Stack for log aggregation and visualization.\n\n## Usage\n\n1. **User Authentication**: Register and log in to access the document management features.\n2. **Upload Documents**: Upload PDFs, PPTs, or CSV files, which will be parsed and stored.\n3. **Ask Questions**: Enter questions related to the uploaded documents. The RAG agent retrieves and generates answers based on document content.\n\n## Evaluation\n\n- **Code Quality**: Clean, modular, and well-documented code.\n- **Scalability**: Architected for high availability and fault tolerance.\n- **Deployment**: Containerized with optional Kubernetes deployment.\n- **Innovation**: Enhanced document interaction through NLP and RAG-based querying.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgauravooo2%2Fassignment-chat-with-docs-frontend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgauravooo2%2Fassignment-chat-with-docs-frontend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgauravooo2%2Fassignment-chat-with-docs-frontend/lists"}