-
Notifications
You must be signed in to change notification settings - Fork 301
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'develop' into enhancement/export-import-buildplan
- Loading branch information
Showing
333 changed files
with
4,475 additions
and
4,200 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -30,7 +30,7 @@ on: | |
# Keep in sync with build.yml and test.yml | ||
env: | ||
CI: true | ||
node: 18 | ||
node: 20 | ||
java: 17 | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,9 +7,11 @@ | |
[![Coverage Status](https://app.codacy.com/project/badge/Coverage/89860aea5fa74d998ec884f1a875ed0c)](https://www.codacy.com/gh/ls1intum/Artemis?utm_source=github.com&utm_medium=referral&utm_content=ls1intum/Artemis&utm_campaign=Badge_Coverage) | ||
[![Latest version)](https://img.shields.io/github/v/tag/ls1intum/Artemis?label=%20Latest%20version&sort=semver)](https://github.com/ls1intum/Artemis/releases/latest) | ||
|
||
Artemis brings interactive learning to life with instant, individual feedback on programming exercises, quizzes, modeling tasks, and more. Offering customization for instructors and real-time collaboration for students, this platform bridges creativity and education. Embrace a new era of engaging, adaptive learning and artificial intelligence support with Artemis, where innovation meets inclusivity. Find out more on https://artemisapp.github.io | ||
|
||
## Main features | ||
|
||
1. **[Programming exercises](https://docs.artemis.cit.tum.de/user/exercises/programming/)** with version control, automatic individual feedback (and assessment) based on test cases and static code analysis (executed using continuous integration). | ||
1. **[Programming exercises](https://docs.artemis.cit.tum.de/user/exercises/programming/)** with version control, automatic individual feedback (and assessment) based on test cases and static code analysis (executed using continuous integration) for `any programming language`. | ||
* **Instant**: Students receive immediate and individual feedback on submissions. Instructors can customize feedback messages easily, hide feedback during the working time (e.g., with hidden tests) | ||
* **Interactive:** Instructors integrate interactive instructions based on tasks and UML diagrams directly into the dynamic problem statements. They can define hints for difficult exercise parts. | ||
* **Independent**: Instructors can customize programming exercises to support any programming language. To simplify the setup, Artemis includes sophisticated templates for the most common languages (e.g., Java, Python, C, Haskell, Kotlin, VHDL, Assembler, Swift, Ocaml, ...) | ||
|
@@ -32,7 +34,7 @@ | |
6. **[Exam mode](https://docs.artemis.cit.tum.de/user/exam_mode/)**: Instructors can create online exams with exercise variants, integrated plagiarism checks, test runs and student reviews. You can find more information on [Exam mode student features](https://artemis.cit.tum.de/features/students) and on [Exam mode instructor features](https://artemis.cit.tum.de/features/instructors). | ||
7. **[Grading](https://docs.artemis.cit.tum.de/user/grading/)**: Instructors can configure grade keys for courses and exams to automatically calculate grades and display them to students. Grades can be easily exported as csv files to upload them into university systems (such as Campus online). Instructors can optionally define bonus configurations for final exams to improve student grades according to their grades from a midterm exam or course exercises. | ||
8. **[Assessment](https://docs.artemis.cit.tum.de/user/exercises/assessment/)**: Artemis uses double-blind grading and structured grading criteria to improve consistency and fairness. It integrates an assessment training process (based on example submissions and example assessments defined by the instructor), has a grading leader board, and allows students to rate the assessments. Students can complain or ask for more feedback. | ||
9. **[Communication](https://docs.artemis.cit.tum.de/user/communication/)**: Instructors can post announcements. Students can ask questions, post comments, and react to other posts. Tutors can filter unanswered questions. | ||
9. **[Communication](https://docs.artemis.cit.tum.de/user/communication/)**: Instructors can post announcements. Students can ask questions, post comments, and react to other posts in channels or private chats. Tutors can filter unanswered questions. | ||
10. **[Notifications](https://docs.artemis.cit.tum.de/user/notifications)**: Artemis supports customizable web and email notifications. Users can enable and disable different notification types. | ||
11. **[Team Exercises](https://docs.artemis.cit.tum.de/user/exercises/team-exercises/)**: Instructors can configure team exercises with real time collaboration and dedicated tutors per team. | ||
12. **[Lectures](https://docs.artemis.cit.tum.de/user/lectures/)**: Instructors can upload lecture slides, divide lectures into units, integrate video streams, lecture recordings, and exercises into lectures, and define competencies. | ||
|
@@ -42,7 +44,7 @@ | |
16. **[Adaptive Learning](https://docs.artemis.cit.tum.de/user/adaptive-learning/)**: Artemis allows instructors and students to define and track competencies. Students can monitor their progress towards these goals, while instructors can provide tailored feedback. This approach integrates lectures and exercises under overarching learning objectives. | ||
17. **[Tutorial Groups](https://docs.artemis.cit.tum.de/user/tutorialgroups/)**: Artemis support the management of tutorial groups of a course. This includes planning the sessions, assigning responsible tutors, registering students and tracking the attendance. | ||
18. **[Iris](https://artemis.cit.tum.de/about-iris)**: Artemis integrates Iris, a chatbot that supports students and instructors with common questions and tasks. | ||
19. **[Scalable](https://docs.artemis.cit.tum.de/user/scaling/)**: Artemis scales to multiple courses with thousands of students. In fact, the largest course had 2,400 students. Administrators can easily scale Artemis with additional build agents in the continuous integration environment. | ||
19. **[Scalable](https://docs.artemis.cit.tum.de/user/scaling/)**: Artemis scales to multiple courses with thousands of students simultaneously using it. In fact, the largest course had 2,400 students. Administrators can easily scale Artemis with additional build agents in the continuous integration environment. | ||
20. **[High user satisfaction](https://docs.artemis.cit.tum.de/user/user-experience/)**: Artemis is easy to use, provides guided tutorials. Developers focus on usability, user experience, and performance. | ||
21. **Customizable**: It supports multiple instructors, editors, and tutors per course and allows instructors to customize many course settings | ||
22. **[Open-source](https://docs.artemis.cit.tum.de/dev/open-source/)**: Free to use with a large community and many active maintainers. | ||
|
@@ -51,18 +53,18 @@ | |
|
||
The Artemis development team prioritizes the following issues in the future. We welcome feature requests from students, tutors, instructors, and administrators. We are happy to discuss any suggestions for improvements. | ||
|
||
* **Short term**: Further improve the communication features | ||
* **Short term**: Add learning paths based on adaptive learning with different exercise difficulties and the automatic generation of hints | ||
* **Short term**: Add more learning analytics features while preserving data privacy | ||
* **Short term**: Add instructor assistance based on Generative AI | ||
* **Medium term**: Simplify the setup of Artemis | ||
* **Medium term**: Add feedback assistance based on Generative AI | ||
* **Short term**: Further improve the communication features with mobile apps for iOS and Android | ||
* **Short term**: Simplify the setup of Artemis with local modules for version control and continuous integration | ||
* **Short term**: Add feedback assistance based on Generative AI (within [Athena](https://github.com/ls1intum/Athena)) | ||
* **Medium term**: Add more learning analytics features while preserving data privacy | ||
* **Medium term**: Improve the user experience, usability and navigation | ||
* **Medium term**: Add automatic generation of hints | ||
* **Medium term**: Add AI support for reviewing exercises | ||
* **Medium term**: Add the possibility to use Iris for questions on all exercise types, lectures, and learning performance aspects | ||
* **Long term**: Microservices, Kubernetes based deployment, and micro frontends | ||
* **Long term**: Explore the possibilities of microservices, Kubernetes based deployment, and micro frontends | ||
* **Long term**: Allow students to take notes on lecture slides and support the automatic updates of lecture slides | ||
* **Long term**: Develop an exchange platform for exercises | ||
|
||
|
||
## Setup, guides, and contributing | ||
|
||
### Development setup, coding, and design guidelines | ||
|
@@ -79,21 +81,29 @@ You can find a guide on [how to write documentation](docs/README.md). | |
|
||
### Server setup | ||
|
||
You can set up Artemis in conjunction with either [`GitLab and Jenkins`](https://docs.artemis.cit.tum.de/dev/setup/#jenkins-and-gitlab-setup), [`GitLab and GitLab CI (experimental)`](https://docs.artemis.cit.tum.de/dev/setup/#gitlab-ci-and-gitlab-setup), [`Jira, Bitbucket and Bamboo`](https://docs.artemis.cit.tum.de/dev/setup/#bamboo-bitbucket-and-jira-setup), or with [`local CI and local VC`](https://docs.artemis.cit.tum.de/dev/setup/#local-ci-and-local-vc-setup). | ||
Setting up Artemis in your development environment or a demo production environment is really easy following the instructions on https://docs.artemis.cit.tum.de/dev/setup. When you want to support programming exercises, we recommend to use the modules for [Local CI and Local VC](https://docs.artemis.cit.tum.de/dev/setup/#local-ci-and-local-vc-setup). | ||
|
||
Artemis can also be set up in conjunction with external tools for version control and continuous integration: | ||
1. [GitLab and Jenkins](https://docs.artemis.cit.tum.de/dev/setup/#jenkins-and-gitlab-setup) | ||
2. [Jira, Bitbucket and Bamboo](https://docs.artemis.cit.tum.de/dev/setup/#bamboo-bitbucket-and-jira-setup) | ||
3. [GitLab and GitLab CI (experimental)](https://docs.artemis.cit.tum.de/dev/setup/#gitlab-ci-and-gitlab-setup) | ||
|
||
Artemis uses these external tools for user management and the configuration of programming exercises. | ||
|
||
### Administration setup | ||
|
||
If needed, you can configure self service [user registration](https://docs.artemis.cit.tum.de/admin/registration). | ||
|
||
### Contributing | ||
### Contributing | ||
|
||
Please read the guide on [how to contribute](CONTRIBUTING.md) to Artemis. | ||
|
||
Once the PR is ready to merge, notify the responsible feature maintainer: | ||
|
||
#### Maintainers | ||
|
||
|
||
The following members of the project management team are responsible for specific feature areas in Artemis. Contact them if you have questions or if you want to develop new features in this area. | ||
|
||
| Feature / Aspect | Maintainer | | ||
|--------------------------------|-----------------------------------------------------------------------------------------------------| | ||
| Programming exercises | [@krusche](https://github.com/krusche) | | ||
|
@@ -145,7 +155,7 @@ Refer to [Using JHipster in production](http://www.jhipster.tech/production) for | |
The following command can automate the deployment to a server. The example shows the deployment to the main Artemis test server (which runs a virtual machine): | ||
|
||
```shell | ||
./artemis-server-cli deploy [email protected] -w build/libs/Artemis-4.4.5.war | ||
./artemis-server-cli deploy [email protected] -w build/libs/Artemis-6.7.5.war | ||
``` | ||
|
||
## Architecture | ||
|
@@ -154,11 +164,7 @@ The following diagram shows the top level design of Artemis which is decomposed | |
|
||
![Top-Level Design](docs/dev/system-design/TopLevelDesign.png "Top-Level Design") | ||
|
||
While Artemis includes generic adapters to these three external systems with a defined protocol that can be instantiated to connect to any VCS, CIS, or UMS, it also provides 3 concrete implementations for these adapters to connect to: | ||
|
||
1. **VCS:** Atlassian Bitbucket Server | ||
2. **CIS:** Atlassian Bamboo Server | ||
3. **UMS:** Atlassian JIRA Server (more specifically Atlassian Crowd on the JIRA Server) | ||
While Artemis includes generic adapters to these three external systems with a defined protocol that can be instantiated to connect to any VCS, CIS, or UMS, it also provides 3 concrete implementations for these adapters to connect to. | ||
|
||
### Server architecture | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.