Before I reinvent a wheel, does anyone know of a FOSS web app (or module/plugin for an established framework) for creating/redeeming download codes for digital assets?
As in, a content creator can:
* create a work (Album/book/digital artwork/whatever)
* attach one or more downloadable files to it
* Generate batches of alphanumeric codes that people can redeem to download those files
* Configure limits per code (IE, number of downloads, expiration after initial redemption)
To be clear: I'm not looking for a purchasing system at all, just an arbitrary code generation/redemption system that's entirely agnostic about how a person might wind up with a code.
Bandcamp gives you 200 free codes and the option to purchase more as needed, but I'm pretty annoyed that you can only use them batches of 100; I'll be lucky to make 100 sales of *anything* online, much less IRL, so buying them in lots of 300 isn't a great deal
So I've got a "technically works but needs pretty/responsive templates for the end user, and an UI for batch generation" POC of this built in Django. As always with these things I suspect the last 20% will be the most grueling, but I'm going to try to see it through and release it as a standalone, pip-installable app anyone can just add to a Django site
After a few additional refinements, I got v0.6.0 of Busker #django deployed in the wild. It's not ready for PyPi yet, but you can install it with pip straight from the repo:
Busker 0.7.0 (my #django tool for creating and redeeming digital download codes) is out. The only new 'feature' per se is prettier error pages, but more significantly I also finally got around to trying out coverage.py and got a bit obsessed with its super-helpful reporting. As of 0.7.0, unit test coverage is technically at 100% (Signals still need tests and there's room for improvement, but this is the most diligent I've ever been with testing and I'm pretty pleased.)
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!