Skip to content
Jos edited this page May 12, 2016 · 4 revisions

The Migration

As specified in issue #159, badgdekit hasn't been very stable and it is not being actively developed anymore, so a new badges issuing/earning service is needed.

WIP: Please note this is a work in progress, only started in May 2016.

This is a bit of a brain dump to start organising the work to be done. As this is being written a number of potential tasks will be highlighted as > Task: Description, and after discussion, they will be added to the issues list (with a tag similar to badgr_migration).

Badgr-server

Badgr-server is the code behind Badgr.io. It is open source and maintained by Concentric Sky. It is a Django application that uses React for the front end. It provides a RESTful like API, which is the core of the work for this project (to wrap the API in nodejs modules). WIP

Other potential solutions

We also looked at Credly. Nice docs and support, but it is a commercial service only (nothing bad with that), and there's no way to host your own server, so development has to be done against their server. WIP

The Migration Roadmap

More stuff here. WIP

Running your own badger-server

Install, Admin, Development tricks. WIP

Installation

The installation instructions for badgr-server are not very complete. You can try and install it manually on your machine by following their readme.

If you use Docker, the local-badgr-server project provides a Dockerfile and instructions on how to build an image and use it, based on Ubuntu 14.04.

It should be easy to create a bash script for linux/mac based systems (pull requests welcome, and help much appreciated) from the instructions in that Dockerfile, probably making use of virtualenv (as explained in the current script) if the server will be installed with other software.

Task: Create install script if needed.

Task: Install test server or prod server instead of the current badgekit service (automate this). Figure out testing setup as described in #75.

Admin

The badgr-server has an admin site (Django default) that can be accessed at 'YOUR_SERVER/staff'. The usual access to data in the DB is available, along with users data, permissions, and so forth.

Development tricks

Once there is a test server for PaperBadger, contributors may not need to install Badgr locally if they do not wish to do so (that's how badgekit works right now). For those wanting to keep everything contained, not having to talk to external services for development, the Dockerfile will be helpful. This section will be updated when details about the test server are discussed/finalised.

Verifying email accounts

All accounts in badgr-server need to be verified by email. The server logs to STDOUT the contents of the email being sent, so there's no need to install a mail server or provide one. The URL for validation can be cut directly from the log output and pasted in the browser for validation.

API modules

Developing nodejs modules to wrap the badgr APIs. It may be just one module, or may be useful to split functionality in something like badgr-auth, badgr-issuer, badgr-earner, maybe some baking functionality as a module too (TBD). WIP

Task: create nodejs module(s)