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 : Setting up the CI/CD Pipeline for the JSON Schema website #603

Closed
benjagm opened this issue Jan 31, 2024 · 25 comments
Closed

GSoC : Setting up the CI/CD Pipeline for the JSON Schema website #603

benjagm opened this issue Jan 31, 2024 · 25 comments
Labels
gsoc Google Summer of Code Project Idea Status: Do not close This is a long term issue with dependant issues. This label prevent it to be closed automatically.

Comments

@benjagm
Copy link
Collaborator

benjagm commented Jan 31, 2024

GSoC : Setting up the CI/CD Pipeline for the JSON Schema website using Github Actions

Brief Description
Currently the JSON Schema website have a very basic CI/CD workflow but we aim to provide a consistent way to securely add new features by improving the CI/CD workflow. The Project aims to stabilise & setup the CI/CD pipeline for the JSON Schema website project.

The second stage of this project will be create a minimal implementation of UI testing to be validated as part of the workflow so we can continue improve the tests over time.

Expected Outcomes
The Project aims to stabilise & setup the CI/CD pipeline for the JSON Schema website project. The project implies:

  1. Improving the CI/CD workflow using github actions and other tools to add features such as:
    • Lint.
    • Formatting.
    • Broken links check.
    • Unit Test.
    • Build.
    • UI Test.
  2. Define and Implement the Unit Testing and UI Testing.
  3. Review and consolidate the existing GitHub workflows approach what will be a mix of CI/CD and Community Ops.
  4. Expand the scope if necessary.

Skills Required

  • This task is ideal for someone with a full-stack mindset.
  • Familiarity with CI/CD workflows using Github Actions.
  • Familiarity with Unit and UI Testing with Typescript, React and Next.js.

Mentors
@benjagm

Expected Difficulty
Easy/Medium

Expected Time Commitment
175 hours

@benjagm benjagm added the gsoc Google Summer of Code Project Idea label Jan 31, 2024
@MonalSD
Copy link

MonalSD commented Feb 22, 2024

@benjagm I have gone through the problem statement above. I would like to contribute since I have the desired skills required it will help me to enhance my skills too. As well as we can try doing end to end testing and attach feedback loop also with that automate the documentation for JSON.

@aialok
Copy link
Collaborator

aialok commented Feb 22, 2024

Hey @benjagm!

I am deeply interested in the issue GSoC: Setting up the CI/CD Pipeline for the JSON Schema website #603. I have already contributed unit tests to several open-source projects and have experience with CI/CD pipelines using GitHub Actions. I am enthusiastic about collaborating with you and becoming a valuable member of the JSON-Schema organization.

PS: I am already working on the issue, which involves linting, formatting, and Husky.

Thank you!

@AyushNautiyalDeveloper
Copy link

@benjagm I have read the requirements. I am willing to work on this. I have been following this issue for a time now. and I could assure you that I have researched enough for this task. soon I will present the details implementation of how I am gonna work and complete this issue. thank you.

@PRANJALRANA11
Copy link

Hi @benjagm,

I've reviewed the requirements and I'm interested in working on this task. I have experience with GitHub Actions, Next.js, TypeScript, and I've also conducted Jest DOM testing in the past. Could you provide guidance on how I should proceed with tackling this issue?

Looking forward to your instructions.

@abhaykhurana1999
Copy link

Hi @benjagm Quite Interested in this project also i have developed CI/CD Pipeline for my organization using AWS Server-less Architecture and i am quite familiar with the tech stack will be using here such as React JS , GitHub Actions and Typescript.
After Going through the requirement i have some suggestions and solutions that we schould consider in CI/CD Pipeline.

  1. For Security Purposes we schould integrate the Pipeline the fossa and fortify Scans so that any vulnerability that is in the code and any dependency schould be avoided to be pushed into production.

  2. For Broken links we can create a lightweight utility that identifies on the basis of fetch call or axios call that they are broken or not by analyzing the responses.

  3. For Unit Testing we can go for jest test cases and also make a mandate that 70% coverage schould be done to improve code quality.

Eager to know your views on that Thanks.

@Theskyspace
Copy link

