Peer Matching Tool

Massive open online courses (MOOCs) all around the world are growing in size. Therefore, the practical assignments needs to be easy to manage. The growth also means that it is more difficult for participants to find a possible practical partner due to the large amount of people. The difficulty is also affected by the fact that students do not see each other during courses, and most of the time haven’t met any of the participants from the course. For this Bachelor Project we have improved upon this process by creating an application that can be used to create practical groups without the participants being required to search intensively through all the participants. Participants are able to easily access the application, fill in some relevant information about themselves and then get recommendations of possible practical partners or practical groups. We have divided the project in three phases:  Research and set-up (phase 1)  Design and implementation (phase 2)  Testing, documentation and presentation (phase 3) Each of these phases describes the things that needed to be done during that phase. During the implementation phase we used a known software development framework. This develop- ment framework is known as scrum. Scrum is based on the agile software development framework which can be used to manage software projects. We use the Play framework for development of the application. The Play framework gives us the possibility to easily create a web application using Java. This frameworks follows the Model View Controller (MVC) architectural pattern applied to the Web architecture. For our recommendation algorithm we used our custom designed algorithm. This algorithm uses the skills defined by the user and the teacher to find the best recommendation with the preferences of the teacher. Creating code with good quality, maintainability and extendability of the system was important during the project. We achieved this using several tools, like Findbugs and Checkstyle. Another important aspect of the project was testing the code. We have performed different kind of tests to ensure good functioning code, to ensure everything is functioning appropriately. For the maintenance of our code we uploaded our code to the Software Improvement Group (SIG) and received an above average rating. During the implementation phase, we already started with testing. Because the system was not com- pleted during this phase, only parts of the system could be tested. We performed different kind of unit tests to provide a basic code coverage. We also used continuous integration, which executed the tests ever time we pushed our code to git. Besides the unit tests we have performed integration tests to ensure the connection between the different components. The testing of the entire system is done after the implementation phase was completed. This was partly done by checking if the final product matches the requirements that were set. It is also done by letting the target audience use the system and document the findings. A working beta implementation of the complete system was delivered as a proof of concept and most of the initially set requirements were fulfilled.