search-engine

๐Ÿš€ Search Engine

The matching search engine to my web crawler.

Search ยท 4 31pm ยท 04-12

โœจ Features

๐Ÿ“„ Detailed Feature Overview

Capture-2025-04-12-163138

๐ŸŒ Modern 3D Landing Page

The search engine features a stunning 3D visualization on the landing page created with Three.js. The visualization creates an immersive experience with:

๐Ÿค– AI-Powered Features

The search engine leverages AI for multiple features:

๐Ÿ“š Knowledge Panels

Knowledge panels provide quick access to key information about searched topics:

โšก Search Interface

The search interface is designed for maximum usability:

๐Ÿ› ๏ธ Technical Specifications

image

๐Ÿณ Docker Instructions

๐Ÿ› ๏ธ Building the Docker Image

To build the Docker image, run the following command in the root directory of the repository:

docker build -t ghcr.io/schbenedikt/search-engine:latest .

๐Ÿš€ Running the Docker Container

To run the Docker container, use the following command:

docker run -p 5555:5555 ghcr.io/schbenedikt/search-engine:latest

This will start the Flask application using Gunicorn as the WSGI server, and it will be accessible at http://localhost:5555.

๐Ÿ“ฅ Pulling the Docker Image

The Docker image is publicly accessible. To pull the Docker image from GitHub Container Registry, use the following command:

docker pull ghcr.io/schbenedikt/search-engine:latest

๐Ÿ“ Note

Ensure that the tags field in the GitHub Actions workflow is correctly set to ghcr.io/schbenedikt/search-engine:latest to avoid multiple packages.

๐Ÿณ Running with Docker Compose

To run both the search engine and MongoDB containers using Docker Compose, use the following command:

docker-compose up

This will start both containers and the Flask application will be accessible at http://localhost:5555.

๐Ÿ“„ Docker Compose File

The docker-compose.yml file is used to manage both the search engine and MongoDB containers. Here is an example of the docker-compose.yml file:

version: '3.8'

services:
  search-engine:
    image: ghcr.io/schbenedikt/search-engine:latest
    depends_on:
      - mongodb
    ports:
      - "5555:5555"

  mongodb:
    image: mongo:latest
    ports:
      - "27017:27017"
    volumes:
      - mongo-data:/data/db

volumes:
  mongo-data:

๐Ÿ—„๏ธ Database Configuration

The db_config.json file is used to store the database configuration. Here is an example of the db_config.json file:

[
  {
    "url": "mongodb://localhost:27017",
    "name": "search_engine",
    "username": "your_username",
    "password": "your_password"
  }
]

โš™๏ธ Settings Page

The settings.html file has been updated to include fields for username and password. You can access the settings page at http://localhost:5555/settings to update the database configuration.

๐Ÿ› ๏ธ Installation and Setup

๐Ÿ“‹ Requirements

๐Ÿš€ Installation Steps

  1. Clone the repository
    git clone https://github.com/SchBenedikt/search-engine.git
    cd search-engine
    
  2. Create and activate a virtual environment (optional but recommended)
    python -m venv venv
    # On Windows
    venv\Scripts\activate
    # On macOS/Linux
    source venv/bin/activate
    
  3. Install dependencies
    pip install -r requirements.txt
    
  4. Configure your database
    • Update the db_config.json with your MongoDB credentials
    • Ensure MongoDB is running and accessible
  5. Start the application
    python3 app.py
    
  6. Open your browser and navigate to http://localhost:5555

๐Ÿ“– Usage Guide

  1. Enter your query in the search box on the homepage
  2. Press Enter or click the search button
  3. View the search results, including AI-powered answers and knowledge panels

โš™๏ธ Advanced Features

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.