To create and choose plan by users' input.
- Clone the project and run
npm installandnpm run startunder the root folder. - Run
npm run buildand pull all data in./buildto static server. - Config home page under
./package.jsonand runnpm run deploy
- Layout showcase
Empty Field:
Error Input:
(When submit button is clicked during error input, it will have shaking animation to alert user.)
Correct Input:
Plan Page: 
- Acceptable and sample input format:
{
"plan": [
{
"name": "Standard Plan",
"element": {
"General": true,
"Specialist": true,
"Physiotherapy": false
},
"price": 0
},
{
"name": "Premium Plan",
"element": {
"General": true,
"Specialist": false
},
"price": 388
}
]
}- More than three plans inputed:
{
"plan": [
{
"name": "Standard Plan",
"element": {
"General": true,
"Specialist": true,
"Physiotherapy": false
},
"price": 0
},
{
"name": "Premium Plan",
"element": {
"General": true,
"Specialist": false
},
"price": 388
},
{
"name": "Premium Plan",
"element": {
"General": true,
"Specialist": false
},
"price": 388
},
{
"name": "Premium Plan",
"element": {
"General": true,
"Specialist": false
},
"price": 388
},
{
"name": "Premium Plan",
"element": {
"General": true,
"Specialist": false
},
"price": 388
},
{
"name": "Premium Plan",
"element": {
"General": true,
"Specialist": false
},
"price": 388
}
]
}- Empty JSON
{}{
"plan": []
}- Plan with no "Name"
{
"plan": [
{
"element": {
"General": true,
"Specialist": true,
"Physiotherapy": false
},
"price": 0
}
]
}- Plan with no "Element"
{
"plan": [
{
"name": "Standard Plan",
"price": 0
}
]
}- Plan with no "Price"
{
"plan": [
{
"name": "Standard Plan",
"element": {
"General": true,
"Specialist": true,
"Physiotherapy": false
}
}
]
}- Responsive layout
(For too many plans inputed, the plan list can be scolled horizontally.)






