Online Search Engine
Online Search Engine 333gle
is a secure, multi-threaded, HTTP-based online search engine, featuring fast index search, internal logging, context previews and more.
Duration: 2021.09 - 2021.12 (11 weeks)
My Role: software developer
Tool: C, C++, Boost Framework, Make, Valgrind, Linux Server, Git
This is a system programming course project from the Paul G. Allen School of Computer Science and Engineering at University of Washington.
There are in total 4 parts of the project.
- part 1: designing and developing underlying data structures - a doubly linked-list and a chained hash table in C.
- part 2: use the LinkedList and HashTable module from part 1 to implement a file system crawler, indexer, and search engine following industry standard C practices.
- part 3: takes an in-memory inverted index from the previous indexer and writes it out to disk in an architecture-neutral format. Then implement lookup functionality that walks through an on-disk index to service the lookup. Finally, develope a query processor that serves queries from multiple on-disk indices.
- part 4: accept the HTTP connection requests from the client and handle them in a multi-threaded way. Then parse the request headers and serve the it based on static files or external web links. Finally, perform security enhancements by eliminating cross-site scripting and directory traversal attacks.
Additional Features:
- Full dark-mode support
- Keyword context previews
- Internal Logging using
Boost.Log
Demo video for the 333gle
online search engine