# DTABackend Backend Rest Web Service for the Moodle Dockerized Test Agent (DTA) plugin ## Getting started To make it easy for you to get started with GitLab, here's a list of recommended next steps. Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)! ## Add your files - [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files - [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command: ``` cd existing_repo git remote add origin https://transfer.hft-stuttgart.de/gitlab/HFTSoftwareProject/dtabackend.git git branch -M master git push -uf origin master ``` ## Integrate with your tools - [ ] [Set up project integrations](https://transfer.hft-stuttgart.de/gitlab/HFTSoftwareProject/dtabackend/-/settings/integrations) ## Collaborate with your team - [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/) - [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html) - [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically) - [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/) - [ ] [Automatically merge when pipeline succeeds](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html) ## Test and Deploy Use the built-in continuous integration in GitLab. - [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html) - [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing(SAST)](https://docs.gitlab.com/ee/user/application_security/sast/) - [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html) - [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/) - [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html) *** ## Name Moodle Dockerized Test Agent (MoDTA). ## Description Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors. ## Badges On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge. ## Visuals See plugin docs at the Moodle HQ. ## Installation Build the jar using export BUILD_NUMBER=; mvn clean install Assumption: members of a system group named 'docker' have access rights to the docker socket and daemon. Then build the docker image using docker build --build-arg AGID=`getent group docker | cut -d: -f3` --build-arg BUILD_NUMBER=$BUILD_NUMBER -t /dta-backend:latest . The default image is provided with the organisation hftstuttgart. Test it without building anything e.g. with Moodle 4.3 using the provided docker-compose.yaml. With this compose file, after Moodle spinup - install the dtt plugin - configure Moodle to open the necessary ports and hosts under Site Administration/Security/HTTP Security - configure moodle dtt plugin backend url to backendcomposedtt:8080 - create a new course - create a new assignment - configure the assignment as Dockerized Test Toolkit - provide the example repo in the teacher.txt example file - add a submission to the new assignment - provide the example repo in the student.txt example file - see the result! ## Usage See plugin docs at the Moodle HQ. ## Support Issue tracker in this Portal. ## Roadmap Include agent feedback and recommendation functionality. ## Contributing You are ready to go after clone and installation, see above. Contributions welcome! ## Authors and acknowledgment Lineage: Master student project Moodle JUnit Exercise Corrector (MoJEC, 2017), Bachelor student project Moodle Dockerized Code Testing (MoDoCoT, 2020), Master thesis project Moodle Dockerized Test Tool (Moodle DTT, 2021). ## License See LICENSE in the root directory. ## Project status Currently under intensive development via research project AVILAB2 (see HFT research projects page).