All Projects → ls1intum → Artemis

ls1intum / Artemis

Licence: mit
Artemis - Interactive Learning with Automated Feedback

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Artemis

Mifos Mobile
Repository for the Mifos Mobile Banking App for clients
Stars: ✭ 154 (-1.28%)
Mutual labels:  hacktoberfest
Adonisjs.com
🕸 Source Code of the website adonisjs.com
Stars: ✭ 155 (-0.64%)
Mutual labels:  hacktoberfest
Proctoring Ai
Creating a software for automatic monitoring in online proctoring
Stars: ✭ 155 (-0.64%)
Mutual labels:  hacktoberfest
Vulcan Next
The Next starter for GraphQL developers
Stars: ✭ 155 (-0.64%)
Mutual labels:  hacktoberfest
Isee
R/shiny interface for interactive visualization of data in SummarizedExperiment objects
Stars: ✭ 155 (-0.64%)
Mutual labels:  hacktoberfest
Jsk visualization
jsk visualization ros packages
Stars: ✭ 155 (-0.64%)
Mutual labels:  hacktoberfest
Gatsby Plugin Algolia
A plugin to push to Algolia based on graphQl queries
Stars: ✭ 154 (-1.28%)
Mutual labels:  hacktoberfest
Bsl Language Server
Реализация Language Server Protocol для языка 1C (BSL)
Stars: ✭ 154 (-1.28%)
Mutual labels:  hacktoberfest
Layercache
Caching made simple for Android and Java.
Stars: ✭ 155 (-0.64%)
Mutual labels:  hacktoberfest
Roast
🦋 Raku test suite
Stars: ✭ 155 (-0.64%)
Mutual labels:  hacktoberfest
Demeter
Demeter is a tool for scraping the calibre web ui
Stars: ✭ 155 (-0.64%)
Mutual labels:  hacktoberfest
Symfony Docs
The Symfony documentation
Stars: ✭ 1,924 (+1133.33%)
Mutual labels:  hacktoberfest
Docs
The October CMS Documentation
Stars: ✭ 155 (-0.64%)
Mutual labels:  hacktoberfest
Helm Charts
Jenkins community Helm charts
Stars: ✭ 154 (-1.28%)
Mutual labels:  hacktoberfest
Wsl2 Ssh Pageant
bridge between windows pageant and wsl2
Stars: ✭ 155 (-0.64%)
Mutual labels:  hacktoberfest
Pagermon
Multimon-ng pager message parser and viewer
Stars: ✭ 154 (-1.28%)
Mutual labels:  hacktoberfest
Kalm.js
The socket manager
Stars: ✭ 155 (-0.64%)
Mutual labels:  hacktoberfest
Go Twitch Irc
go irc client for twitch.tv
Stars: ✭ 155 (-0.64%)
Mutual labels:  hacktoberfest
Time To Leave
Log work hours and get notified when it's time to leave the office and start to live.
Stars: ✭ 155 (-0.64%)
Mutual labels:  hacktoberfest
Cylc Flow
Cylc: a workflow engine for cycling systems. Repository master branch: core meta-scheduler component of cylc-8 (in development); Repository 7.8.x branch: full cylc-7 system.
Stars: ✭ 154 (-1.28%)
Mutual labels:  hacktoberfest

Artemis: Interactive Learning with Individual Feedback

Build Status Test Status Documentation Status Dependency Status Dev Dependency Status Code Quality Status Coverage Status

Artemis was initially generated using JHipster 6.10.3. (Documentation and help)

Latest version)

Main features

Artemis supports the following exercises:

  1. Programming exercises with version control and automatic assessment with test cases and continuous integration
  2. Quiz exercises with multiple choice, drag and drop and short answer quiz questions
  3. Modeling exercises with semi-automatic assessment using machine learning concepts
  4. Text exercises with manual (and experimental semi-automatic) assessment
  5. File upload exercises with manual assessment

Artemis supports all these exercises to run either live in the lecture with instant feedback or as homework. Students can submit their solutions multiple times within the due date and use the (semi-)automatically provided feedback to improve their solution.

Artemis also supports an exam mode now. You can find more information on Exam mode student features and on Exam mode instructor features.

Setup, guides and contributing

Development setup, coding and design guidelines

Documentation

Read the Docs hosts the Artemis documentation. You can find a guide on how to write documentation.

Server setup

You can find the guide for setting up Artemis in conjunction with either GitLab and Jenkins here or with Jira, Bitbucket and Bamboo here. Artemis uses these external tools for user management and the configuration of programming exercises.

Administration setup

You can find information on how to set up user registration here

Contributing

Please read the guide on how to contribute to Artemis.

Building for production

To build and optimize the Artemis application for production, run:

./gradlew -Pprod -Pwar clean bootWar

This will create a Artemis-.war file in the folder build/libs. The build command compiles the TypeScript into JavaScript files, concatenates and minifies the created files (including HTML and CSS files). It will also modify index.html so it references these new files. To ensure everything worked, run the following command to start the application on your local computer:

java -jar build/libs/*.war --spring.profiles.active=dev,artemis,bamboo,bitbucket,jira

(You might need to copy a yml file into the folder build/libs before, also see development setup)

Then navigate to http://localhost:8080 in your browser.

Refer to Using JHipster in production for more details.

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):

./artemis-server-cli deploy [email protected] -w build/libs/Artemis-4.4.5.war

Architecture

The following diagram shows the top level design of Artemis which is decomposed into an application client (running as Angular web app in the browser) and an application server (based on Spring Boot). For programming exercises, the application server connects to a version control system (VCS) and a continuous integration system (CIS). Authentication is handled by an external user management system (UMS).

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)

Server architecture

The following UML component diagram shows more details of the Artemis application server architecture and its REST interfaces to the application client.

Server Architecture

Deployment

The following UML deployment diagram shows a typical deployment of Artemis application server and application client. Student, Instructor and Teaching Assistant (TA) computers are all equipped equally with the Artemis application client being displayed in the browser.

The Continuous Integration Server typically delegates the build jobs to local build agents within the university infrastructure or to remote build agents, e.g. hosted in the Amazon Cloud (AWS).

Deployment Overview

Data model

The Artemis application server uses the following (simplified) data model in the MySQL database (note that the figure does not include all entities, attributes and relationships). It supports multiple courses with multiple exercises. Each student in the participating student group can participate in the exercise by clicking the Start Exercise button. Then a repository and a build plan for the student (User) will be created and configured. The initialization state variable (Enum) helps to track the progress of this complex operation and allows recovering from errors. A student can submit multiple solutions by committing and pushing the source code changes to a given example code into the version control system or using the user interface. The continuous integration server automatically tests each submission, and notifies the Artemis application server, when a new result exists. In addition, teaching assistants can assess student solutions and "manually" create results. The current data model is more complex and supports more features such as online exams, lectures, student questions and static code analysis.

Data Model

Artemis Community

There is a growing community of university instructors who are using Artemis.

Communication

We communicate using Github issues and pull requests. Additionally, you can join us on Slack to ask questions and get support. If you are interested, please send an email to Stephan Krusche.

Universities with Artemis in Use

The following universities are activly using Artemis or are currently evaluating Artemis.

Technical University of Munich
LFU Innsbruck, Uni Salzburg, JKU Linz, AAU Klagenfurt
University of Stuttgart
Universität Bonn
Universität Passau
  • Evaluating Artemis
Karlsruhe Institute of Technology
  • Evaluating Artemis
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].