Hey @benjagm
I'm genuinely excited about the opportunity to work on enhancing the JSON Schema website's CI/CD pipeline. The idea of building a more stable and efficient system, especially integrating features like code checks, automated testing, and UI validations, really resonates with me. My background in Typescript, React, Next.js, and testing frameworks positions me well to contribute meaningfully to this project. I'm looking forward to diving into the challenges and collaborating with the team to make a significant impact.

@benjagm
Copy link
Collaborator Author

benjagm commented Feb 27, 2024

Thanks a lot for joining JSON Schema org for this edition of GSoC!!

Qualification tasks will be published as comments in the project ideas by Thursday/Friday of this week. In addition I'd like to invite you to a office hours session this thursday 18:30 UTC where we'll present the ideas and the relevant date to consider at this stage of the program.

Please use this link to join the session:
🌐 Zoom
📅 20124-02-29 18:30 UTC

See you there!

@3Nakajugo
Copy link

hi @benjagm, I would love to work on this project during the GSoC 2024

@benjagm
Copy link
Collaborator Author

benjagm commented Feb 27, 2024

Qualification task

The qualification task for this issue will consist in 2 elements:
1. Collaborate with the project
completing one issue of the website development or documentation board. If you collaborate with someone to do a joint PR that will perfect. In fact, we'd love to see you all collaborating.

If there are no issues available, you can be reviewer of PRs opened by others.

2. Analize and Strategise
We'd like you to analize the current situation of the website project and what is your strategy to provide a solid and scalable CI/CD strategy that can help us grow and scale without forgetting about quality.

We are interested in contributors that are creative, great at problem solving and strong with devops practices. In addition, we are looking for contributors that are good open source citizens and love collaborating with others.

Mentor: @benjagm

@mathanraj0601
Copy link

Hi @benjagm , The project idea sounds good. Would love to work on this during GSOC'24 to utilize GitHub action, jest testing skills

@ayushtiwari110
Copy link
Contributor

Hi @benjagm, I have viewed the idea. It seems interesting to me. I have worked on CI/CD pipelines, Github Actions, Next.js, Typescript, React in the past. Would love to contribute to this during this summer.

@satyam-x10
Copy link
Contributor

satyam-x10 commented Mar 2, 2024

Dear JSON Schema Team,

I am Satyam Kumar, a 3rd year B.tech student from IIT and I'm eager to express my interest in the GSoC project focused on enhancing the CI/CD pipeline for the JSON Schema website. While I have experience with pipelines and Github actions, my exposure to linting, UI testing, and other aspects is limited. However, I am a dedicated learner and enthusiastic about expanding my skills to contribute effectively. I believe my full-stack mindset and commitment to learning make me a suitable candidate for this project. I'm excited about the opportunity to collaborate with the JSON Schema team and contribute to the project's success.

i would request @benjagm to look this and give me the opportunity to contribute. #603
Thank you

@benjagm
Copy link
Collaborator Author

benjagm commented Mar 7, 2024

We just added a new item in the expected outcomes:
Review and consolidate the existing GitHub workflows approach what will be a mix of CI/CD and Community Ops.

@AmarnathKothamasu
Copy link

Hey @benjagm !

I Have gone through the above problem statement, and it suits for my tech stack. I'm excited to offer my expertise in FullStack Development, API integration, Angular, and CI/CD deployment, including Jenkins and GitHub Actions. With three years of experience, I'm eager to collaborate with the JSON Schema team to ensure project success. My skills align perfectly with the requirements outlined, and I'm committed to delivering high-quality contributions. I look forward to discussing how I can support the project further.

@maverox
Copy link

maverox commented Mar 12, 2024

Hi! I'm Uzair KHAN, a student at BPIT India studying Comp Sci.
I am a programming enthusiast and my expertise are in mern stack!
I have created several projects

  • uzzenger: fullstack rtc chat app using mern stack and websockets
  • uzzurcel: vercel clone backend, using aws S3, ecs, ecr, sockets and redis for logs,
  • crisp url: url shortener using ejs and express to implement server side rendering
  • readingTime: a chrome extension to assist in reading by creating your cursor dynamic to point to text.
  • ....and many more
    githubLink

