GithubHelp home page GithubHelp logo

myoj's Introduction

myOJ : An Online Autograding Application

myOJ is an online coding assignment grading application which automates the process of creating assignments, adding coding problems, and judging them in an online environment. This platform allows the professors/ teaching assistants to setup an assignment, add problems to it with specific test cases and time limit ensuring that only efficient solution can pass the test cases and once the deadline is reached it will stop taking any further submission and send a detailed performance report of students to the professor through an automated mail.

Features

  • To automate the process of assignment submission and grading.
  • To provide a complete solution to per-existing system.
  • To provide the facility to create online assignments and coding problems which will save a lot of human effort.
  • As all the submissions will be made online directly on our portal so it will be an environment friendly approach saving a lot of paper work.
  • It will also have feature of MOSS (Measure of Software Similarity) to check level of plagiarism, preventing the students from copying assignments.
  • Provide a detailed report consisting of statistical information regarding the number of submissions made, no. of accepted solution/ wrong answer/ time limit reached in tabular & graphical format.

How myOJ works ?

The client side app submits the code and language id to the server through the API. The API then spins up a Docker container for each API request and runs the code using the compiler/interpreter of given language. The program runs inside a virtual machine with limited resources and has a time limit for execution. Once the output is ready, it is sent back to the client as response and docker container is destroyed with all the files from the server.

How to setup myOJ ?

  • First we need to install Nodejs on your device (prerequisite).
  • Fork this repository, please star too.
  • Enter the respective folder, and run npm install
  • Fix dependency issues, if any using npm audit fix
  • Run npm run serve

Architecture

To this use this service, all you need is to deploy the Docker file on some free tier server try using (Heroku or Netlify). Once you have deployed your application, all you need is to call the API endpoints from your client application. For better understanding, try seeing the below architecture which is how we are doing at myOJ.

Technology Stack

  • Backend : NodeJS + Express
  • VueJS as frontend framework
  • Redis as a database in memory
  • Docker & Docker Compose

myoj's People

Contributors

sastava007 avatar skrishan07 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.