As a system, must define all the user actions, and events that happen which could lead to a user gaining experience.
Could look into using MediatR? Or something similar with a publisher/subscriber approach.
At the end of the workflow, the user should be notified via SignalR whenever they leveled up. Mostly because these events could happen without a direct request. I.E -- if we tie Github into the mix... or a challenge -- which by nature takes a bit to run.
Potential Actions a user can gain XP for
Posting
Commenting
Completing a code-jam (submitted a project, not necessarily a winner)
Winning code-jam
Completing a learning module
Point per test passed on a challenge
Points awarded upon badge/quest completion
Badge Progress Tracking
Must figure out the question of what these badges will represent and how we to track that information in a maintainable way.
As a system, must define all the user actions, and events that happen which could lead to a user gaining experience.
Could look into using MediatR? Or something similar with a publisher/subscriber approach.
At the end of the workflow, the user should be notified via SignalR whenever they leveled up. Mostly because these events could happen without a direct request. I.E -- if we tie Github into the mix... or a challenge -- which by nature takes a bit to run.
Potential Actions a user can gain XP for
Badge Progress Tracking
Must figure out the question of what these badges will represent and how we to track that information in a maintainable way.