/mcgill.wtf

A low-latency full-text search of mcgill's entire course catalog

Primary LanguageRustCreative Commons Zero v1.0 UniversalCC0-1.0

mcgill.wtf

mcgill.wtf is a fast full-text search of McGill's entire course catalog with a server implemented in Rust and an intuitive front-end built using React.

Development

Downloading course data

In order the query the server for courses, you need to specify a data-source, which can be downloaded via the download subcommand provided by the server binary:

$ RUST_LOG=info cargo run -- download --starting-page <page>

Spawning the front and back-end components

In order to run the server locally you need Docker and Cargo installed on your machine. By default the server listens for requests on port 7500 and can be spawned by running the serve script in the /bin directory located in the project root:

$ RUST_LOG=info ./bin/serve -l -d <datasource>

The front-end is now able to issue requests to the server, launch it by invoking the following commands:

$ npm run install
$ npm run dev

Credits

This project was heavily inspired by Eric Zhang's implementation of classes.wtf, and was also built for some of the same reasons.