Home

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. 

Course Versioning


By using git, we inherently benefit from its features such as versioning, collaboration and rollback.


Learn More

Online Editing


Students can enroll in courses and solve the exercises online with our online editor.


Learn More

Instant Feedback


Students will get instant feedback on their submissions with our automated grading system.


Learn More

Students Served

1010

Submission Graded

54500

Code Executed

378783

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.

Code


Multi File Coding Exercises.

Code Snippet


Code Snippet is meant for command line type exercises

Single Choice


Single choice questions accept only one right choice

Multiple Choice


Multiple choice questions allow multiple correct answers

 

Text


Answers can be evaluated with regular expressions

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 Website

React

Our student web frontend is built on React JS.

Visit Website

Keycloak

Keycloak is our main authentication server, which handles all the user related services such as registration, role assignment as well as web authentication.

Visit Website

Mongo DB

Student submissions including a snapshot of their current workspace as well as evaluation data are stored in a Mongo DB instance.

Visit Website

Postgres

We use Postgres as our main database to securily store user data.

Visit Website

GitHub

We use GitHub as our primary code repository, issue tracker as well as a hub for our organization.

Visit Website

Circle CI

Circle CI helps us automate a large portion of our deveops pipeline such as testing as well as deployment.

Visit Website

Docker

For our code execution and grading, we use Docker to encapsulate a virtual enviroment and run student code. 

Visit Website

Gradle

We chose Gradle as our Java build tool as it offerst a large plugin repository as well as easy build configurations.

 

Visit Website

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.

 

Project Overview

Here is a short video going over the general structure of ACCESS and the context it was created in.