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

feat: add adopters section to case study page #2232

Merged
merged 19 commits into from
Dec 21, 2023

Conversation

vishvamsinh28
Copy link
Contributor

adoptors added

Screenshot 2023-10-14 at 5 07 20 PM

fixes #2135

@netlify
Copy link

netlify bot commented Oct 14, 2023

Deploy Preview for asyncapi-website ready!

Built without sensitive environment variables

Name Link
🔨 Latest commit 7f18339
🔍 Latest deploy log https://app.netlify.com/sites/asyncapi-website/deploys/658446689d687400088449e9
😎 Deploy Preview https://deploy-preview-2232--asyncapi-website.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@github-actions
Copy link

github-actions bot commented Oct 14, 2023

⚡️ Lighthouse report for the changes in this PR:

Category Score
🔴 Performance 24
🟢 Accessibility 98
🟢 Best practices 100
🟢 SEO 100
🔴 PWA 30

Lighthouse ran on https://deploy-preview-2232--asyncapi-website.netlify.app/

Copy link
Member

@derberg derberg left a comment

Choose a reason for hiding this comment

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

Thanks a lot, you'll need to refactor a bit as we talk about Adopters and not Adoptors, so UI changes and all the naming updates must be done accordingly

regarding the yaml file with data, I would not differentiate between video and docs as there can also be just links to slides. So I suggest that resources is just an array of objects with title and link props

@vishvamsinh28 vishvamsinh28 changed the title feat: adoptors added feat: adopters added Oct 16, 2023
@vishvamsinh28
Copy link
Contributor Author

@derberg code updated!

.gitignore Outdated
@@ -7,6 +7,7 @@ node_modules
out
config/posts.json
config/case-studies.json
config/adoptors.json
Copy link
Member

Choose a reason for hiding this comment

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

adopters please

Copy link
Member

Choose a reason for hiding this comment

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

and remove adopters.json from this pr

@@ -0,0 +1,31 @@
- companyName: Reiffeisen Bank
Copy link
Member

Choose a reason for hiding this comment

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

file should be called adopters

<Paragraph typeStyle="body-md" className="my-4 max-w-4xl">
Feel free to submit a pull request with information about how your company uses AsyncAPI. We know that
writing an official case study might be time consuming and requires too much internal paper work.
Let's make sure we can atleast capture a use case that is already a great learning information for the
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
Let's make sure we can atleast capture a use case that is already a great learning information for the
Let's make sure we can at least capture a use case that is already a great learning information for the

@vishvamsinh28
Copy link
Contributor Author

vishvamsinh28 commented Oct 18, 2023

@derberg oh sorry i forgot to change the name of the files 😅. Is everything else perfect?

Check out how different companies use AsyncAPI and what problems they solve.
</Paragraph>
<Paragraph typeStyle="body-md" className="my-4 max-w-4xl">
Feel free to submit a pull request with information about how your company uses AsyncAPI. We know that
Copy link
Member

Choose a reason for hiding this comment

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

submit a pull request can you make it a link that points to config/adopters/adoptors.yml file, so people immediately know where to place the info


