Course Search Engine


Demo

Overview

This project was built to efficiently parse and search large-scale university course data. It scrapes the school's course explorer database, processes it, and stores it in a C++-based dictionary data structure for fast lookups. In the future a graph-based backend will be used to connect courses by topics and previous searches.

System Design

The project uses a modular architecture however it is not complete so the final diagram is not available yet.

  • Course Dictionary: Custom hash map built using STL containers for O(1) average lookups.
  • Course Graph: Directed graph structure inside course structs enabling web based searches for faster query results

Software

  • Developed entirely in C++ using object-oriented principles.
  • Python Scraper module extracts and cleans data from the university course explorer JSON files.
  • Dictionary stores course info by subject, code, and title with efficient hashing.
  • Graph class maintains course relationships for dependency tracking and advanced searches.

Results

The system loads and parses thousands of courses in seconds, enabling instant text-based search queries. Dictionary is fully functional and is usable for simple search queries. Modular design allows new data sources and features to be added with minimal refactoring.

Project Code

The complete implementation, including data parsing scripts, C++ source files, and build makefile, can be found on GitHub:

Future Work

  • Implement graph-based recommendations and “related courses” suggestions.
  • Add web-based front-end interface for interactive search visualization.
  • Add semantics analysis to help connect classes together based on a scoring system.