ALIBRAGIMOV / Grader

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Grader: An Automated Code Grader System

GitHub go.mod Go version GitHub last commit

Table of Contents

Introduction

Grader is a versatile, automated code grader system designed to streamline the process of homework verification. It is perfect for educational institutions, coding bootcamps, or any organization looking to simplify the grading process of coding assignments. Grader is fully capable of receiving user-submitted solutions, adding test files for further homework verification, and more.

Technology Stack

Grader leverages an array of modern technologies to provide robust and scalable service:

  • Go (Golang): A statically typed, compiled language with syntax similar to C but with garbage collection, memory safety features, and CSP-style concurrency.
  • Go-chi: A lightweight, idiomatic, and composable router for building Go HTTP services.
  • PostgreSQL: An advanced, enterprise-class, and open-source relational database system.
  • Redis: An open-source, in-memory data structure store used as a database, cache, and message broker.
  • RabbitMQ: An open-source message broker software that implements the Advanced Message Queuing Protocol (AMQP).
  • Docker: A platform to develop, ship, and run applications segregated into separate container instances.

Service Architecture

Grader comprises of three key services:

  1. Grader Service: This is where solutions are received, validated, and processed. The solution file is transferred via Docker volume mount to a container, where the task is evaluated.
  2. Queue Service: Manages the distribution and orchestration of tasks using RabbitMQ as the underlying message broker.
  3. Server (User Part): Handles user interactions, including logins, solution uploads, and accessing test files.

Getting Started

# Clone the repository
git clone https://github.com/ALIBRAGIMOV/Grader.git

# Go to the project directory
cd Grader

About


Languages

Language:Go 67.3%Language:HTML 32.4%Language:Dockerfile 0.3%