An Implementation of Web-Based Answer Platform in the Flutter Programming Learning Assistant System Using Docker Compose - Aung, Lynn Htet; Aung, Soe Thandar; Funabiki, Nobuo; Kyaw, Htoo Htoo Sandi; Kao, Wen-Chung (Electronics (Basel), 2024)
Programming has gained significant importance worldwide as societies increasingly rely on computer application systems. To support novices in learning various programming languages, we have developed the Programming Learning Assistant System (PLAS). It offers several types of exercise problems with different learning goals and levels for step-by-step self-study. As a personal answer platform in PLAS, we have implemented a web application using Node.js and EJS for Java and Python programming. Recently, the Flutter framework with Dart programming has become popular, enabling developers to build applications for mobile, web, and desktop environments from a single codebase. Thus, we have extended PLAS by implementing the Flutter environment with Visual Studio Code to support it. Additionally, we have developed an image-based user interface (UI) testing tool to verify student source code by comparing its generated UI image with the standard one using the ORB and SIFT algorithms in OpenCV. For efficient distribution to students, we have generated Docker images of the answer platform, Flutter environment, and image-based UI testing tool. In this paper, we present the implementation of a web-based answer platform for the Flutter Programming Learning Assistant System (FPLAS) by integrating three Docker images using Docker Compose. Additionally, to capture UI images automatically, an Nginx web application server is adopted with its Docker image. For evaluations, we asked 10 graduate students at Okayama University, Japan, to install the answer platform on their PCs and solve five exercise problems. All the students successfully completed the problems, which confirms the validity and effectiveness of the proposed system.