Skip to content

GSoC: New Bowtie Test Case Widgets #609

Closed
@Julian

Description

@Julian

Project title

New Bowtie Test Case Widgets

Brief Description

Bowtie is a JSON Schema tool for comparing implementations with each other, and reporting on when or whether they have behavior which does not match with behavior expected by the JSON Schema specification.

It renders this information on a website at bowtie.report.

A major part of showing this information is communicating:

  • a specific JSON Schema
  • a specific JSON instance (piece of data)
  • the expected result for whether this schema considers the instance valid
  • the actual result received from 15 or more implementations which were tested
  • a description of this specific test case suitable for human readers

How to present these 5 bits of information (and a few more) can get challenging when showing a large number of test cases.

Bowtie's website currently contains a crude pair of UI widgets for doing this -- specifically it renders a long list of collapsible sections:

Screenshot 2024-02-01 at 8 38 16 AM

and then when expanding one, shows the schema, instance, and results in a table:

Screenshot 2024-02-01 at 8 39 14 AM

But we can do lots better! Help rewrite Bowtie's test UI components so that we can cleanly filter through hundreds or thousands of test cases in a clear and efficient way.

Expected Outcomes

  • New UI components for test case lists as well as instance/schema pairs
  • Integration of these components with Bowtie's site

Skills Required

  • React / TypeScript expertise
  • An eye for design
  • Basic knowledge of JSON Schema

Mentors

@Julian

Expected Difficulty
Medium

Expected Time Commitment
175 Hour

Metadata

Metadata

Assignees

No one assigned

    Labels

    Status: Do not closeThis is a long term issue with dependant issues. This label prevent it to be closed automatically.gsocGoogle Summer of Code Project Idea

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions