The matching search engine to my web crawler.
- π 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
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
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 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
The search interface is designed for maximum usability:
- π§Ό Clean, distraction-free design
- π¬ Real-time search suggestions
- β±οΈ Search speed display
- π Filter options for refined results
- π₯οΈ 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
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 .
To run the Docker container, use the following command:
docker run -p 5560:5560 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:
.
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
Ensure that the tags
field in the GitHub Actions workflow is correctly set to ghcr.io/schbenedikt/search-engine:latest
to avoid multiple packages.
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:
.
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:
- "5560:5560"
mongodb:
image: mongo:latest
ports:
- "27017:27017"
volumes:
- mongo-data:/data/db
volumes:
mongo-data:
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"
}
]
The settings.html
file has been updated to include fields for username and password. You can access the settings page at http://localhost:5560/settings
to update the database configuration.
- Python 3.10+
- MongoDB (local installation or remote access)
- Modern web browser with JavaScript enabled
-
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
- Update the
-
Start the application
python3 app.py
-
Open your browser and navigate to
http://localhost:5560
- 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
- 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
Contributions are welcome! Please feel free to submit a Pull Request.