* TODO Goals for v0.1.0 - [ ] Add unit tests, integration test, and doc tests to the project source code. - [ ] Add code to remove NSFW content from search results using a blocklist. - [ ] Add code to disallow user from searching for sensitive content (similar functionality to swisscows search engine) if strict safe search is turned on. - [ ] Improve error handling to handle scraping errors, reqwest errors, and other issues. - [ ] Add the ability for users to change the colorscheme of the page. =For example:= If a simple theme is used, then there should be the option of 9 different colorschemes to choose from, such as Catppuccino-Mocha, Solarized Dark, Nord, etc. - [ ] Implement random delays and behaviors to emulate human behavior to evade IP blocking. - [ ] Add Python/Lua configuration options to give more control to the user (server maintainer/administrator). - [ ] Create a settings page to allow users to configure the search engine and save their preferences using cookies. - [ ] Add a search engine logo to the index page and the navbar. - [X] Write a rust.yml file for automated testing of the project. - [X] Improve documentation for the project source code. - [X] Add a FAQ section to the README.org file to answer common questions about the project. - [X] Add logging to the websurfx project. - [X] Generate random user agents to protect user privacy. - [X] Add DuckDuckGo and at least one Searx engine instance as upstream providers. - [X] Add pagination support for search results. - [X] Create basic Handlebars pages and theme with Catppuccino colorscheme. * Goals for future development - Replace Handlebars with the faster templating engine /Tera/. - Add more upstream search engines. - Implement dorking support (like Google). - Add advanced search functionality and a dropdown menu for it. - Add more categories to the search engine's search page, such as images, files, news, and maps. - Add advanced image functionality for content creators, video editors, etc. - Add GPT integration, taking inspiration from the Langchain module of Python or incorporating it using pyo3, and give users the choice to add an API key. Giving users the choice is important, as some people may be against AI, and this will ensure that those users who don't want to use GPT can disable it by not adding an API key.