Fast, Simple and Effective Course Organization
The Assistive Course Creation and Evaluation Student Submission tool (ACCESS) is designed to help educational establishments create courses and automatically evaluates student submissions.
5 Different
Exercise Types
We support 5 different exercise types, which should cover all possible use cases. Code covers multi file code exercises, while Code Snippet is useful for small scripting tasks. Multiple Choice and Single Choice provide good options to test the knowledge, while Text can be used to gather more detailed explanations.
Used Technologies
Frameworks
Here is a list of all the frameworks we used.
Spring Boot
We use Spring Boot as a basis for our main course server. The server handles indexing of course data and serves it to the frontend.
Visit WebsiteKeycloak
Keycloak is our main authentication server, which handles all the user related services such as registration, role assignment as well as web authentication.
Visit WebsiteMongo DB
Student submissions including a snapshot of their current workspace as well as evaluation data are stored in a Mongo DB instance.
Visit WebsiteGitHub
We use GitHub as our primary code repository, issue tracker as well as a hub for our organization.
Visit WebsiteCircle CI
Circle CI helps us automate a large portion of our deveops pipeline such as testing as well as deployment.
Visit WebsiteDocker
For our code execution and grading, we use Docker to encapsulate a virtual enviroment and run student code.
Visit WebsiteGradle
We chose Gradle as our Java build tool as it offerst a large plugin repository as well as easy build configurations.
Visit Website
Course Structure
Simple Course Authoring
Courses are solely defined by a folder structure. Course authors can expand assignments and exercises by just creating a new folder. Specific settings such as deadlines and grading scores can be set up with json files. Courses can be uploaded to git servers which alows for versioning as well as colaborative course creation.
Course Config.json
The course config file contains information describing the course such as the title of the course, start date and more.
{
"title": "Computer Science I",
"description": "Some description",
"startDate":"2019-09-22",
"endDate":"2020-01-01",
"owner": "Prof. John",
"semester": "HS 2019",
"admins": [
"admin@uni.ch"
],
"assistants": [
"assistant_1@uni.ch"
"assistant_2@uni.ch"
],
"students": [
"student_1@uni.ch",
"student_2@uni.ch",
]
}
Assignment Config.json
The config file in context of the assignment specifies when the assignment is published and when the submissions are closed.
{
"title": "Chapter I",
"description": "Introduction to Python",
"publishDate": "2019-09-25 20:08",
"dueDate": "2020-12-04 08:00"
}
Exercise Config.json
The Exercise config specifies the type of the exercise with the type attribute. In this example, we specify a code exercise.
{
"title": "IF Conditions",
"type":"code",
"language":"python",
"maxSubmits": 3,
"maxScore": 10
}
Description.md
The Description.md file contains the question of the exercise. As this is a markdown file, we support headings, lists, code snippets, images and links in the question text.