Home - AgileVentures/rag GitHub Wiki

Welcome to AutoGraders!

Our website

Build Status Code Climate

Introduction

AutoGraders is a project to provide a platform for automation of creating, testing, grading and providing feedback on programming assignments for students engaged in various programming courses.

AutoGraders platform consists of several modules:

AutoGraders Server

An end product to be used by educational institutions and online education platforms to carry out automatic grading and to provide customizable feedback to students.

Main features: (add specific requirements)

  • easily deployed and maintained
  • provides various interfaces to communicate with existing platforms and assignments submission protocols
  • supports grading various types of assignments and grading techniques
  • supports assignments for various programming languages and technologies
    • testing
    • acceptance testing
    • mutation testing
    • UI testing
    • performance testing
    • code quality testing - smells, complexity, ABC
    • test coverage
  • scalable, to accommodate different loads and throughput
  • 100% code coverage by unit, integration and acceptance tests
  • provides tools for load testing, monitoring and notifications

AutoGraders Instructor Box

An environment and a collection of tools to create and test AutoGraders specifications for the grading process.

Main features: (add specific requirements)

  • easily deployed and maintained
  • provides tools for creation an assignment package to be used by AutoGraders server
  • provides extensive documentation for instructors with examples on creating various types of assignments
  • provides tools for testing created assignment package
  • provides tools for simulating student experience through simulating: - education platform submission form and feedback rendering - education platform communication interface

AutoGraders Development box

An environment and a collection of tools for extension of existing functionality of AutoGraders platform.

Main features: (specific requirements)

  • deployed and maintained
  • architecture
  • documented source code (i.e. self-documenting and with acceptance tests)

Important comments

The current implementation only supports programming assignments for Ruby and Ruby based technologies.

For developers

We are seeking contributors for our project.

A few ideas why you should consider this project:

  • project is being implemented in Ruby and ruby based technologies
  • The complexity (and thus interest and challenge rate) is intermediate to advance
  • You will learn about setting up virtual machines, cloud instances, application inter-communication, concurrent processing and databases
  • We strictly stay within the BDD philosophy, thus you have a chance to learn the BDD and TDD techniques to full extent in a real project
  • We aim for 100% test coverage
  • We aim for beautiful code and architecture
  • We strive to employ best software engineering practices, patterns and principles - SOFA, SOLID and others
  • We are adepts of Agile development
  • We enjoy Pair Programming for learning, fun and profit
  • We are building reliable and scalable software for a great cause, that will be used and benefited by hundreds of thousands of people around the world.

Become a member of our team today!