To contact me: [email protected]

  1. What interests you most about this project?

    I'm excited about enhancing the CI/CD pipeline for the JSON Schema website, especially implementing automated testing and deployment. The challenge of improving development infrastructure while ensuring stability and reliability is particularly intriguing.

  2. As mentors and project coordinators, how can we get the best out of you?

    Clear communication, regular feedback sessions, and providing detailed documentation would help me contribute effectively. I also value collaborative problem-solving and open discussions.

  3. Is there anything that you’ll be studying or working on whilst working alongside us?

    I'll focus on deepening my understanding of CI/CD workflows with GitHub Actions, improving unit and UI testing skills, and learning about the specific requirements of the JSON Schema website project.

  4. We'd love to hear a bit about your work preferences, e.g., how you keep yourself organized, what tools you use, etc.

  • figma for designing
  • i use todo list like google keep and google calendar
  • google meet for communicating and collaborating
  • vs code for coding development and testing
  • postman for api testing
  • git for version control
  • docker for containerizing and controlled runtime environment
  1. Once you’ve selected a project from the ideas section, please suggest a weekly schedule with clear milestones and deliverables around it.

    • Week 1: Project Familiarization

      • Milestone: Understand JSON Schema website project and current CI/CD workflow.
      • Deliverable: Summary of project structure and existing workflows.
    • Week 2: CI/CD Workflow Analysis and Improvement

      • Milestone: Identify areas for CI/CD workflow enhancement.
      • Deliverable: Plan for implementing linting, formatting, and broken links checks.
    • Week 3: Testing Infrastructure Setup

      • Milestone: Begin setting up unit testing infrastructure.
      • Deliverable: Initial configuration of unit testing for TypeScript, React, and Next.js.
    • Week 4: Testing Framework Definition

      • Milestone: Define requirements and framework for UI testing.
      • Deliverable: Documentation outlining UI testing strategy and tools to be used.
    • Week 5: UI Testing Implementation

      • Milestone: Implement initial UI testing framework.
      • Deliverable: Integration of UI testing into CI/CD pipeline.
    • Week 6: Testing and Debugging

      • Milestone: Conduct thorough testing and debugging.
      • Deliverable: Report on testing results and resolved issues.
    • Week 7: Workflow Optimization

      • Milestone: Review and consolidate GitHub workflows.
      • Deliverable: Optimized CI/CD processes for efficiency.
    • Week 8: Documentation and Handover

      • Milestone: Finalize documentation and prepare for project handover.
      • Deliverable: Comprehensive documentation and project review for handover.

@BigJoe17
Copy link

Hello @AceTheCreator, as requested in the project
Tell us about your self
I am a sophomore @ Marwadi University India studying computer Science and Engineering and a passionate computer science student..
What Interest You about the Project
As a software developer who has built different side Projects whether it be in Hackathon or clients projects, the goto tools has always been Postman and its really interesting to be part of the contributors this great a tools used by a lot of developers world wide.
I love it's simplicity and postman is easy to get started with.

As mentors and project coordinators, how can we get the best out of you
As a student looking to contribute to Postman open-source software, you can get the best out of me by providing clear guidance on the project's goals and requirements. I thrive in a collaborative environment where feedback is encouraged, so regular communication and constructive criticism would be highly beneficial. Additionally, I'm always eager to learn and improve, so any resources or opportunities for skill development would be greatly appreciated.

Is there anything that you’ll be studying or working on whilst working

Well right now I am still in Buildong stage and working on some other side projects but I am willing to give my time to this Project for the next few months by makinng meaniful contribution to it, and I think it will not stop me from working on other personal and academic projects..

*We'd love to hear a bit about your work preferences, e.g. how you keep yourself organised, what tools you use, etc?

I prefer to stay organized by using tools like GitHub for version control and project management. I do break my work into smaller, manageable chunks and prioritize them based on their importance and deadlines. I also rely on communication tools like Slack or Discord for team collaboration and regular updates. I'm flexible and open to using any specific tools or methodologies preferred by the project team to ensure efficient and effective contribution.

I am looking forward to contributing to this Project meaningfully..

@sncshr
Copy link

sncshr commented Mar 14, 2024

Hi @benjagm ,
I am recent CS graduate, and I am writing to express my interest in this item for the GSOC project. I have extensive interest in building and testing projects utilizing Typescript, React, and Next.js. I have also had the chance to utilize Git Actions to automate deployment for some startup projects onto Cloud services like AWS. To me, the prospect of contributing to the long-term stability and scalability of the project is highly motivating.
I am also in process of preparing my proposal document with this issue in mind, and I did get a chance to start working on one of the qualification tasks that you provided before.

