-
-
Notifications
You must be signed in to change notification settings - Fork 52
GSOC 2025 : Automated Badge Issuance System For Tour #872
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
Comments
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? |
@AQIB-NAWAB Are there any qualification tasks/selection criteria to complete in order to be selected for this task in GSOC. |
Hi everyone. We well add qualification tasks as soon as Google announces the mentoring organizations. |
Hi @VivekJaiswal18 , I'm also contributor here. You can learn things mentioned in Skill Required section but everything finalize from team |
Hi @benjagm, I would like to work on this issue. Just have some doubts:
|
Hey @benjagm , |
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. |
Hi @benjagm , thanks for the update! Looking forward to contributing to this and making an impact in open-source contributions. |
What about qualification tasks, when it added ?? |
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! 🙂 |
Hi everyone! First of all huge thanks @AQIB-NAWAB for submitting the idea!!!! What is next:
|
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 |
Hi everyone! with the main idea we can also consider these suggestions from the issue json-schema-org/tour#120
|
Love the LinkedIn idea! That’d be super valuable. |
Hi everyone. Here's a suggestion for what I'd like to see for your qualifying project:
|
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? I’d love to start exploring and drafting a basic implementation plan based on your insights. Looking forward to your guidance! |
Hi @mwadams , I have a few questions regarding the qualifying project:
|
Hi @Yashwanth1906 , currently the document is saving these attributes for a user when he completed the tour
|
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. |
Hi @mwadams , I have a question can we use Docker cron Jobs instead of cloudfare workers ? Thanks |
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 |
Hey @mwadams , I hope you doing well , for test endpoint , can we use mock api service like webhook.site , mock.io or use localhost |
can you send the file implementing this function? |
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. |
@AQIB-NAWAB Can u pls give a high level design of what the project is about, Will the badge request is written to the google sheet by the present next.js server whenever a user requests or is it wrong? I need this clarification because the read and write quota for the google sheet api is so low. Writing the request to the google sheet when the user requests for the badge, If that is the case then i have a approach😀. |
@mwadams sir I need some clarification about the project. The ultimate aim of the project is to issue the badges to the users. Then can we go for something like a cron job that process the request from the next.js frontend and the cron job will process the request. What is the use of google sheet or doc in here sir? 😀 |
Hi @Yashwanth1906 , Each approach have there pros and cons.Please consider each factors. |
We are not having any databases to store the people who have completed the tour. So that's why we are storing it in the google sheets. |
Hello @AQIB-NAWAB , @benjagm I hope you're doing well. My name is Paniv Kapoor, and I'm interested in contributing to the Simple Automated Badge Issuance System project for GSoC. I have experience with JavaScript, Node.js, and working with APIs, and I'm excited about the opportunity to work on automation and system integration. I wanted to ask if there are any qualification tasks assigned for this project that I should complete before applying? Additionally, is there any specific area you would recommend I start exploring to prepare myself better? Looking forward to your guidance. Best regards, |
Hello everyone, A approach easily scalable: when the user finishes the tour they request for the certificate the certificate request will be sent to the next.js server which currently holds only the frontend logic and no backend logic which can be implemented where the frontend is already running and then that next.js backend will use google docs api in the free tire which is allowed to write 600 requests per minute and then 3000 read request per minute. The backend server then write the username, email, and then the isCertificate issued to be false, timestamp of certificate issued to be null. And then a cron job is ran to check the google doc for periodically according to the users flow of requesting the certificate we can manually change it and then that cron job will fetch the entire google doc in one read access command and then the the isCertificateIssued status is no then send the request to the badger along with the username and the email and then send an email with the badge. In this what is the problem comes is the google doc write access is 600 per minute which can be issue when lot of users apply for the badge at same time. For this we can put in the request in the queue and then the cron job server can process the queue and then writes the request in the google docs. By this way we can make the thing so scalable . Requirements : Redis Queue, A Cron job server (Express.js). I would suggest using google doc over google sheet because of the low write quota limit. @mwadams @AQIB-NAWAB Looking for your comments on this. |
Doesn't that sound inefficient? Let's say you have 2 million rows in the Google Sheet. Every time the cron job runs, it has to fetch all 2 million records again. Additionally, if the cron job reads the entire sheet each time, that means 2 million read operations per run, which would quickly exceed the 3,000 reads per minute limit. Even with batching, this could be challenging to manage |
We can use two google doc files one is for issuing the badges and another one is to store the issued badge. @mwadams Looking for your views on this..😀 |
Hi all, |
@Paniv45 @sushant4452 i'm glad you're interested in this project. The next step is to complete the qualification task as stated here. |
Hi @Prasanth-S7 , we can remove records after we assign the certificate. A cron job will run and assign badges to users , if request goes successfully it will remove the row else it stay there But there are certain limits how much data matters to us. There are lot of appraoch to solve this problem with different expects. Each approach is good question for proposal. Thanks |
Hi @AQIB-NAWAB Let's think of this scenario, lets say if someone have completed the tour and received the badge a month before. What if the same user request for the badge one more time(ideally he/she won't do it) but incase if it happens, how do we solve it |
Yup that's valid point. There are two approaches we can use here
Each approach have there pros and cons like handling duplicate request , scalability and performance. |
@AQIB-NAWAB Can we switch to a DB instead of relying on google sheets |
I'm not sure about this. @mwadams can we use DB in our current tour system ?? |
Hii @AQIB-NAWAB , |
I've mostly used Morgan for log monitoring and error tracking. |
@mwadams , @AQIB-NAWAB |
Hi @Paniv45, We are using local storage to track user actions, such as submissions. Before processing a certificate request, we first verify that the user has completed the tour. To do this, we retrieve all submissions from local storage and evaluate them accordingly. |
@AQIB-NAWAB , |
yes you are on right track but mentioning one thing we are using google sheets instead of database. |
Hi everyone. I just wanted to clarify that @AQIB-NAWAB is not a mentor here. He is just another contributor interested in this idea. This idea is something we need and he published as part of our call for ideas, but that doesn't give him any privilege over others. Your mentor here is @mwadams and the project maintainers are @JeelRajodiya and @benjagm . Just wanted to make this clear to make sure there are no misunderstandings. |
Thanks @benjagm |
@AQIB-NAWAB I know that you have the best intentions when replying to other potential applicants but please, please kindly don't reply to other applicants in a way that they can have the false perception of you as a mentor. Only @mwadams, @JeelRajodiya, Bence Eros, and myself have the details of the current solution and what we expect from this idea. Thanks a lot. |
It's also worth saying that the project scope is outlined and the qualification task requirements are up and it is well worth reading those carefully. I have had a fair few DM questions that are essentially "can you give me the answer to the questions you've asked in the qualification task" (in various different forms) At this stage, I'm happy to respond to public questions in Slack, where everyone benefits, but not DMs. |
(And I'm leaving most of these questions unanswered precisely because they are exactly the kind of thing I want to see people discuss in their qualification task and explain what their answers might be, having referred to the scope and guidelines. As I say in the qualification task guidelines, if you think it is necessary to change a technology, explain why and what the costs and benefits might be.) |
Hi @benjagm, I sincerely apologize 😔 if my responses gave the impression of me acting as a mentor. That was never my intention. My goal has always been to help the community by responding to queries, especially when contributors directly tag me. I truly appreciate the clarification, and I’ll be careful next time . Thanks for your guidance! |
Hi everyone! Quick update on the Idea Time Commitment: We are reducing the time from 175 hours to 90 hours as we think this will be enough time to implement this new capability. Thanks!! CC: @mwadams |
Hi,
The Mandatory Qualification Task will be committed in https://github.com/KaSaNaa/JSON-Schedma-Badge-IssuanceHere is my rough plan to complete this task. Task Requirements as I understoodAim is to:
Weekly Plan (subject to change as I am working in the industry as well as preparing for university exams as well)Week 1: Research & Environment Setup
Week 2: Prototype Development
Week 3: Refinement & Deployment
Week 4: Testing, Documentation & Submission
Thanks. |
Uh oh!
There was an error while loading. Please reload this page.
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: json-schema-org/tour#118
The focus is on simplicity, reliability, and minimal maintenance, ensuring the process scales without manual intervention.
Expected Outcomes
Please see json-schema-org/tour#118 for more details.
Skills Required
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.
The text was updated successfully, but these errors were encountered: