Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[GSoC'24]: Build Data Driven JSON Schema Tooling Web Release #915

Merged
merged 10 commits into from
Sep 4, 2024

Conversation

DarhkVoyd
Copy link
Member

What kind of change does this PR introduce?
This PR aims to merge the work done on the enhancements and improvements made to the JSON Schema Tooling View as part of the Google Summer of Code 2024 project. The goal of this project was to build a data-driven, user-friendly tooling view that improves both design and functionality, making it easier for users to explore and adopt tools in the JSON Schema ecosystem.

Summary of Changes:

  1. Data Model Improvements:

    • Cleaned up unused and outdated fields.
    • Consolidated all relevant data into a single, maintainable file.
    • Added additional fields for detailed information and future community events.
  2. UI/UX Redesign:

    • Implemented a new design based on Figma mockups, improving navigation and reducing user friction.
    • Ensured responsive design across devices for consistent user experience.
    • Introduced detailed modals for each tool, including compatibility notes and additional information.
  3. Filtering and Sorting Options:

    • Developed advanced filtering mechanisms to search and filter tools by draft versions, licenses, languages, and more.
    • Ensured filters are device-friendly, with a mobile-responsive overlay for filter options.
    • Integrated URLSearchParams to store filter states in the URL for consistency during sharing and bookmarking.
  4. Bowtie Integration:

    • Integrated Bowtie benchmarks and compliance data into the tooling table.
    • Added call-to-action buttons like "Try Bowtie Meta-Validator" for better user engagement.
  5. User Interaction Tracking:

    • Implemented user interaction tracking using Google Sheets and Google Apps Script to monitor user engagement and trends without compromising user privacy.
    • Added analytics for user interactions such as tool clicks, filter usage.

Related Issues:

Additional Notes:

I would like to extend my thanks to the entire JSON Schema community and my mentor, Benjamin Granados, for their support and guidance throughout the project.

Looking forward to feedback and suggestions to ensure this release meets our community standards and expectations!

DarhkVoyd and others added 9 commits July 9, 2024 13:13
* add validators to updated tooling data

* migrate hardcoded tooling data to updated model

* refine structure

* fix, clean, and add environment field

* add dependsOnValidators field

* remove empty fields

* conform to ecosystem tooling identification schema

* remove incorrect draft

* fix apache 2.0 license to spdx identifier
* initial redesign migration

* remove environments groupby
…rt (#858)

* [pages][tools]: Prepare Tooling Page for Release

Closes: #780

* improve dropdownmenu and sidebar with svgr logo

better sidebar

better tooling table

* add ToolingTable

* fix sidebar and query params

* improve tooling data table

fix

* fix mobile responsive

* use css columns in modal

* use modal svgr icon

remove margins in tooling modal

* add initial analytics

* add sort by bowtie

* add analytics schema and fix sidebar bug

* fix CORS error

redirect follow is critical. Also, setting content-type header to
text/plain is critical, even if sending JSON, as "text/plain" does not
trigger the browser's preflight requests (which are unsupported by
Google here)

* update schema to remove source and homepage

* update yarn lock

* update call to action and issue template

* Pushed changes to improve style

* update dependencies

* fix json path types build error

* remove unused file

* update redirects

* update internal links

* fix linting errors

* add backend api

* fix bowtie api integration and add skeleton placeholder

* fix bowtie served over https

* sort toolingData drafts

* fix bowtie skeleton width style

* fix bowtie skeleton width

* add native title based tooltip

---------

Co-authored-by: Benjamin Granados <[email protected]>
* sync tooling data

* add tooling data validation workflow and fix JSONSchemaTool interface

* fix undefined error

* use corepack and yarn in workflow

* fix tooling data

* fix tooling data draft

* Added 2 last tools

---------

Co-authored-by: Benjamin Granados <[email protected]>
* add /implementations to /tools redirects

* fix /tools sidebar dropdown scrollbar

* fix nav link does not reset filters

* fix redirect typo

* update yarn lock

* fix redirects

* move wild card redirect to last

* fix dependencies problem

---------

Co-authored-by: Benjamin Granados <[email protected]>
@DarhkVoyd DarhkVoyd requested a review from a team as a code owner September 4, 2024 08:44
Copy link

github-actions bot commented Sep 4, 2024

Hey there 👋!

Are you an implementer of a new JSON Schema related tool, or an interested user submitting a tool you like?
If so, thanks for considering adding your tool to our collection -- and if not, sorry, I'm just a bot looking at which pages you're modifying!

Someone will review your pull request shortly.

In the interim, if you haven't already, there's a few things you might be interested in reviewing or confirming:

  1. Short description: Tell us a small bit about your tool! We love staying up to date on what's out there, and what your intentions are in writing it.
  2. Come Join Our Slack!: We have an #implementers channel for anyone interested in or building JSON Schema tooling!
    An invite can be found here or on our homepage!
  3. Common Interfaces: We maintain a page with some "commonly useful programming interfaces" that tooling may want to implement and present to your users.
    You can find that page here in our documentation.
    Have a read through and consider whether you implement or should implement any of what's there.
  4. Bowtie Harness: Bowtie is a tool which gives JSON Schema users access to a huge number of different implementations across many languages, and reports on the compliance of those implementations with the JSON Schema specifications.
    If it makes sense for your kind of tool, consider writing a harness which connects it to Bowtie. Instructions for doing so can be found in the tutorial in Bowtie's documentation.

If you have any questions, any feedback, or need help with the submission process, don't hesitate to reach out.
Thanks a bunch for your awesome contribution!

Copy link

github-actions bot commented Sep 4, 2024

built with Refined Cloudflare Pages Action

⚡ Cloudflare Pages Deployment

Name Status Preview Last Commit
website ✅ Ready (View Log) Visit Preview 7d56dda

Copy link
Collaborator

@benjagm benjagm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Congratulations on completing your GSoC project! Amazing job DV

Copy link

codecov bot commented Sep 4, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 100.00%. Comparing base (176033f) to head (7d56dda).
Report is 2 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #915   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           10        10           
  Lines          373       373           
  Branches        94        94           
=========================================
  Hits           373       373           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@benjagm benjagm merged commit 33dbd28 into main Sep 4, 2024
9 of 10 checks passed
@benjagm benjagm deleted the web-release-tooling branch September 4, 2024 08:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment