https://github.com/schbenedikt/search-engine
AI search engine
https://github.com/schbenedikt/search-engine
ai artificial-intelligence awesome bootstrap bootstrap5 container database docker engine features google-ai mysql python search
Last synced: 14 days ago
JSON representation
AI search engine
- Host: GitHub
- URL: https://github.com/schbenedikt/search-engine
- Owner: SchBenedikt
- Created: 2024-06-09T05:56:30.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2026-01-17T09:17:49.000Z (3 months ago)
- Last Synced: 2026-01-17T20:24:16.492Z (3 months ago)
- Topics: ai, artificial-intelligence, awesome, bootstrap, bootstrap5, container, database, docker, engine, features, google-ai, mysql, python, search
- Language: HTML
- Homepage: https://schbenedikt.github.io/search-engine/
- Size: 457 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ๐ Search Engine
The matching search engine to my [web crawler](https://github.com/SchBenedikt/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:
```sh
docker build -t ghcr.io/schbenedikt/search-engine:latest .
```
### ๐ Running the Docker Container
To run the Docker container, use the following command:
```sh
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:`.
### ๐ฅ Pulling the Docker Image
The Docker image is publicly accessible. To pull the Docker image from GitHub Container Registry, use the following command:
```sh
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:
```sh
docker-compose up
```
This will start both containers and the Flask application will be accessible at `http://localhost:`.
### ๐ 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:
```yaml
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:
```
### ๐๏ธ Database Configuration
The `db_config.json` file is used to store the database configuration. Here is an example of the `db_config.json` file:
```json
[
{
"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:5560/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
1. Clone the repository
```sh
git clone https://github.com/SchBenedikt/search-engine.git
cd search-engine
```
2. Create and activate a virtual environment (optional but recommended)
```sh
python -m venv venv
# On Windows
venv\Scripts\activate
# On macOS/Linux
source venv/bin/activate
```
3. Install dependencies
```sh
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
```sh
python3 app.py
```
6. Open your browser and navigate to `http://localhost:5560`
## ๐ Usage Guide
### ๐ Basic Search
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
- **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.