Below are answers to some of the questions that would make it easier for you to get to know me :

As mentors and project coordinators, how can we get the best out of you?
To get the best out of me, clear communication and open feedback are crucial. I value mentorship and guidance throughout the project duration.
Is there anything that you’ll be studying or working on whilst working alongside us?
While working on the project, I will continue working full time as a Software Developer. My schedule would have more than enough space to complete a 12-16 project.
We'd love to hear a bit about your work preferences, e.g., how you keep yourself organized, what tools you use, etc.?
I try to keep myself organized management tools such as Asana or Trello, and I am very familiar with GitHub CLI and app. Furthermore, I am open to use any app like Discord or Slack or Teams to communicate.
Provided is my plan going forward for this project, this is in the draft phase currently, and I am open to change it as we see fit.

12 Week Schedule:
Week 1-2: Familiarize myself with the JSON Schema website project and existing CI/CD workflow. Set up development environment and Github repository.
Week 3-4: Research and plan improvements to the CI/CD workflow. Begin implementing basic features such as linting, formatting, and broken links check.
Week 5-6: Integrate unit testing into the CI/CD pipeline. Write test cases and ensure code coverage.
Week 7-8: Implement UI testing for Typescript, React, and Next.js components. Refine testing strategy and ensure compatibility with Github Actions.
Week 9-10: Review and consolidate existing Github workflows. Document the CI/CD pipeline setup and testing procedures.
Week 11-12: Conduct thorough testing and debugging. Address any issues or optimizations needed. Prepare for project presentation and final submission.

Thanks and regards,

Sanchit Sharma

@benjagm
Copy link
Collaborator Author

benjagm commented Mar 18, 2024

🚩 IMPORTANT INSTRUCTIONS REGARDING HOW AND WHERE TO SUBMIT YOU APPLICATION 🚩

Please join this discussion in JSON Schema slack to get the last details very important details on how to better submit your application to JSON Schema.

See communication here.

@wcj617
Copy link

wcj617 commented Mar 20, 2024

@benjagm

Can I also join the slack community?
[email protected]

@divyanshkul
Copy link

Hi @benjagm unable to join the slack community because it seems to be closed/invite only? Would love to join [email protected]
Thanks

@benjagm
Copy link
Collaborator Author

benjagm commented Mar 21, 2024

Can you please share the link you are using to join Slack?

@divyanshkul
Copy link

🚩 IMPORTANT INSTRUCTIONS REGARDING HOW AND WHERE TO SUBMIT YOU APPLICATION 🚩

Please join this discussion in JSON Schema slack to get the last details very important details on how to better submit your application to JSON Schema.

See communication here.

I was trying this link, but later realised that it is not an invite link. Was able to join the slack using the link posted on the portal
Thanks!

@benjagm
Copy link
Collaborator Author

benjagm commented Mar 21, 2024

That is not a link to join Slack, that is a link to a Slack conversation. You can't use if you are not a member. To join Slack you can find 3 to 4 join Slack buttons in our the landing page: json-schema.org

https://json-schema.org/slack

@divyanshkul
Copy link

Yes yes, I realised it later. I was able to join the slack channel. Thanks for the help!

Copy link

github-actions bot commented Jun 9, 2024

Hello! 👋

This issue has been automatically marked as stale due to inactivity 😴

It will be closed in 180 days if no further activity occurs. To keep it active, please add a comment with more details.

There can be many reasons why a specific issue has no activity. The most probable cause is a lack of time, not a lack of interest.

Let us figure out together how to push this issue forward. Connect with us through our slack channel : https://json-schema.org/slack

Thank you for your patience ❤️

@github-actions github-actions bot added the Status: Stale It's believed that this issue is no longer important to the requestor. label Jun 9, 2024
@benjagm benjagm added Status: Do not close This is a long term issue with dependant issues. This label prevent it to be closed automatically. and removed Status: Stale It's believed that this issue is no longer important to the requestor. labels Jun 9, 2024
@benjagm benjagm closed this as completed Oct 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
gsoc Google Summer of Code Project Idea Status: Do not close This is a long term issue with dependant issues. This label prevent it to be closed automatically.
Projects
None yet
Development

No branches or pull requests