Overview:
The Classes.wtf project aims to address the issue of slow and irrelevant course search results in online catalogs by providing a high-performance, distributed search engine written in Go. By focusing on speed and quality of results, this project offers users a faster and more useful experience when searching for classes.
Features:
- Custom, distributed search engine in Go: Designed for speed and quality of results.
- In-memory Redis database: Supports full-text fuzzy and prefix search on all fields.
- Static website built with Svelte: Processes search queries immediately after every keystroke.
- Geographically distributed replicas: Ensures low latency by routing requests to the nearest server.
Installation:
Clone the repository:
git clone [repository_url]
Install dependencies:
- Backend: Go 1.20 and Docker
- Frontend: Node.js v18
Download the dataset:
- Academic terms before Spring 2022 (AY 2022) from Curricle
- Starting Fall 2022 (AY 2023) from My.Harvard
Customize the data loading script for indexing different courses.
Summary:
Classes.wtf is a project that addresses the inefficiency and irrelevance of online course search catalogs by offering a custom, distributed search engine focused on speed and quality of results. By leveraging technologies like Go for the backend, Redis for in-memory storage, and Svelte for the frontend, the project aims to provide users with a faster and more effective class search experience. The use of geographically distributed replicas ensures low latency by routing requests to the nearest server, further enhancing the user experience.