A minimalist React web application that allows users to upload documents and store their vector embeddings in a Qdrant vector database.
This project is ready for deployment with Docker Compose. All necessary components including frontend, backend, and the Qdrant vector database are configured and integrated.
- Upload documents (PDF, TXT, DOCX)
- Automatic text extraction from documents
- Vector embedding generation using Qdrant's built-in FastEmbed API
- Semantic search using vector similarity
- Document management (view, search, delete)
- Frontend: React, TypeScript, Tailwind CSS, Vite
- Backend: Node.js, Express, TypeScript
- Vector Database: Qdrant with FastEmbed API
- Embeddings: Server-side embedding generation with Qdrant's FastEmbed
- Deployment: Docker, Docker Compose
document-vector-storage/
├── client/ # Frontend React application
│ ├── src/ # React source code
│ │ ├── components/ # React components
│ │ └── pages/ # React pages
│ └── public/ # Static assets
├── server/ # Backend Node.js application
│ └── src/ # TypeScript source code
│ ├── controllers/ # Request handlers
│ ├── models/ # Data models
│ ├── routes/ # API routes
│ └── services/ # Business logic
├── uploads/ # Directory for uploaded files
└── qdrant_storage/ # Qdrant database persistence
- Docker and Docker Compose
- Node.js (v14 or higher) and npm (for development)
-
Clone the repository:
git clone https://github.com/yourusername/document-vector-storage.git cd document-vector-storage -
Install dependencies:
npm install cd client && npm install cd ../server && npm install
-
Start development servers:
npm run dev
This will start both the client and server in development mode.
-
Build and start the Docker containers:
docker-compose up -d
-
The application will be available at:
- Frontend: http://localhost
- Backend API: http://localhost:3001
- Qdrant API: http://localhost:6333
- Navigate to the web interface at http://localhost (or http://localhost:5173 in development mode)
- Upload documents using the upload interface
- The system will automatically extract text and generate vector embeddings
- Use the search interface to find semantically similar documents
- Manage your documents through the document management interface
Apache License 2.0
This project is licensed under the Apache License, Version 2.0. See the LICENSE file for the full license text.