NOTE: Canvabadges is not actively being maintained, I've unfortunately had to move on to other projects. Feel free to tweet at me if you have questions, but no guarantees that I'll be able to help with them. Also let me know if you're interested in owning the project :-). If you're looking for an alternative, I'd suggest Badgr or possibly Credly depending on your use case.
Canvabadges let you award badges to students in courses based on their total grade in the course and their completion of course modules. You can also put a manual approval step on as well that requires your final sign-off before they receive the badge.
NOTE: Students do not earn badges automatically, they must launch the Canvabadges link in modules after completing criteria in order to be awarded the badge.
Some Badges in Public Canvas Courses
424,839 badges earned so far - see some recipients
Lots of schools will probably want to host their own badge issuing server, so the domain matches their school (i.e. badges.utah.edu instead of canvabadges.herokuapp.com). Good news! You can now do that with Canvabadges! Just follow these directions on getting a custom domain configured. Or you can also run the code yourself.