juspay / hyperswitch

An open source payments switch written in Rust to make payments fast, reliable and affordable
https://hyperswitch.io/
Apache License 2.0
12.61k stars 1.35k forks source link

[$250] Build a Contribution Leaderboard for External Contributors #6093

Open neerajkumar-n opened 1 month ago

neerajkumar-n commented 1 month ago

Please make sure to read this through the below Guidelines before attempting the problem statements

Contribution Guidelines Bounty Program Guidelines Terms of Contest

Context:

We've been seeing growth in external contributions but are facing challenges in effectively incentivizing regular contributors. To recognize and support these contributors, we want to build a leaderboard that tracks and displays contributions from external contributors only. This leaderboard will encourage further community involvement by recognizing top contributors and rewarding them.


User Stories:


Features:

Leaderboard Display:

Contribution Tracking:

Point Assignment System:

User Profiles:

Admin Dashboard:


Technical Requirements:

Frontend:

Backend:

Integration:


Performance Requirements:


Security Requirements:


Acceptance Criteria:

Rushhaabhhh commented 1 month ago

Hello @neerajkumar-n, I would love to contribute by working on the issue #6093. Could you please assign it to me under the upcoming Hacktoberfest. I'm eager to help and make meaning contributions.

neerajkumar-n commented 1 month ago

@Rushhaabhhh - I have updated the problems with the Guidelines, request you to gothorugh this and confirm before assigning. Thanks

Rushhaabhhh commented 1 month ago

Hey @neerajkumar-n, I have read through all the guidelines and I am ready for the project. i have a doubt tho, the leaderboard needs to be made separately and not in the hyperswitch repo right?

neerajkumar-n commented 1 month ago

Yes @Rushhaabhhh. However, please make sure that this repo has all the relevant Licences so it can be used by Hyperswitch.

At least for this project, would request you to follow Hyperswitch's brand color which can be picked from our Website.

I have assigned the issue to you. Please comment if there are any doubts here or in our community channels

Rushhaabhhh commented 1 month ago

@neerajkumar-n I have a few doubts regarding the project :

  1. Tech Stack Choice : I am proficient in the MERN stack, so would it be acceptable to use React for the client-side, Node.js for the server, and Airtable as the database? Or is there a specific tech stack that we are required to use for this project?

  2. Authentication and User Roles :

    • Should the application support both email-based login/signup authentication and GitHub login, or should GitHub login be the only option?
    • How should the app distinguish between different user roles like contributors, admins, and regular users?
    • Is it necessary for the user to log in before viewing any data, or should there be a landing page that restricts certain information while allowing some public access?
  3. Hacktoberfest Eligibility : Is this contribution valid and eligible for Hacktoberfest?

  4. Bounty Distribution : Could you clarify how the bounty or any form of reward will be distributed for the contributions made?

  5. Any specific requirements from your side other than the mentioned ones ?

Looking forward to your guidance and feedback on these questions to proceed accordingly! Thanks again for assigning the issue.

Robinaditya1045 commented 1 month ago

hey @neerajkumar-n , i would love contributing to this issue please assign me this issue

neerajkumar-n commented 1 month ago

@Robinaditya1045 - This issue is already assigned, however - we have many issues which are open to contribute:

https://github.com/juspay/hyperswitch/issues?q=is%3Aissue+is%3Aopen+label%3Ahacktoberfest+no%3Aassignee

Rushhaabhhh commented 1 month ago

@neerajkumar-n I accidently unassigned myself, can you please assign me again and adhere to the doubts asked so I can start working on it. Thank you

gauravghodinde commented 1 month ago

@neerajkumar-n What is the procedure for handling bounty issues? Is it that only the person assigned can contribute, while others must wait for the assignee to be unassigned if they are unable to complete the work? If so, what is the time frame for unassignment if the assignee is not able to finish the task?

Rushhaabhhh commented 1 month ago

@neerajkumar-n Can you please answer the doubts so that I can start working on the issue.

neerajkumar-n commented 1 month ago

@Rushhaabhhh - here you go:

Tech Stack Choice : Your preference

