Techlution Form Builder
Install
$ npm install @techlution/form-builder
Setup
At your system entry point, you will have to initiate and provide your API key.
require('@techlution/form-builder').config({
apiKey: '<your api key>',
env: 'dev|stag|prod'
})
Quick Start Guide
Form
const { Form } = require('@techlution/form-builder');
// create a Form instance
const form = new Form({
name: '<form name>',
description: '<form description>',
});
Section
// add a Section with default behaviour
const section = await form.addSection();
// or create a standalone Section and add it to the form
const { Section } = require('@techlution/form-builder');
const section2 = new Section();
await form.addSection(section2);
Question
// finally, add a Question to the Section
const question = await section.addQuestion({
displayText: 'Testing Question',
key: 'test',
});
// or, similar to Section, create a Question and add it to the section
const { Question } = require('@techlution/form-builder');
const question2 = new Question({
displayText: 'Testing Question',
key: 'test',
});
await section.addQuestion(question2);
// how about a list of questions?
const Questions = await section.addQuestions([
{
displayText: 'Testing Question',
key: 'test',
},
new Question({
displayText: 'Testing Question',
key: 'test',
}),
]);
Form Usage
// start a form filling session
const { Session } = require('@techlution/form-builder');
const session = await Session.start({ Form: form.id });
// then get the current section and questions
const section = await session.getSection();
const questions = section.Questions;
// skipping a section
const nextSection = await session.getNextSection();
// go back to the previous section
const previousSection = await nextSection.getPreviousSection();
section.id === previousSection.id // true
// submit answer
const answers = { answer1: true }
await session.submit(answers);
// retrieve all answers
const { Values } = session;
Deletion
await Question.delete(id);
await questionInstance.delete();
await Section.delete(id);
await sectionInstance.delete();
await Form.delete(id);
await formInstance.delete();
await Session.delete(id);
await sessionInstance.delete();
Road Map
- [x] Create a Form
- [x] Create Sections in a Form
- [x] Create Questions in a Section
- [x] Create a Form filling Session
- [x] Create a Section in a Form
- [x] Resume a Section
- [x] Skip a Section
- [x] Go back to Previous Section
- [x] Submit Answers
- [x] Finish the Form
- [x] Export the values
- [x] Delete Resources
- [ ] Create Question Template
- [ ] Create Session Template