Giter Site home page Giter Site logo

examer's Introduction

Examer

CLI application for exam evaluation.

This application was developed as an presentation for the Platinum itinerary of Maths from Colégio Madre Carmen Salles

Advantages

Influence calculation

The advantage of this program is the hability to calculate how much does a person knows for a specific subject. For example, you can give how much knowledge of an subject is required to make a specific question, and then based on that the program will grab that information and give how much the answers know for that subject.

Visual and exportable table

You can see how much the answers know of each subject in a nice table and later export it for viewing

Installation

  1. Install Node.js and Git
  2. Clone the repo
git clone https://github.com/abUwUser/Examer
  1. Install the dependencies
npm install --save-dev
  1. Run the pos-install script
npm run pos-install

Usage

Running it

examer <command> [options]

Creating exams and answers

Exams

First, you need to create a JSON file in a desired folder that should be your exam file. It should look something simmilar to this

// exam.json (do not copy this line)
[
    {
        "statement": "Write the expression of log₂32 = 5 in exponential form",
        "influence": {
            "Logarithm": 0.4,
            "Exponential": 0.4,
            "Basic Math": 0.2
        },
        "answer": ["2^5=32", "2⁵=32", "2^5 = 32", "2⁵ = 32"]
    },
    {
        "statement": "Find the square root of 5929",
        "influence": {
            "Square Root": 0.9,
            "Basic Math": 0.1
        },
        "answer": "77"
    },
    {
        "identifier": "3.a",
        "statement": "Calculate the volume of the cylinder with radius 5 and height 6 while considering π = 3.1. Do not put the units in the answer.",
        "influence": {
            "Cylinder": 0.7,
            "Basic Math": 0.3
        },
        "score": 0.5,
        "answer": "465"
    },
    {
        "identifier": "3.b",
        "statement": "Calculate the side area of a cone with radius 7 and generatrix 3 while considering π = 3. Do not put the units in the answer.",
        "influence": {
            "Cylinder": 0.1,
            "Cone": 0.4,
            "Basic Math": 0.3
        },
        "score": 0.5,
        "answer": "63"
    }
]

The influence property is gaven to give the answer the required subjects to answer that question and how much they influence in the making of the question. Check here for more information

You can give a score to that question. By default it is gaven an score of 1

        },
        "score": 0.5, 
        "answer": "63"

And an identifier to it

    {
        "identifier": "3.b",
        "statement": "Calculate the side area of a cone with radius 7 and generatrix 3 while considering π = 3. Do not put the units in the answer.",

Answers

For the answers, it is recommended to create a folder next to the exam file

The structure of an question look simmilar to this

// answers/Pedro Cartaxo.json (do not copy this line)
[
    "2^5=32",
    null,
    "465",
    "63"
]

Each element represents the answer gaven by the user relative to the exam. So for example, "2^5=32" is relative to the first question, while "465" for the third

You can expand it by giving an individual score and influences if needed

// answers/Pedro Cartaxo.json (do not copy this line)
[
    "2^5=32",
    null,
    "465",
    {
        "value": "59",
        "override": {
            "influence": {
                "Cylinder": 0.1,
                "Cone": 0.4,
                "Basic Math": 0.1
            },
            "score": 0.3
        }
    }
]

Documentation

Exam

It is a file that should contain the exam structure to then compare with the answers. It is an array of the Question type. Click here for an example

Answers

It is a file that contains an array of Answers and UserAnswers. Click here for an example

Types

Question

Object that gives the question's information

  • answer (Answer | Array<Answer> | null): The correct answer. If it is gave an array, it will check for multiple answers
  • statement? (string): The statement of the question.
  • influences? (Influence): How much does an subject it is required to make that question.
  • identifier? (string): How this question should be numbered. Example: 4.c.

Influence

Object that gives how much does the answer needs to know about an subject to make that question. Check here for more information

  • [subject] (number): A number that says how much is the influence of that object

UserAnswer

Object that gives more clarity to the answer, and can override some values given by the exam.

  • value (Answer): The answer
  • override? (object): Prefers values from this class than from the exam. Check an example
    • influence? (Influence): How much does an subject it is required to make that question.
    • score? (number): The score that should be considered instead

Answer types

Type that gives an answer. Possible values:

  • string
  • boolean

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.