Monumental MR
My apologies beforehand for this huge merge request. It pretty much encompasses everything done up to this point. I was not sure when the MR had to be done, and up to now a lot of code has been made and I understand this will be difficult to code review. From now I will be creating much smaller and more self contained merge requests.
In an attempt to make this more readable, I would suggest taking a look at the registration
module and its associated test cases. I believe this module is fully functional and tested, so it is probably a good starting point. Future merge requests will involve the testing of subsequent modules, and I think it would be a good idea to review the code module by module. Anyways, that's just and idea.