Sep - Dec 2022

Insight UBC

A web application to parse and query data of 60,000 UBC courses and rooms

Technologies: HTML/CSS, TypeScript, Node.js, Mocha, Chai
Keywords: Agile & Scrum Methodologies, Test-Driven Development (TDD), RESTful API


User Stories

Using the UI, the user can...

  • add datasets of sections and rooms, so that they can store and manage information on the website and, later on, use them for querying the information.
  • specify the number of sections to get as the result of a query so that they can get only the necessary amount of information and avoid seeing an overwhelming number of results.

The REST endpoints allows to...

  • PUT: submit a set of course/room data as a zip file.
  • DELETE: deletes an existing dataset.
  • POST: sends a query as JSON format.
  • GET: obtain a list of existing datasets.

Development

Test-driven development (TDD)

Backend

Data Processor

  • Takes a dataset as a zip file of JSON files and validates data
  • Takes a dataset as HTML files and parse with parse5
  • Convert valid datasets to a data model

Query Engine

  • Parses and validates a query in JSON format
  • Collects data based on the query