Skip to content

Added Case Studies page in Overview Section #473

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

Merged
merged 13 commits into from
Mar 20, 2024
38 changes: 0 additions & 38 deletions .github/workflows/greet_on_first_merge.yml

This file was deleted.

6 changes: 0 additions & 6 deletions components/CarbonsAds.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -115,12 +115,6 @@ CarbonAds.stylesheet = {
margin-top: 4px;
color: rgb(100 116 139);
}

@media (max-width: 1023px) {
#carbonads-container {
display: none;
}
}
`,
};

Expand Down
18 changes: 10 additions & 8 deletions components/Card.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react';
Copy link
Collaborator

Choose a reason for hiding this comment

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

Please use the Card component available in the branch and modify it if necessary.

import Link from 'next/link';

import TextTruncate from 'react-text-truncate';
interface CardProps {
title: string;
body: string;
Expand All @@ -12,23 +12,25 @@ interface CardProps {
const CardBody = ({ title, body, icon, link, image }: CardProps) => {
return (
<div className='group relative h-full w-full max-w-lg rounded-lg border border-gray-200 bg-white p-6 px-12 shadow-3xl transition-colors delay-[150ms] ease-in-out hover:bg-slate-100'>
<div className='flex justify-center'>
{image && <img src={image} className='h-32 w-36 p-2' />}
<div className='flex justify-center '>
{image && <img src={image} className='h-32 p-2' />}
</div>
<div className='flex flex-row items-start'>
<div className='flex flex-row items-start mb-6'>
{icon && (
<span className='mr-6 flex h-14 w-14 flex-shrink-0 items-center justify-center rounded-lg border bg-blue-200 px-3 text-gray-900'>
<img src={icon} alt={title} className='h-full w-full' />
</span>
)}
<h3 className='mb-5 mt-1 items-center text-[2rem] font-bold text-gray-900'>
<p className='mt-1 items-center text-[0.9rem] font-bold text-gray-900'>
{title}
</h3>
</p>
</div>
<hr className='mb-4 mt-3.5 h-px border-0 bg-gray-400' />
<p className='text-lg mb-8 mt-5'>{body}</p>
<p className='text-lg mb-8 mt-5 dark:text-gray-800'>
<TextTruncate element='span' line={3} text={body} />
</p>
{link && (
<p className='absolute bottom-3 right-5 font-medium opacity-0 transition-opacity delay-150 ease-in-out group-hover:opacity-100'>
<p className='absolute bottom-3 right-5 font-medium opacity-0 transition-opacity delay-150 ease-in-out group-hover:opacity-100 dark:text-black'>
Read More
</p>
)}
Expand Down
2 changes: 2 additions & 0 deletions components/Sidebar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ const SegmentSubtitle = ({ label }: { label: string }) => {
const getDocsPath = [
'/overview/what-is-jsonschema',
'/overview/sponsors',
'/overview/casestudies',
'/overview/similar-technologies',
'/overview/code-of-conduct',
'/overview/FAQ',
Expand Down Expand Up @@ -309,6 +310,7 @@ export const DocsNav = () => {
label='What is JSON Schema?'
/>
<DocLink uri='/overview/sponsors' label='Sponsors' />
<DocLink uri='/overview/casestudies' label='Case Studies' />
<DocLink
uri='/overview/similar-technologies'
label='Similar Technologies'
Expand Down
1 change: 1 addition & 0 deletions components/StyledMarkdown.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -490,6 +490,7 @@ const StyledMarkdownBlock = ({ markdown }: { markdown: string }) => {
);
},
},

TableOfContent: {
component: ({ depth }) => {
// eslint-disable-next-line react-hooks/rules-of-hooks
Expand Down
78 changes: 78 additions & 0 deletions data/casestudies.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
[
Copy link
Collaborator

Choose a reason for hiding this comment

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

Can you please build a real data set with our case studies? This is the list:
https://json-schema.org/blog?type=Case%20Study

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Hey @benjagm
where do we want to direct the link we are adding in each casestudy card? According to card's implementation the link I am adding is shown as read more.
e.g if I have added homepage url in link prop of card it is showing read more and on clicking read more i am directed to home page.

Copy link
Collaborator

Choose a reason for hiding this comment

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

where do we want to direct the link we are adding in each casestudy card?

The url will be the case study blog post.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Okay! Got it

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Hey @benjagm I have some doubts regarding data set
What are we going to add at the place of logo and are we going to add complete title of blog post if yes then it will be too large because in the implementation of card title it is made by using h3 so how should I proceed with it.

Copy link
Collaborator

Choose a reason for hiding this comment

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

We need to find the company logos and add them to the folder: https://github.com/json-schema-org/website/tree/main/public/img/logos

Copy link
Contributor Author

Choose a reason for hiding this comment

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

okay! and what about the size of card title do I need to change the card component?

Copy link
Collaborator

Choose a reason for hiding this comment

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

Why changing the size of the card? Try to use this one and if you need to make some adjustments do it but just for the card features that you need. Remember that the card is now going to be used in 3 different pages.

For example you can change the logo size or fix a bug but not the whole card component without reason. Right?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sorry for the confusion @benjagm
I am not asking to change the card size but the bug is related to title if I directly put title in this component it will look like this

cr

It is because title is written with h3 size in card component.
I will definitely not change the card component directly but if there is no other way I will just make a copy of this component and make changes to that one .

Copy link
Collaborator

Choose a reason for hiding this comment

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

In this case feel free to modify it

{
"title":"How JSON Schema Was an Obvious Choice at GitHub",
"summary":"At GitHub's Docs Engineering team, while shipping releases to production 20 times per day or more, JSON Schema is critical in increasing confidence in changes to data, content and APIs.",
"logo": "/img/logos/github-logo.png",
"links":
{
"lang": "URL1",
"url": "/blog/posts/github-case-study"
}
},
{
"title":"How 6 River Systems saves time and boosts collaboration with JSON Schema",
"summary":"Explore the powerful impact of JSON Schema on 6 River Systems' fulfillment operations. Discover how they enabled enhanced collaboration, time savings, and data quality assurance, propelling their successful scaling journey.",
"logo": "/img/logos/6river-logo.svg",
"links":
{
"lang": "URL1",
"url": "/blog/posts/6-river-systems-case-study"
}

},
{
"title":"Transforming the technical recruiting industry with JSON Schema",
"summary":"Learn how Manfred used JSON Schema to transform the technical recruiting industry.",
"logo": "/img/logos/manfred-color.svg",
"links":
{
"lang": "URL1",
"url": "/blog/posts/manfred-case-study"
}

},
{
"title":"How Postman uses JSON Schema",
"summary":"Learn how JSON Schema continues to be a crucial component of the Postman API Platform and the API ecosystem.",
"logo": "/img/logos/sponsors/Postman_logo-orange.svg",
"links":
{
"lang": "URL1",
"url": "/blog/posts/postman-case-study"
}

},
{
"title":"Using JSON Schema at Remote to scale forms and data validations",
"summary":"Using JSON Schema at Remote was the first step to solving data validation and form generation problems across all levels at Remote.",
"logo": "/img/logos/remote-logo.png",
"links":
{
"lang": "URL1",
"url": "/blog/posts/remote-case-study"
}

},
{
"title":"How Tyler Technologies reduced its client feedback loop with JSON Schema",
"summary":"Using JSON Schema at Tyler Technologies meant showing added value to clients could take minutes rather than days or in some cases weeks.",
"logo": "/img/logos/tyler-tech-logo.svg",
"links":
{
"lang": "URL1",
"url": "/blog/posts/tyler-technologies-case-study"
}

},
{
"title":"How the W3C Web of Things brings JSON Schema to the Internet of Things",
"summary":"Using JSON Schema at the W3C Web of Things to create an interoperability layer so that different IoT platforms, protocols and standards can operate together",
"logo": "/img/logos/wot-logo.png",
"links":
{
"lang": "URL1",
"url": "/blog/posts/w3c-wot-case-study"
}

}
]
Loading