const dirWithAdopters = 'config/adopters';
module.exports = async function buildAdoptersList() {
let files = await readdir(dirWithAdopters);
Copy link
Member

Choose a reason for hiding this comment

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

adopters.yml is just a single file, and will be like this long term, so why we need code that reads all files from adopters dir. Maybe just remove adopters dir and add adopters.yml directory to config, and just read that one single file and transform to json

@vishvamsinh28
Copy link
Contributor Author

@derberg code updated! Should i add a line under "submit a pull request" ?

@derberg derberg changed the title feat: adopters added feat: add adopters section to case study page Oct 23, 2023
@derberg
Copy link
Member

derberg commented Oct 23, 2023

@vishvamsinh28 yes, make it visible as clickable link as it is not visible now

@@ -0,0 +1 @@
[{"companyName":"Reiffeisen Bank","useCase":"Continuous Integration and Continuous Delivery (CI/CD) pipeline based on GitOps to deploy a topology built on Async API definitions using a Kubernetes operator to an Apache Pulsar cluster.","resources":[{"title":"Video - From an AsyncAPI Definition to a Deployed Pulsar Topology Via GitOps","link":"https://www.youtube.com/watch?v=_MwzLZMwFN8"}]},{"companyName":"LEGO Group","useCase":"Broker management, where developers do not access the management console themselves, but rely on uploading AsyncAPI documents to a self service API that provisions access and topics specified in documents.","resources":[{"title":"Video - Documentation as Configuration for Management of Apache Pulsar","link":"https://www.youtube.com/watch?v=m8I0fYjx6Cc"}]},{"companyName":"LEGO Group","useCase":"Define, document and distribute event-driven APIs. Ensuring consistency and governance","resources":[{"title":"Video - Cross-Domain Events with AsyncAPI and AWS","link":"https://www.youtube.com/watch?v=qjarcJQVLOg"}]},{"companyName":"Bank of New Zealand","useCase":"Decentralized company-wide governance strategy for API. A self service for publishing APIs and docs.","resources":[{"title":"Video - Self-service Events & Decentralised Governance with AsyncAPI: A Real World Example","link":"https://www.confluent.io/events/kafka-summit-apac-2021/self-service-events-and-decentralised-governance-with-asyncapi-a-real-world/"}]},{"companyName":"Zora Robotics","useCase":"Documenting lot products public MQTT API and building a developers portal.","resources":[{"title":"Video - Buliding and managing an extensive API for Robotics and loT","link":"https://www.youtube.com/watch?v=yjHgT0n2BtA"},{"title":"Docs - Buliding and managing an extensive API for Robotics and loT","link":"https://docs.zorabots.be/dev-mqtt-docs/latest/index.html"}]}]
Copy link
Member

Choose a reason for hiding this comment

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

  • if this is always going to be a singe life, do we need adopters sub directory for it?
  • can you format it into multiple human readable, not one line string? and why it is not yml?

Copy link
Member

Choose a reason for hiding this comment

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

I have few more adopters

Company: Walmart
Use Case: Managing a central API Hub for internal teams. Using AsyncAPI for events discoverability an visibility in a single place. AsyncAPI also enabled company-wide governance on asynchronous APIs.
Resources:
      - Title: Video - Time For AsyncAPI Specification
         Link: https://www.youtube.com/watch?v=SxTpGRaNIPo


Company: eBay
Use Case: Enabling partners to build with eBay through asynchronous communication. Public AsyncAPI documents enable code generation and faster integration. It also enables governance and standardisation. 
Resources:
      - Title: Video - AsyncAPI 2.0: Enabling the Event-Driven World
         Link: https://www.youtube.com/watch?v=XCccEYMNX5g
      - Title: Article - AsyncAPI 2.0: Enabling the Event-Driven World
         Link: https://innovation.ebayinc.com/tech/engineering/asyncapi-2-0-enabling-the-event-driven-world/
      - Title: Docs - Overview of Notification API with public AsyncAPI documents
         Link: https://developer.ebay.com/api-docs/commerce/notification/overview.html

const { resolve } = require('path');

module.exports = async function buildAdoptersList() {
let AdoptersList = [];
Copy link
Member

Choose a reason for hiding this comment

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

why do we still need an array?


await writeFile(
resolve(__dirname, '../../config', 'adopters.json'),
JSON.stringify([jsonContent])
Copy link
Member

Choose a reason for hiding this comment

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

instead of doing AdoptersList[0] in component, just refactor this to JSON.stringify(jsonContent) right?

@vishvamsinh28
Copy link
Contributor Author

@derberg updated the code

derberg
derberg previously approved these changes Oct 30, 2023
@asyncapi-bot
Copy link
Contributor

asyncapi-bot commented Dec 7, 2023

⚡️ Lighthouse report for the changes in this PR:

Category Score
🔴 Performance 41
🟢 Accessibility 98
🟢 Best practices 92
🟢 SEO 100
🔴 PWA 33

Lighthouse ran on https://deploy-preview-2232--asyncapi-website.netlify.app/

@vishvamsinh28
Copy link
Contributor Author

@akshatnema No, i haven't added tests to it yet

@akshatnema
Copy link
Member

Adding do-not-merge label so that someone shouldn't accidentally merge this PR.

@akshatnema
Copy link
Member

/dnm

@derberg
Copy link
Member

derberg commented Dec 11, 2023

@vishvamsinh28 you need some help?

@vishvamsinh28
Copy link
Contributor Author

@vishvamsinh28 you need some help?

@derberg Yes, i am getting some errors after writing tests

@derberg
Copy link
Member

derberg commented Dec 19, 2023

@vishvamsinh28 you do know that I cannot help as long as you do not write exactly what errors you're getting 😆

derberg
derberg previously approved these changes Dec 21, 2023
Copy link
Member

@derberg derberg left a comment

Choose a reason for hiding this comment

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

LGTM
tests do what I expect them to do, iterate over data and make sure component renders them ❤️

@akshatnema wanna have a final look?


it('does not render anything when adopters array is empty', () => {
// Modify Casestudies component to pass an empty AdoptersList
mount(<Casestudies adopters={[]} />);
Copy link
Member

Choose a reason for hiding this comment

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

you haven't add any prop of adopters in CaseStudies component, how are you passing it to check that adopters should be empty?

Copy link
Contributor Author

@vishvamsinh28 vishvamsinh28 Dec 21, 2023

Choose a reason for hiding this comment

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

you haven't add any prop of adopters in CaseStudies component, how are you passing it to check that adopters should be empty?

@akshatnema i was testing few things and forgot to remove it from the code 😅. i have updated the tests but it is still failing the test, i don't why it is happening

derberg
derberg previously approved these changes Dec 21, 2023
Copy link
Member

@derberg derberg left a comment

Choose a reason for hiding this comment

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

❤️

@akshatnema
Copy link
Member

/rtm

@asyncapi-bot asyncapi-bot merged commit 355d1a3 into asyncapi:master Dec 21, 2023
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

extend current case study view with simplified adopters information
4 participants