- Status:WORKING DRAFT:
- Point of contact: Clément Verna
- Implementation Schedule: TBD
- Release Date: TBD
Fedora Badges has not been actively developed for a few years now. This document aims to define the steps needed to give a second life to the project by identifying the technical blockers that slow down Fedora Badges development within the Fedora community. This document should also help with the gathering of ideas on how to improve Fedora Badges and or new possible features.
Fedora Badges has been developed and maintained by the Fedora Engineering Team (now Community Platform Engineering ) but one of the goal of this work is to make the maintenance and development of the application easier to allow more engagement from the community.
Background and Strategic Fit
Fedora Badges is a fun website built to recognize contributors to the Fedora Project, help new and existing Fedora contributors find different ways to get involved, and encourage the improvement of Fedora's infrastructure. To this end, Fedora Badges has served the community for over five years. It motivates contributions to Fedora by game-ifying them. It creates more visibility into areas of contribution in the Fedora community. Fedora Badges is used as a tool to direct contributor interest and engagement into new and exciting parts of the Fedora community.
The community-led design team is active and continues to work on the project. However, technical blockers limit what Fedora Badges can be awarded for. As Fedora continues to explore new technologies, bringing Fedora Badges on board to these explorations is a way to bring more contributor engagement and user feedback to the new places Fedora will go. Instead of earning badges only for activities like Koji builds and dist-git commits, you could earn badges for building container images or building new modules within a package. To accomplish this, the Fedora Badges design team wants to better partner with Fedora leadership to understand what those areas are and encourage new Fedora Badges contributions towards them.
By focusing on the technical challenges faced by Fedora Badges today, this equips Fedora Badges to reinvent itself for the face of Fedora today. Allocating developer time and effort to this project enables the community-led design team to be successful in their initiatives. It allows the Fedora Council and other leadership committees to provide strategic guidance that can be acted upon for areas Badges can emphasize. It also gives a more personal and engaging pathway for new contributors to enter the community.
There is already a strong community of designer involved in the project, we need to build a stronger community around the application development and maintenance. Anybody willing to help in welcome ;-)
Development & Maintenance
Assumptions and Questions
Are there any assumptions for completing this work?
A minimum user story list should be prepared here to facilitate Task Breakdown. The user story describes the type of user, what they want and why. A user story helps to create a simplified description of a requirement. Format should be:
As a < type of user >, I want < some goal > so that < some reason >.
- Designer : A designer is creating artwork associated to a badge.
- Administrator : A user that can create, give, edit, delete badges
- Contributor: A user that would like to create a new badge (writing the rules.yaml)
- Developer: Someone that develop and maintain the application.
- Fedora Badges User: User that collects badges for contributing to the community
- Fedora Community Member: User that would like to submit new badges idea to promote an event or an initiative.
- "Individual Badge maintainer" : User that can award badges to other users.
- As a designer I would like to find an artwork ticket that I can implement so that I am contributing and not wasting time.
- As a designer I would like as single page where approved artwork request is available so that it is easy for me to know which request I should work on.
- As a designer I should not be the liaison to push the badge in production.
- As a maintainer designer I need timely help triaging badge request from the developer, so that I know which request can be implemented.
- As an administrator I want the process to push new badges to production as automated as possible, so that I can save time.
- As an administrator I would like a better administration panel, so that it is easier to do my job :)
- As a maintainer / admin, I want to be able to edit a badge directly, instead of doing stuff trough the admin panel and/or scripts.
Individual Badge maintainer
- As an Individual Badge maintainer I would like the process to award a badge to be more scalable so that I can mass award badges.
- As an Individual Badge maintainer I need to be able to audit who gave a badge so that I can know what is going on.
- As an Individual Badge maintainer I need to have permission to revoke a badge if it was awarded by mistake.
- As an Individual Badge maintainer I would like to be notified when my manually awarded badge is awarded.
- As a Contributor I want to know how to get started to create the rules.yaml so that it is easier to create new badges.
- As a Contributor I want to have template library of the most commonly used lambda function in the rules.yaml so that I can easily choose the one I want.
- As a Contributor I would like to have a way to test my rules.yaml using the expected fedmsg so that i have a quick feedback loop while developing the rules.
- As a Contributor I would like to be able to find which upstream maintainer I need to contact to get the fedmsg needed for my rules, so that I can collaborate with upstream to create the correct fedmsg.
- As a Contributor I would like to be able to access and sort the rules per applications, so that I can easily find example of badges implemented against a particular app.
- As a Developer I would like to be able to push a new release to production with just a commit so that I can deploy new release very quickly.
- As a Developer I would like to have only one repository for the badges application, so that it is easier to contribute to the application.
- As a Developer I would like a new UI design for badges so that it makes the UI better.
- As a UI Developer I would like to have design mock ups for new features, so that I can implement them.
- As a developer, I want to be able to see my changes directly (run the app locally with ease) before submitting them for review. I also want to be able to run a set of integration tests, so I'm sure I'm not breaking anything.
Fedora Badges User
- As a Fedora Badges User I would like to know what are the next badges I need to complete to achieve a skill.
- As a Fedora Badges User I would like for badges to help motivate me to keep going, so that I learn the skills I want.
- As a Fedora Badges User I would like for badges to be faster, so that I enjoy going on the web page.
- As a Fedora Badges User I would like to have an overview of my badges categorized so that I can have a good picture of my accomplishment.
Fedora Community Member
- As a Fedora Community Member I would like to use badges to get a to know/understand other community members.