Skip to content

Serving random questions in multiple languages has never been this easy.

License

Notifications You must be signed in to change notification settings

MilosPaunovic/questionnaire

Repository files navigation

Questionnaire

Package for generating random question(s) in multiple languages.

Testing

Try it Online

Link to Codepen playground

Motivation

Main idea and motivation behind this was work from Nenad Ilić and his post I saw on Reddit. You could (and should) read more about it here.

Installation

npm i @paunovic/questionnaire

Configuring

import { initialize } from '@paunovic/questionnaire';

// Initialization with default language pack
const QUESTIONNAIRE = initialize();

// Initialization with different language pack, including variation
const QUESTIONNAIRE = initialize({ countryCode: 'rs', variation: 'cyrillic' });

Currently available country codes and variations:

Country Country code Variation Questions
Serbia * rs cyrillic 10253

* Default language; if no countryCode parameter is passed to initialize method, Serbian Latin will be loaded as a default language.

Methods

Question

Returns random question from the list in the object form, containing question and answer properties.

QUESTIONNAIRE.question(); // => { question: 'QUESTION', answer: 'ANSWER' }

Returns random question from the list in the object form, containing question, answer and wrong (containg number of wrong answers you've specified, in range from 1 to 30) properties.

QUESTIONNAIRE.question({ wrong: 3}); // => { question: 'QUESTION', answer: 'ANSWER', wrong: ['WRONG', 'WRONG', 'WRONG'] }

Questions

Returns an array of 10 question objects from the list.

QUESTIONNAIRE.questions() // => [{ question: 'QUESTION', answer: 'ANSWER' }, { question: 'QUESTION', answer: 'ANSWER' }...]

Returns an array of question objects with wrong answers (containg number of wrong answers you've specified, in range from 1 to 30) from the list (number of items defaults to 10, accepted range from 1 to 10000).

QUESTIONNAIRE.questions({ howMany: 7, wrong: 1 }) // => [{ question: 'QUESTION', answer: 'ANSWER', wrong: ['WRONG'] }, { question: 'QUESTION', answer: 'ANSWER', wrong: ['WRONG'] }...]

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please try to follow semantic commit messages principle to simplify navigation through git history.

License

MIT © Milos Paunovic