community icon indicating copy to clipboard operation
community copied to clipboard

GSOC 2025 : Automated Badge Issuance System For Tour

Open AQIB-NAWAB opened this issue 10 months ago • 92 comments

Project Title

Simple Automated Badge Issuance System

Brief Description

This project aims to create a lightweight and easy-to-maintain system that automatically issues digital badges to users who complete the JSON Schema Tour. The system is using Google Sheets for data collection and the expected solution has been described on this issue: https://github.com/json-schema-org/tour/issues/118

The focus is on simplicity, reliability, and minimal maintenance, ensuring the process scales without manual intervention.

Expected Outcomes

  1. A working script that automates badge issuance for users who complete the JSON Schema Tour.
  2. Integration with Google Sheets to read user data and mark badges as issued.
  3. Integration with Badgr.
  4. Usage of Cloudflare workers or exploring a better alternative.
  5. Basic error handling and logging to ensure reliability.
  6. Clear and concise documentation for setup and usage.
  7. An open-source GitHub repository for the community to use and adapt.

Please see https://github.com/json-schema-org/tour/issues/118 for more details.

Skills Required

  • Basic programming skills in Python or JavaScript (Node.js).
  • Familiarity with REST APIs (Google Sheets API and shield ).
  • Ability to write simple scripts for automation.
  • Basic understanding of error handling and logging.
  • Clear documentation writing skills.

Mentors

@mwadams

Expected Difficulty

Medium
The project involves integrating APIs and writing a script, making it accessible for contributors with some programming experience. It’s not overly complex but requires attention to detail and problem-solving.

Expected Time Commitment

90 hours
This project is scoped to fit within the 175-hour timeframe, making it achievable for a single GSoC contributor. The timeline includes learning, development, testing, and documentation.

AQIB-NAWAB avatar Jan 31 '25 10:01 AQIB-NAWAB

Hello @AQIB-NAWAB and @benjagm !

I'm very excited to work on this project idea. I have experience working with JavaScript and Python, including writing scripts and APIs. However, I am new to the JSON Schema community. To contribute, I am following the JSON Schema contribution guidelines.

I’m excited for the opportunity to work on this project.. Could you provide guidance or resources to help me prepare for this project?

kumbhar-sarthak avatar Feb 10 '25 12:02 kumbhar-sarthak

@AQIB-NAWAB Are there any qualification tasks/selection criteria to complete in order to be selected for this task in GSOC.

VivekJaiswal18 avatar Feb 16 '25 21:02 VivekJaiswal18

Hi everyone. We well add qualification tasks as soon as Google announces the mentoring organizations.

benjagm avatar Feb 17 '25 05:02 benjagm

@AQIB-NAWAB Are there any qualification tasks/selection criteria to complete in order to be selected for this task in GSOC.

Hi @VivekJaiswal18 , I'm also contributor here. You can learn things mentioned in Skill Required section but everything finalize from team

AQIB-NAWAB avatar Feb 17 '25 06:02 AQIB-NAWAB

Hi @benjagm, I would like to work on this issue. Just have some doubts:

  1. Is there any prerequisites or some linked issues with this?
  2. Would like to know more how data is to collected and linked the same with the google sheets. Thanks :)

Sakshamgupta90 avatar Feb 27 '25 20:02 Sakshamgupta90

Hey @benjagm , I would like to work on this issue. Having taken the JSON Schema tour myself and being familiar with the repository, I believe I can contribute effectively. Looking forward to the qualification tasks!!

Ritesh2351235 avatar Feb 28 '25 03:02 Ritesh2351235

Hi everyone. @AQIB-NAWAB We will be adding slight changes on the requirements of this idea. Probably we will suggest a different badging systems and some other small changes, but the core of idea is the same. Automate the badge issuance.

benjagm avatar Feb 28 '25 20:02 benjagm

Hi @benjagm , thanks for the update! Looking forward to contributing to this and making an impact in open-source contributions.

AQIB-NAWAB avatar Mar 01 '25 04:03 AQIB-NAWAB

What about qualification tasks, when it added ??

kumbhar-sarthak avatar Mar 01 '25 04:03 kumbhar-sarthak

Hi everyone and @benjagm,

This seems like a great GSoC project idea! Automating the badge issuance process will streamline recognition and reduce manual effort.

The approach looks solid, and I have experience working with JSON Schema (having contributed to two issues). Additionally, I have knowledge of working with Google Sheets APIs.

I would love to contribute further to this project for GSoC 2025! 🙂

Yashwanth1906 avatar Mar 01 '25 08:03 Yashwanth1906

Hello @benjagm @mwadams I am interested in this idea and would like to write a proposal for gsoc. I have been contributing to the tour repository actively and have 4 merged prs. Can we also try to implement automatic certificate issuing in this project itself for tour?

pavanydg avatar Mar 03 '25 09:03 pavanydg

Hi everyone! First of all huge thanks @AQIB-NAWAB for submitting the idea!!!! This has been in our todo for a very long time. Having said that, you will need to submit your application like the rest of the applicants, as submitting GSoC ideas doesn't give anyone any benefit as a mentor or mentee.

What is next:

  • The mentor @mwadams will work on the qualification task and will provide more details soon.
  • I will modify the body of the ideas as we are unlikely to use shields as the badging solution.
  • Everyone can focus on completing the qualification tasks and preparing their applications.

benjagm avatar Mar 03 '25 10:03 benjagm

Hey @mwadams , I hope you doing well, I'd like to work on this great idea , I have been contributing with JSON schema for several month, have worked on couple of issue. I would like to start contributing. Is there an existing codebase I should explore, or should I begin by drafting an initial implementation? Looking forward to get insights by @mwadams and for learning and contributing this idea

jagpreetrahi avatar Mar 03 '25 14:03 jagpreetrahi

Hi everyone! with the main idea we can also consider these suggestions from the issue https://github.com/json-schema-org/tour/issues/120

  1. Integrate with LinkedIn: Provide users with the option to add the certificate directly to their LinkedIn profiles. This would greatly enhance the value and visibility of the achievement.

  2. Integrate with GitHub: For authentication and certificate delivery, consider using GitHub profiles. This approach could streamline the process, as GitHub authentication is already widely used by developers.

JeelRajodiya avatar Mar 04 '25 14:03 JeelRajodiya

Hi everyone! with the main idea we can also consider these suggestions from the issue json-schema-org/tour#120

1. Integrate with LinkedIn:
   Provide users with the option to add the certificate directly to their LinkedIn profiles. This would greatly enhance the value and visibility of the achievement.

2. Integrate with GitHub:
   For authentication and certificate delivery, consider using GitHub profiles. This approach could streamline the process, as GitHub authentication is already widely used by developers.

Love the LinkedIn idea! That’d be super valuable.

AQIB-NAWAB avatar Mar 05 '25 01:03 AQIB-NAWAB

Hi everyone. Here's a suggestion for what I'd like to see for your qualifying project:

  1. Choose your tooling and write a small document to explain why you have chosen your toolchain; what are your main considerations (e.g. trade-offs between maintainability, robustness, ease-of-use)
  2. Implement a simple tool to read from a google doc, send a payload to a test endpoint, and update the doc. Write a document to explain how your example works, and what its trade-offs are for configuration, scale, robustness. Consider how it does/could handle error conditions if your request fails part way through the process. Refer to https://github.com/json-schema-org/tour/issues/118 for ideas.
  3. Push your solution to a github repository. Write a README file that explains how to pull down the code, build, configure, and run it, along with some expected output. Don't make any assumptions about software I may have pre-installed on my machine. Extra points if you can tell me how to get it to build on both Windows and Linux.

mwadams avatar Mar 06 '25 21:03 mwadams

Hi, I’m interested in contributing to this project as part of GSoC 2025!

I’ve gone through the project description and have a few questions to better understand the implementation details:

User Completion Tracking: How does the JSON Schema Tour currently track user progress? Is there an existing system (e.g., API, database, or logs) that records when a user completes the tour? Google Sheets Integration: Will there be a predefined Google Sheet format for tracking badge issuance, or should we design the structure? Badge Generation: Should the system generate dynamic Shields.io badges per user, or will there be a fixed set of badge types?

I’d love to start exploring and drafting a basic implementation plan based on your insights. Looking forward to your guidance!

aryandhandhukiya avatar Mar 07 '25 04:03 aryandhandhukiya

Hi @mwadams ,

I have a few questions regarding the qualifying project:

  1. For implementing a tool to read from a Google Doc, should I extract the entire content and send it as a payload? Also, what updates need to be made to the Google Doc after processing?

  2. Should the Google Doc follow a specific format to indicate the badge status of each candidate?

Yashwanth1906 avatar Mar 07 '25 04:03 Yashwanth1906

Hi @mwadams ,

I have a few questions regarding the qualifying project:

1. For implementing a tool to read from a Google Doc, should I extract the entire content and send it as a payload? Also, what updates need to be made to the Google Doc after processing?

2. Should the Google Doc follow a specific format to indicate the badge status of each candidate?

Hi @Yashwanth1906 , currently the document is saving these attributes for a user when he completed the tour

  • Name -> String
  • email -> String
  • certificateReq -> Boolean

AQIB-NAWAB avatar Mar 07 '25 05:03 AQIB-NAWAB

Hi, I’m interested in contributing to this project as part of GSoC 2025!

I’ve gone through the project description and have a few questions to better understand the implementation details:

User Completion Tracking: How does the JSON Schema Tour currently track user progress? Is there an existing system (e.g., API, database, or logs) that records when a user completes the tour? Google Sheets Integration: Will there be a predefined Google Sheet format for tracking badge issuance, or should we design the structure? Badge Generation: Should the system generate dynamic Shields.io badges per user, or will there be a fixed set of badge types?

I’d love to start exploring and drafting a basic implementation plan based on your insights. Looking forward to your guidance!

For user progress tracking we are using local Storage and whenever user made a request to access the certificate a validation function checks the progress. If user cover all the section , certificate request will be created by saving user data into google sheets.

AQIB-NAWAB avatar Mar 07 '25 05:03 AQIB-NAWAB

Hi @mwadams , I have a question can we use Docker cron Jobs instead of cloudfare workers ?

Thanks

AQIB-NAWAB avatar Mar 07 '25 05:03 AQIB-NAWAB

Hello @mwadams, what does tooling mean in the first point of the task? Is it the tool we are building? or is it the techstack I am going to use?

Thanks

pavanydg avatar Mar 07 '25 05:03 pavanydg

Hey @mwadams , I hope you doing well , for test endpoint , can we use mock api service like webhook.site , mock.io or use localhost

jagpreetrahi avatar Mar 07 '25 07:03 jagpreetrahi

For user progress tracking we are using local Storage and whenever user made a request to access the certificate a validation function checks the progress. If user cover all the section , certificate request will be created by saving user data into google sheets.

can you send the file implementing this function? edit : nvm got it

generatorg0 avatar Mar 07 '25 07:03 generatorg0

Re: tooling/tech stack you can choose anything sensible but explain why you are choosing it and what the cost, maintenance and support issues might be.

mwadams avatar Mar 07 '25 08:03 mwadams

Feel free to use anything sensible for a mock endpoint. Explain your choice.

mwadams avatar Mar 07 '25 08:03 mwadams

Quick tip: When making any of these basic decisions, look around the project in general and see what tech is in use. Look at the ideas and guidance in the linked issue.

mwadams avatar Mar 07 '25 08:03 mwadams

We will share the actual doc structure etc later, when the project starts. The qualification task is to demonstrate good thinking, justified decision making, tech stack selection that fits for you and the project, and to help you get into the right mindset when it comes to writing the project design and proposal.

Note that the stack you pick in the qualification task may not be the one you end up using - you might discover that an assumption you made is not a good one. That's equally valid; there's no "right answer".

What we are looking for is good thinking, planning and design

mwadams avatar Mar 07 '25 08:03 mwadams

Hi @mwadams @AQIB-NAWAB ,

Will the Google Doc URL be provided with edit access? If so, we can use the Google Docs API, which is free to use. Otherwise, we may need to consider alternative methods like Selenium for content extraction.

Yashwanth1906 avatar Mar 07 '25 11:03 Yashwanth1906

We will have edit access to the Google doc and can use the API.

mwadams avatar Mar 07 '25 12:03 mwadams