๐ Search Engine
The matching search engine to my web crawler.

โจ Features
- ๐ Modern 3D Interactive Landing Page with full-screen visualizations that dynamically adapt to different screen sizes
- ๐ค AI-Powered Answers providing instant responses with verified sources
- ๐ Knowledge Panels displaying relevant information from Wikipedia and trusted sources
- โก Smart Search with real-time search speed display
- ๐ Website Summaries generated by AI to save reading time
- ๐ Google Integration for comprehensive search results
- ๐ Dark Mode Support for comfortable viewing in all lighting conditions
- ๐ฑ Responsive Design optimized for all devices
- ๐๏ธ MongoDB Backend for efficient data operations
๐ Detailed Feature Overview

๐ 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:
- ๐ฑ๏ธ Dynamic node connections that respond to mouse movements
- ๐ฑ Responsive design that works across devices
๐ค AI-Powered Features
The search engine leverages AI for multiple features:
- ๐ก Smart Answers: Get direct answers to questions without needing to visit multiple websites
- ๐ Content Summaries: AI-generated summaries of web pages to quickly understand their content
- ๐ Query Understanding: Intelligent parsing of search queries to deliver more relevant results

๐ Knowledge Panels
Knowledge panels provide quick access to key information about searched topics:
- ๐ Information from Wikipedia and other trusted sources
- ๐ธ Quick facts, images, and related links
- ๐ Context-aware information based on search query
โก Search Interface
The search interface is designed for maximum usability:
- ๐งผ Clean, distraction-free design
- ๐ฌ Real-time search suggestions
- โฑ๏ธ Search speed display
- ๐ Filter options for refined results
๐ ๏ธ Technical Specifications
- ๐ฅ๏ธ Built with Flask and modern frontend technologies
- ๐๏ธ MongoDB for efficient data storage and retrieval
- ๐ฑ Responsive Bootstrap-based UI with custom enhancements
- ๐ Three.js for 3D visualizations
- ๐ Dark mode implementation with CSS variables and prefers-color-scheme media queries

๐ณ 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:
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
- Python 3.10+
- MongoDB (local installation or remote access)
- Modern web browser with JavaScript enabled
๐ Installation Steps
- Clone the repository
git clone https://github.com/SchBenedikt/search-engine.git
cd search-engine
- 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
- Install dependencies
pip install -r requirements.txt
- Configure your database
- Update the
db_config.json
with your MongoDB credentials
- Ensure MongoDB is running and accessible
- Start the application
- Open your browser and navigate to
http://localhost:5555
๐ Usage Guide
๐ Basic Search
- Enter your query in the search box on the homepage
- Press Enter or click the search button
- View the search results, including AI-powered answers and knowledge panels
โ๏ธ Advanced Features
- AI Assistance: Prefix your query with โAsk AI:โ to get more detailed AI-generated answers
- Filter Results: Use the filter options on the search results page to refine your search
- Dark Mode: Toggle dark mode in the settings or let it automatically adjust based on your system preferences
- Settings Customization: Visit the settings page to customize your search experience
๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request.