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