Skip to content

Commit

Permalink
Merge pull request #50 from ooemperor/dev
Browse files Browse the repository at this point in the history
Updating Readme and doc for release 1.0
  • Loading branch information
ooemperor authored Mar 27, 2024
2 parents 1627f8f + 67ae050 commit 1390af5
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 2 deletions.
28 changes: 26 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,23 @@
# CodeGrader (CG)

This repository contains the source code for the CodeGrader.
The CodeGrader is an application with User Management and automatic Code Execution and evaluation.
The CodeGrader is an application that provides functionality for automatic Code Grading (Execution and Evaluation in a sandbox environment) with User Management.

#### Main Use-Cases
- Create Tasks with Attachments for Users to download
- Create and manage Users and their specific Access to Tasks
- Let Users upload their Solution to tasks
- Automatically execute and test the submitted Code
- Provide Administrators and Users with Feedback to the Submission

#### Features
- Gamification for the Users after submitting Solution
- Multi-Client Capability for running multiple classes or even schools on one instance of the CodeGrader
- High-Avaiability ready
- automated deployment with ansible
- stable and easy to maintain

With the solution to these Use-Cases the CodeGrader is a good solution for any computer science teacher who wants to provide theirs students with the possibility for lots of hands-on training without long manual and repetitve correction work required.

For more detailed information on how to setup this Project please visit the doc Folder.

Expand All @@ -10,8 +26,16 @@ This project is created as a Bachelor Thesis at the University of Bern in 2023/2
## Installation / Deployment
For running the application you can find a detailed Guid in the doc folder for a complete guide.

The Deployment has been tested on Linux Debian 11 and Linux Debian 12.

## Technologies
The CodeGrader is implemented using multiple technologies.

The main functionality is written in Python with Flask and HTML Templates, Bootstrap and Javascript for the frontend.


## Help
If you have any questions about the application, feel free to get in touch. \
If you have any questions about the application and its features, feel free to get in touch. \
E-Mail: [michael.kaiser@emplabs.ch](mailto:michael.kaiser@emplabs.ch)

## License
Expand Down
16 changes: 16 additions & 0 deletions doc/backend/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Backend Documentation

Within this fodler you will find the documentation for the backend.

## API
The API provides the main Functionality and implements the access via REST API to the Data in the Database.
It is implemented using Python and Flask.

## Database
The Database used in testing is PostgreSQL. The Datamodel is automatically created with SQLAlchemy.

## Execution Service
The Execution Service executes a Script in a secured environment using LXC. The controller for the LXC is also written in Python.

## Evaluation Service
After the execution has finished the Evaluation Service compares the expected output of the Submission with the correct output defined by the uploaded Solution.
9 changes: 9 additions & 0 deletions doc/frontend/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Frontend Documentation

Within this fodler you will find the documentation for the frontend.

## Admin Frontend
The Admin frontend is only accessible for admin users for creating users, tasks and more.

## User Frontend
The User frontend is where the normal users can log in and make submissions to be executed and get their Feedback.

0 comments on commit 1390af5

Please sign in to comment.