gsoc-2024
gsoc-2024 copied to clipboard
JSON Schema : Setting up the CI/CD Pipeline for the JSON Schema website
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:
- 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.
- Define and Implement the Unit Testing and UI Testing.
- Review and consolidate the existing GitHub workflows approach what will be a mix of CI/CD and Community Ops.
- 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
Related issue in the JSON Schema org: https://github.com/json-schema-org/community/issues/603
@benjagm Hi, I read the requirement. and l can say that I would love to work on this. I have worked in frameworks like react, next, and Remix. and also i have done testing before in mocha. I would love to learn more about testing. along the way. and Create a complete CI CD pipeline according the requirement. So Please Assign it to me.
Thanks for your interest @AyushNautiyalDeveloper!! Until GSoC announces the accepted mentoring orgs, you can start getting to know the project by choosing an issue with label good first issue
.
sure @benjagm will do.
Hi, @benjagm How can I get to know more about this project. Can you please help me with this.
@benjagm, instead of just implementing minimal testing, I believe we should expand the project scope to cover a significant portion of the website with our testing efforts.
How can I get to know more about this project.
This is the CI/CD and test approach required for our website. We need more control, quality and efficiency in our release process.
instead of just implementing minimal testing, I believe we should expand the project scope to cover a significant portion of the website with our testing efforts.
That is a great idea! We like it and we are doing to expand the scope to cover that. Thanks!!
https://github.com/json-schema-org/website/issues/307 @benjagm Adding some tests here.
@benjagm hi I read the requirement and I would love to work on this . I have worked on various frameworks such as react, angular, typescript and node as well as next. I have previously worked on creating CI/CD pipelines using gitlab as well as jenkins. For testing alongwith unit test we can go with end to end testing using selenium/ cypress. As well as we can automate the documentation for the json schema even adding feedback loop can be great. So please assign it to me to fulfill the requirements and for improving my skills.
Thanks for your interest! Lets continue the discussion in this issue inside the JSON Schema project: https://github.com/json-schema-org/community/issues/603
Hello @benjagm, I read the description of the project. I have experience in writing automated scripts in Cypress, selenium, and Rspec depending on the frameworks used in the project we built. I have worked on developing e-commerce web applications using React, typescript, node, and Vue. I would like to join the team and contribute to the project.
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!
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 great open source citizens and love collaborating with others.
Mentor: @benjagm
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.
🚩 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.
@benjagm Hi, I have read the requirements. I would love to work on this. I have worked in frameworks like react, next, and Nodejs. I would love to learn more about testing and Create a complete CI CD pipeline according the requirement. So Please could you Assign it to me.
Hey @benjagm,
I've reviewed the specifications and I'm eager to take on this task during GSOC 2024. I have experience with the MERN stack and am keen to expand my knowledge in testing and setting up a comprehensive CI/CD pipeline as per the requirements.
Please, assign it to me.
Also
-
Can you confirm me the above two task you mentioned in comment section is mandatory to complete for GSOC'24? Or is it to get familiar with project?
-
Can you guide me regarding the proposal for GSOC'24? What are the important points need to mentioned in proposal?
-
I'm unable to join slack channel for communication. It is giving error that I don't have account on this workspace. Can you help me with it?
Hey @samipak458 https://github.com/postman-open-technologies/gsoc-2024/blob/main/CONTRIBUTOR_GUIDANCE.md I am new to GSOC also. It said we should complete it before April 4.
Hi @benjagm
what interest you most about this project?
The opportunity to enhance the development workflow of the JSON Schema website fascinates me. I am particularly drawn to the challenge of improving CI/CD pipelines—a critical component of modern software development practices. This project not only offers a chance to contribute to the open-source community but also allows me to apply my knowledge in a practical, impactful way.
As mentors and project coordinators, how can we get the best out of you?
As mentors and project coordinators, the best way to get the most out of my contributions is through regular feedback and open communication. I thrive in environments where I can collaborate closely with others, exchange ideas, and receive constructive criticism. Setting clear goals and expectations, along with regular check-ins, will help keep me on track and ensure the project progresses smoothly.
Is there anything that you’ll be studying or working on whilst working alongside us?
During the GSoC period, I will not be taking any courses or engaging in any other internships. My primary focus will be on contributing to the JSON Schema project. I am committed to dedicating my full attention and efforts to this project, ensuring its success and my growth as a developer.
We'd love to hear a bit about your work preferences, e.g. how you keep yourself organized, what tools you use, etc?
I keep myself organized by using tools like GitHub Projects for task management and Slack for communication. I am accustomed to agile development practices, including regular sprints and stand-ups, which help in maintaining a steady progress pace. For coding and documentation, I rely on Visual Studio Code, leveraging its extensive ecosystem of extensions for efficiency and productivity.
Once you’ve selected a project from the ideas section, please suggest a weekly schedule with clear milestones and deliverables around it. Alternatively, if you want to propose your own idea then please include an outline, goals, and a well-defined weekly schedule with clear milestones and deliverables.
Project Schedule Weeks 1-2: Familiarization with the JSON Schema project codebase and CI/CD pipeline setup requirements. Initial meetings with mentors to clarify goals and milestones.
Weeks 3-4: Implementation of basic CI/CD workflow enhancements, including linting and formatting checks using GitHub Actions.
Weeks 5-6: Adding broken links checks and setting up unit tests within the CI/CD pipeline.
Weeks 7-8: Implementing the build process and initial setup for UI testing.
Weeks 9-10: Expanding UI testing coverage and refining the CI/CD workflow based on feedback.
Weeks 11-12: Reviewing the CI/CD pipeline with mentors, making necessary adjustments, and preparing documentation.
Week 13: Final evaluations, project wrap-up, and discussions on future improvements or expansions.
@benjagm I am also unable to join the slack channel. Can you invite me as well? email: [email protected]
Introduction
Hello, I'm Soham Mukherjee, currently pursuing my Master's in Software Engineering at Concordia University in Montreal, Canada.
With over three years of professional experience, I've specialized in Full Stack Development, focusing on React and Java technologies. During my tenure in the industry, I've had the privilege of collaborating with major companies such as AT&T and T-Mobile as my clients.
As part of my projects, I've had the opportunity to work on mission-critical applications that directly impact the lives of millions of telecom consumers across the USA.
What interests you most about this project?
The opportunity to contribute to a project like this, especially considering my experience working with Postman during my tenure in various job roles, is incredibly exciting for me. Having used Postman extensively in industry settings, I feel a strong connection to the platform and its capabilities. Coupled with my academic background and industrial work experience, I'm confident that I can make meaningful contributions to this project. I believe my familiarity with Postman, combined with my expertise in related technologies and methodologies, positions me well to add value to the team and project goals.
What captivates me about this project is the chance to utilize my experience with TypeScript, React, and Next.js to enhance the website development process. I'm particularly excited about integrating these technologies into the testing framework for better reliability. Additionally, I have prior experience with GitHub Actions for CI/CD, which I believe will be invaluable in improving automation and deployment workflows.
Moreover, I'm confident that this project presents an excellent opportunity for me to expand my knowledge base. Exploring new features, technologies, and best practices would be invaluable to my growth as an early-career professional.
Overall, I'm enthusiastic about applying my skills to create a more efficient and robust development pipeline for the JSON Schema website.
As mentors and project coordinators, how can we get the best out of you?
As mentors and project coordinators, you can get the best out of me by providing regular feedback, recognition, and encouragement. Clear and constructive feedback helps me understand areas for improvement and refine my contributions. Recognition of my efforts boosts morale and motivation, while encouragement fosters a positive mindset and drive to excel. Additionally, maintaining flexibility allows me to adapt to changing circumstances and explore innovative solutions effectively. Overall, creating an environment that values feedback, recognition, and encouragement while remaining flexible will enable me to perform at my best.
Is there anything that you’ll be studying or working on whilst working alongside us?
During this period, I'll be dividing my time between preparing for and obtaining my Azure Fundamentals certification alongside contributing to this project. While I'll be working towards mastering the essentials of Azure and cloud computing fundamentals, my main focus will be on actively participating in and contributing to this project. Graduating before the project starts means I'll have the bandwidth to manage both tasks effectively, with this project taking precedence in my efforts and attention.
We'd love to hear a bit about your work preferences, e.g. how you keep yourself organized, what tools you use, etc?
I use Jira and BMC Helix to track and manage my work in the industry. I now use a lot of Jira during my masters which I essentially learnt during my previous work experience. I personally also keep a detailed notes of every challenge I encountered and the resolution steps for further reference of me and my team (I am working in a team), in my OneNote as well as on email, for easier access.
The tech stack of my preference is React (with TypeScript/ JavaScript), Next.js with Java Spring Boot backend with SQL/ MongoDB as the Database. In most of the systems I have worked on apart from few of my academic projects were deployed on Linux Red Hat. So I am proficient with these tools and they have become the go to for most projects that I think about building.
Apart from this I want to mention that while I was working at big multinationals like Amdocs and CSG International, many of the tools I developed from scratch, so I am also excited about building solutions from the scratch, even when the technology is in-house and there is no documentations or guides or LLMs like ChatGPT to help in such cases. I really love to engage in such challenging situations as well, as I believe these teach us the most about software engineering.
So to Summarize the tech stack of my preference is:
- Programming Languages: JavaScript ES5/ ES6, Python, TypeScript, Perl, and Java.
- Frame Works: Next.js, React.js, Tailwind CSS (styling), Node.js, Express.js, Spring Batch and Spring Boot.
- Database and Data Management: SQL (Oracle, PostgreSQL, MySQL) and NoSQL (MongoDB).
- Platforms and Tools: Docker, UNIX/Linux, Git, GitHub, GitHub Actions, Jenkins, SVN Version Control, Perl/Shell Scripting, Postman, Jira and BMC Helix
Weekly Schedule
Week 1-2 | Planning and Setup
Goals: Define project scope and objectives. Set up communication channels. Familiarize with the existing codebase and CI/CD workflows.
Milestones and Deliverables
Week 1 Project kickoff meeting. Define project scope, objectives, and success criteria. Set up communication channels (Slack, email, etc.).
Week 2 Complete codebase familiarization. Evaluate current CI/CD workflows. Draft initial plan for CI/CD improvements.
Week 3-4 | CI/CD Pipeline Setup and Improvement
Goals Implement improvements to the CI/CD workflow using GitHub Actions and other tools. Add features such as linting, formatting, broken link checks, unit testing, and build automation.
Milestones and Deliverables
Week 3 Implement linting and formatting checks. Set up broken link checking. Begin implementation of unit testing.
Week 4 Complete implementation of unit testing. Set up build automation. Review and refine CI/CD pipeline.
Week 5-6 | UI Testing Implementation
Goals: Define and implement UI testing using TypeScript, React, and Next.js. Integrate UI testing into CI/CD pipeline.
Milestones and Deliverables:
Week 5 Define UI testing strategy. Begin implementation of UI tests. Integrate UI tests into CI/CD pipeline.
Week 6 Complete implementation of UI tests. Ensure UI tests are successfully integrated and executed in CI/CD pipeline. Review and refine UI testing strategy.
Week 7-8 | Review and Consolidation
Goals Review and consolidate existing GitHub workflows. Address any issues or gaps in the CI/CD pipeline.
Milestones and Deliverables
Week 7 Review existing GitHub workflows. Identify areas for consolidation and improvement.
Week 8 Consolidate GitHub workflows. Address any identified issues or gaps. Ensure documentation is updated accordingly.
Week 9-10 | Finalization and Documentation
Goals Finalize the CI/CD pipeline and testing implementations. Document the entire process, including setup, configuration, and usage instructions.
Milestones and Deliverables
Week 9 Finalize CI/CD pipeline setup and testing implementations. Conduct thorough testing and debugging.
Week 10 Document CI/CD pipeline setup and configuration. Document unit testing and UI testing strategies. Prepare project handover documentation.
Week 11 | Project Review and Handover
Goals Review the project's outcomes, successes, and areas for improvement. Hand over the project to relevant stakeholders.
Milestones and Deliverables
Participate in project review meeting. Present project outcomes and achievements. Hand over all documentation and relevant materials to stakeholders.
Greetings! I am Te-Jung, a senior undergraduate student at UC Berkeley, with a passion for full-stack development.
Throughout my software journey, I've delved into backend technologies such as CI/CD workflows using Github Actions and unit testing, while also honing my skills in frontend tools like React and CSS, predominantly in Typescript and JavaScript. My introduction to Postman occurred during a previous internship, where I delved into REST API testing while developing a software solution. This experience has fueled my eagerness to dedicate my upcoming summer to contributing to the Postman API project, further enriching my expertise in open-source development.
I'm Excited about this Project: I'm thrilled about the opportunity to contribute my knowledge and gain hands-on experience by fortifying the CI/CD pipeline for the JSON Schema website. This project aligns perfectly with my past experience in backend technologies such as CI/CD workflows using Github Actions and unit testing, as well as my proficiency in frontend tools like React and CSS. Moreover, collaborating closely with mentors and seasoned developers offers an invaluable opportunity to learn and grow.
Proposed Weekly Schedule: Weeks 1: Collaborate with mentors to clarify project goals and milestones. Familiarize myself with the project's technology stack, write documentation for review and approval. Weeks 2-4: Begin the implementation of the CI/CD pipeline workflow. Seek mentor feedback to refine and optimize the workflow. Weeks 5-6: Shift focus to the integration of unit testing into the CI/CD pipeline. Ensure comprehensive test coverage and validate the effectiveness of testing procedures. Weeks 7-8: Devote efforts to the implementation of UI testing Weeks 9-10: Finalize the project by fine-tuning result. Conduct thorough testing to ensure the stability and reliability of the CI/CD pipeline.
email: [email protected]