Abstract:
Educational plugins are extensively utilized in both, the industry and academia. Academically, the plugins are used to optimize certain labor-intensive and error-prone manual operations for students, such as loading, installing, completing and submitting the assignments. The thesis sets out to explore the features and functionalities of different educational plugins by developing the plugin to support a programming course at the Aalto University. As follows, the thesis goes through a thorough process of pitching, developing, implementing, reporting feedback and resulting feedforward. The process is facilitated by a three-member development team with the author of this thesis acting as a hands-on Scrum Master. The stakeholders’ requirements of stability and fault-tolerance were met in an IntelliJ IDEA plugin, written in Java 8 and Scala. The Eclipse-based IDE was replaced with IntelliJ as the former was discontinued in 2018. Java 8 was chosen over Kotlin as none of the team-members are Kotlin-fluent and as Java 11 was not yet released at the start of the development. Also, as the plugin interacts with Scala components, a minor part of the application is written in Scala. The plugin is designed to interoperate with the existing backend learning management system A+ as a third-party data provider. Dependencies pruned during the process include IntelliJ Platform’s compatibility with future IDE versions (solved through regular adjustments by the developers), Gradle IntelliJ plugin’s compatibility with the Platform, standard Java libraries (solved through an automated vulnerability scanning), etc. The project is ongoing, with testing routinely performed with the stakeholder and student feedback fed back into the development process. However, future improvements include reworking the architecture, extending the testing scope, and multi-course support.