add DB migration and fix earlier mistakes in student migration history add tests and fix bugs that came out of those unit tests remove unused import pep8/pylint address some PR feedback fix tests fix broken test try to mock time use freeze-gun to overload the system time to simulate the future