Other questions.

  1. Github based Login alone
  2. Ideally there should be just 2 users: Contributors & Admins. This is differentiated by ACLs: Admin & Contributor
  3. The users should have Public view access.
  4. Yes, you can create a PR with the Repo details along with the How to's info which can be marked as accepted.
  5. Sure, will update the Bounty Program Guidelines. Will drop a note here once done. In a nutshell, we verify/ask you to showcase the built product over a call. Once verified, we will collect the required details for the bounty and the communication will be over the email as the process is further handled by the Finance team to transfer the Money [please make sure to read terms of contest from the issue].

Hope this answers your question.

RajVerma97 commented 1 month ago

can you assign this to me?

Rushhaabhhh commented 1 month ago

@neerajkumar-n Okay! Will update you with the first draft in a day or two to proceed further.

neerajkumar-n commented 1 month ago

can you assign this to me?

@RajVerma97 - @Rushhaabhhh is already working on this.

gorakhnathy7 commented 1 month ago

Hey @Rushhaabhhh Kindly share the progress here, Thanks!

Rushhaabhhh commented 1 month ago

https://github.com/user-attachments/assets/4ec45d10-f5f6-40ae-ab56-65fd573237fe

@neerajkumar-n, @gorakhnathy7

Current Progress :

Next Steps :

neerajkumar-n commented 1 month ago

@Rushhaabhhh -

Can you tell me:

  1. Where I can define Contributor vs Admin?
  2. UI is decent, wouldn't require much changes
  3. What does View Details entail?
  4. Can we just have Leaderboard Page and signup option in the same page itself?
  5. How does points distributions work? Is there any backend where it's defined?
Rushhaabhhh commented 1 month ago

@neerajkumar-n -

  1. While the implementation is still in progress, roles can be assigned in two main ways :
  1. The View Details link takes you to the user’s profile page. Let me know if you need any enhancements to the profile view.

  2. Yeah sure, I'd love to know more about the flow. How many pages are we looking at, and what sections do you envision on each page?

  3. Points are handled by the backend through APIs. Admins can tag issues with a points value (based on complexity or priority). When an external contributor resolves an issue or submits a merged PR, points are automatically assigned.

I hope this answers your questions, if you have any further questions or need refinements, let me know!

Rushhaabhhh commented 1 month ago

@neerajkumar-n -

Current Progress

Assistance Needed

As we approach the final stages of this project, I have a few critical questions that need clarification to ensure a smooth progression :

I am nearing the submission of the project, I look forward to your guidance as we finalize the development.

neerajkumar-n commented 1 month ago

@Rushhaabhhh - Let me get back to you with this by EOD tomorrow. If any of your questions requires urgent attention, please do connect over our community channels.

Rushhaabhhh commented 4 weeks ago

@neerajkumar-n Any updates on the doubts ??

neerajkumar-n commented 3 weeks ago

@Rushhaabhhh -

Here you go:

  1. Will update soon here.
  2. Admin Determination: This should be controlled by an Admin Panel. You create/assign the Admin Role to one User and he/she will be SuperAdmin and will be able to assign Admin roles to users.
  3. Points Distribution System:
    Unlabelled Points per Completed Issue: Contributors will earn a 5 points for each issue they complete. This ensures that participants are rewarded for resolving problems and making tangible contributions. Label-Based Points Allocation: Issues will have different labels (e.g., "Easy," "Medium," "Hard"), each corresponding to a distinct point value. For example:
    • Easy: 5 points
    • Medium: 10 points
    • Hard: 20 points

Good to Have for point 3: 



Bonus Points for First-Time Contributors: New contributors can receive extra points for their first pull request, promoting inclusivity and encouraging newcomers to participate.

Special Points for Key Contributions: Points may be awarded for special achievements, such as creating new features, fixing critical bugs, or providing significant code improvements. These contributions will be identified and approved by the maintainers.

Rushhaabhhh commented 2 weeks ago

@neerajkumar-n , @gorakhnathy7 -

https://drive.google.com/file/d/1hAEOpx81l5lPHt1JKi9ndQqExSZw2Ihw/view?usp=drivesdk

Rushhaabhhh commented 2 weeks ago

@neerajkumar-n Any updates on the project ?

neerajkumar-n commented 1 week ago

@Rushhaabhhh - Checking this today.

Incase you don't see responses here, recommend you to reach out to us on Slack. Thanks.

neerajkumar-n commented 1 week ago

@Rushhaabhhh - can we connect over Slack? I have a few questions regarding Github Connect.