Building, testing and assessing a learning management system