A Google-based searching bar You can try it on here : http://gooly.phamvietduc.com
Table of Contents
Gooly is a google-clone search bar with support crawling tool from back-end. Here is the firstlook:
Behind the project is a tool that collects data from public websites and insert to the MySQL database. Here is how it looks:
Terminal
Database
During my exposure to web programming, I noticed that most websites, especially electronic information sites, adhere to a common standard, in order to increase the number of vistors.
When inspecting information from these pages, we see the presence of html tags. These tags will cover the general content of the website such as title, subject image, topic, etc. For example, when I inspect the homepage of Cnet and The Verge, we could se that there are some similiar in naming html tags such as "og:site_name", "og:description",,...
Inspecting Cnet
Inspecting the verge
With that ideas in mind, I started developing a tool that could recursively call in the meta tags and anchor tags of public websites, and collect the data into the database. The collected data is served to search engines.
- Clone the repo
git clone https://github.com/MagicDinosaur/Goooly.git
- Install NPM packages
npm install
- Enter your API in
config.js
const API_KEY = 'ENTER YOUR API';
There are some exciting challenges that I could add into my project in the near future.
- Add searching Image and voice
- Redesign database for better searching
- Implement Natural Language Processing ML models (GPT, BERT, Transformer) to enhance the quality of search queries
- Optimize crawling engine (first try with asynchronous I/O)
- Multi-language Support
- Vietnamese
- English
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion or feature idea that would make this better, please fork the repo and create a pull request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt
for more information.
Duc Pham - - [email protected]