Commit 266fdf20 authored by Lückemeyer's avatar Lückemeyer
Browse files

Update README.md

parent 5a58791e
Pipeline #9082 passed with stage
......@@ -2,107 +2,71 @@
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.
Moodle Dockerized Test Agent (MoDTA) backend.
## Visuals
See plugin docs at the Moodle HQ.
See plugin docs at the Moodle HQ or the readme at https://transfer.hft-stuttgart.de/gitlab/HFTSoftwareProject/moodledta.
## Installation
Assumption: Java JDK 17, maven and docker installed, docker running.
Assumption for usage: git, Java JDK 17, maven and docker installed, docker running.
Assumption for development: Typically, a Java IDE like Eclipse JEE running. curl or an API test tool for testing.
Only before the first build, add the dependency to unifiedticketing to your local maven repo using the command in
deployunifiedticketingdeptolocalrepo.txt
Build the jar using
export BUILD_NUMBER=<YOUR_BUILD_NUMBER>; mvn clean install
export BUILD_NUMBER=<YOUR_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 (Hint: There are backticks in front of 'getent' and after 'f3')
docker build --build-arg AGID=`getent group docker | cut -d: -f3` --build-arg BUILD_NUMBER=$BUILD_NUMBER -t <YOUR_DOCKERHUB_ORGANISATION>/dta-backend:latest .
docker build --build-arg AGID=`getent group docker | cut -d: -f3` --build-arg BUILD_NUMBER=$BUILD_NUMBER -t <YOUR_DOCKERHUB_ORGANISATION>/dta-backend:latest .
The default image is provided with the organisation hftstuttgart.
Assumption: docker-compose or a new docker version with integrated docker compose running.
Assumption for integration: docker-compose or a new docker version with integrated docker compose running.
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
- install the dta 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
- configure moodle dta plugin backend url to e.g. backendcomposedtt:8080 when using the example dockerfile
- ensure read/write access to the host temp dir for the dta plugin, e.g. with the example dockerfile for the group 'docker' to /tmp/dta-tests
- 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
- configure the assignment as Dockerized Test Agent
- provide the example repo in the teacher-dta-dir.txt example file
- add a submission to the new assignment
- provide the example repo in the student.txt example file
- provide the example repo in the student-dir.txt example file
- see the result!
## Usage
See plugin docs at the Moodle HQ.
See plugin docs at the Moodle HQ or the readme at https://transfer.hft-stuttgart.de/gitlab/HFTSoftwareProject/moodledta.
## Support
Issue tracker in this Portal.
## Roadmap
Include agent feedback and recommendation functionality.
See issues:
HIGH: Include agent recommendation functionality, support for Subversion version control system and kubernetes infrastructure alternatively to docker(-compose).
MEDIUM: Enhance security by building all images to run as non-root.
LOW: Potentially offer demo runners for further programming languages or newer Java LTS versions when available.
## 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).
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.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment