Projects | UBC Room and Course Explorer

Project files available upon request.

The JSON Data Query Application is designed to support users in efficiently querying and managing JSON data structures by providing robust functionalities built with TypeScript and Node.js. This application allows users to perform complex queries on unstructured data, enabling them to extract relevant insights and perform data analysis. The application’s modular design promotes easy navigation and interaction with various data components.

The application is built using TypeScript for strong typing and improved code quality, while Node.js facilitates server-side logic. The query engine is made available through a REST API, allowing users to send requests and receive data seamlessly. For testing, Mocha.js and Chai.js are employed to ensure expected behavior and reliability of the application through comprehensive unit and integration tests. We also used Postman to test the API by passing a binary file into the body of requests, verifying the engine's ability to handle various input formats. This approach not only enhances the quality of the application but also makes it a valuable tool for users dealing with dynamic JSON data sets.

Questions Addressed

  • How can I create and execute efficient queries on JSON data structures?
  • What strategies can be employed to implement comprehensive testing for a TypeScript application using Mocha.js and Chai.js?
  • How do I structure the application components to ensure maintainability and scalability while adhering to Agile methodologies?

Database Specification

  1. Benefits: Utilizing a structured approach to manage JSON data simplifies data retrieval and analysis, enabling users to quickly find relevant information.
  2. Functionality: The application tracks various JSON data elements, allowing users to view, insert, update, and delete entries through a user-friendly interface.
  3. Technology Stack: TypeScript, Node.js, Mocha.js, and Chai.js.

Implementation Details

  1. Architecture Diagram: Models the structure of the application components and their interactions.
  2. Code Repository: The application code is hosted on GitHub, allowing for collaboration and version control.
  3. Schema Changes:
    1. Devised a generic query function for dynamic JSON data access, improving efficiency in data handling.
    2. Implemented data validation methods to ensure data integrity and adherence to user specifications.
    3. Created extensive unit tests to verify the expected behavior of application components.