This project is a reverse image search engine that leverages the power of a Weaviate vector database to enable users to upload images and find similar images. It is built using Node.js for the backend API and Next.js for the frontend interface.
- Image Upload: Users can upload images to be indexed in the Weaviate vector database.
- Image Search: By uploading an image, users can search for and retrieve similar images from the database.
- Frontend: Next.js, React, Ant Design UI library
- Backend: Node.js, Express.js
- Database: Weaviate vector database and xata
- Image Processing: Utilizes Weaviate's img2vec-neural module for converting images into vectors and xata for storage and search using elastic search
- Node.js (LTS version recommended)
- Docker and Docker Compose
- Navigate to the
home
directory and start Weaviate with Docker Compose:
cd Reverse-Image-Search-Engine && docker-compose up -d
- In a new terminal, go to the
Embedding-service
directory, install dependencies, and start the server:
cd Embedding-service
npm install
npm start
- In a new terminal, go to the
Embedding-service
directory, install dependencies, and start the server:
cd Vision-service
npm install
npm start
- In another terminal, navigate to the
client
directory, install dependencies, and run the Next.js server:
cd client
npm install
npm run dev
The frontend is now accessible at http://localhost:3000
.
To see the search engine in action, watch the demonstration video below: