https://github.com/pranjalkatiyar/truefoundry-frontend-assessment
Deployment link
https://github.com/pranjalkatiyar/truefoundry-frontend-assessment
dynamic forms json jsonschema material-ui react reactjs
Last synced: 3 months ago
JSON representation
Deployment link
- Host: GitHub
- URL: https://github.com/pranjalkatiyar/truefoundry-frontend-assessment
- Owner: pranjalkatiyar
- Created: 2023-11-24T14:33:18.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-11-24T14:33:26.000Z (over 1 year ago)
- Last Synced: 2025-04-05T11:42:40.808Z (3 months ago)
- Topics: dynamic, forms, json, jsonschema, material-ui, react, reactjs
- Language: JavaScript
- Homepage: https://main--shimmering-twilight-c80cb3.netlify.app/
- Size: 519 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Run it locally
1. Clone the repo
2. Run `npm install`
3. Now run `npm start` to run it locally# TrueFoundry Frontend Assessment Screenshots
## PASTA TEST CASE EXAMPLE
## PIZZA TEST CASE EXAMPLE

## Sample JSON
## PASTA STORE
```
[
{
"sort": 1,
"label": "Pasta Name",
"description": "",
"validate": {
"required": true,
"immutable": false
},
"jsonKey": "name",
"uiType": "Input",
"icon": "",
"level": 0,
"placeholder": ""
},
{
"sort": 10001,
"label": "Pasta_type",
"description": "",
"validate": {
"required": true,
"immutable": false
},
"jsonKey": "pasta_type",
"uiType": "Group",
"icon": "",
"level": 0,
"placeholder": "",
"subParameters": [
{
"sort": 1,
"label": "Sauce",
"description": "",
"validate": {
"required": true,
"options": [
{
"label": "Red",
"value": "Red",
"description": "",
"icon": ""
},
{
"label": "White",
"value": "White",
"description": "",
"icon": ""
},
{
"label": "Pesto",
"value": "Pesto",
"description": "",
"icon": ""
}
],
"defaultValue": "Red",
"immutable": false
},
"jsonKey": "sauce",
"uiType": "Select",
"icon": "",
"level": 1,
"placeholder": ""
},
{
"sort": 3,
"label": "Topping_type",
"description": "",
"validate": {
"required": true,
"options": [
{
"label": "Veg",
"value": "Veg",
"description": "",
"icon": ""
},
{
"label": "Mushroom",
"value": "Mushroom",
"description": "",
"icon": ""
},
{
"label": "Chicken",
"value": "Chicken",
"description": "",
"icon": ""
},
{
"label": "Prawns",
"value": "Prawns",
"description": "",
"icon": ""
}
],
"defaultValue": "Veg",
"immutable": false
},
"jsonKey": "topping_type",
"uiType": "Select",
"icon": "",
"level": 1,
"placeholder": ""
},
{
"sort": 5,
"label": "Cheese",
"description": "",
"validate": {
"options": [
{
"label": "Cheddar",
"value": "Cheddar",
"description": "",
"icon": ""
},
{
"label": "Mozzarella",
"value": "Mozzarella",
"description": "",
"icon": ""
},
{
"label": "Parmesan",
"value": "Parmesan",
"description": "",
"icon": ""
},
{
"label": "Feta",
"value": "Feta",
"description": "",
"icon": ""
},
{
"label": "Gouda",
"value": "Gouda",
"description": "",
"icon": ""
}
],
"defaultValue": "Cheddar",
"immutable": false
},
"jsonKey": "cheese",
"uiType": "Select",
"icon": "",
"level": 1,
"placeholder": ""
}
]
},
{
"sort": 10002,
"label": "Portion",
"description": "",
"validate": {
"options": [
{
"label": "Medium",
"value": "Medium",
"description": "",
"icon": ""
},
{
"label": "Small",
"value": "Small",
"description": "",
"icon": ""
},
{
"label": "Large",
"value": "Large",
"description": "",
"icon": ""
}
],
"defaultValue": "Medium",
"immutable": false
},
"jsonKey": "portion",
"uiType": "Select",
"icon": "",
"level": 0,
"placeholder": ""
}
]
```## PIZZA STORE
```
[
{
"sort": 1,
"label": "Pizza Name",
"description": "",
"validate": {
"required": true,
"immutable": false
},
"jsonKey": "name",
"uiType": "Input",
"icon": "",
"level": 0,
"placeholder": ""
},
{
"sort": 4,
"label": "Pizza_type",
"description": "",
"validate": {
"required": true,
"immutable": false
},
"jsonKey": "pizza_type",
"uiType": "Group",
"icon": "",
"level": 0,
"placeholder": "",
"subParameters": [
{
"sort": 0,
"label": "Pizza_type Type",
"description": "",
"validate": {
"required": true,
"options": [
{
"label": "Naples Style Pizza",
"value": "naples",
"description": "",
"icon": ""
},
{
"label": "New York Style Pizza",
"value": "newyork",
"description": "",
"icon": ""
}
],
"defaultValue": "naples",
"immutable": false
},
"jsonKey": "type",
"uiType": "Radio",
"icon": "",
"level": 1,
"placeholder": ""
},
{
"sort": 10001,
"label": "Naples Style Pizza",
"description": "",
"validate": {
"required": true,
"immutable": false
},
"jsonKey": "Naples",
"uiType": "Ignore",
"icon": "",
"level": 1,
"placeholder": "",
"conditions": [
{
"jsonKey": "pizza_type.type",
"op": "==",
"value": "naples",
"action": "enable"
}
],
"subParameters": [
{
"sort": 10000,
"label": "Slices",
"description": "",
"validate": {
"required": true,
"options": [
{
"label": "1",
"value": "1",
"description": "",
"icon": ""
},
{
"label": "2",
"value": "2",
"description": "",
"icon": ""
},
{
"label": "3",
"value": "3",
"description": "",
"icon": ""
},
{
"label": "4",
"value": "4",
"description": "",
"icon": ""
},
{
"label": "5",
"value": "5",
"description": "",
"icon": ""
}
],
"defaultValue": "1",
"immutable": false
},
"jsonKey": "slices",
"uiType": "Select",
"icon": "",
"level": 2,
"placeholder": ""
},
{
"sort": 10001,
"label": "Type",
"description": "",
"validate": {
"required": true,
"pattern": "naples",
"immutable": false
},
"jsonKey": "type",
"uiType": "Input",
"icon": "",
"level": 2,
"placeholder": "",
"disable": true
}
]
},
{
"sort": 10002,
"label": "New York Style Pizza",
"description": "",
"validate": {
"required": true,
"immutable": false
},
"jsonKey": "NewYork",
"uiType": "Ignore",
"icon": "",
"level": 1,
"placeholder": "",
"conditions": [
{
"jsonKey": "pizza_type.type",
"op": "==",
"value": "newyork",
"action": "enable"
}
],
"subParameters": [
{
"sort": 10000,
"label": "Cheeseburst",
"description": "",
"validate": {
"required": true,
"defaultValue": false,
"immutable": false
},
"jsonKey": "cheeseburst",
"uiType": "Switch",
"icon": "",
"level": 2,
"placeholder": ""
},
{
"sort": 10001,
"label": "Type",
"description": "",
"validate": {
"required": true,
"pattern": "newyork",
"immutable": false
},
"jsonKey": "type",
"uiType": "Input",
"icon": "",
"level": 2,
"placeholder": "",
"disable": true
}
]
}
]
},
{
"sort": 10002,
"label": "Toppings",
"description": "",
"validate": {
"required": true,
"immutable": false
},
"jsonKey": "toppings",
"uiType": "Group",
"icon": "",
"level": 0,
"placeholder": "",
"subParameters": [
{
"sort": 1,
"label": "Sauce",
"description": "",
"validate": {
"required": true,
"options": [
{
"label": "Red",
"value": "Red",
"description": "",
"icon": ""
},
{
"label": "White",
"value": "White",
"description": "",
"icon": ""
},
{
"label": "Pesto",
"value": "Pesto",
"description": "",
"icon": ""
}
],
"defaultValue": "Red",
"immutable": false
},
"jsonKey": "sauce",
"uiType": "Select",
"icon": "",
"level": 1,
"placeholder": ""
},
{
"sort": 3,
"label": "Main_topping",
"description": "",
"validate": {
"required": true,
"options": [
{
"label": "Mushroom",
"value": "Mushroom",
"description": "",
"icon": ""
},
{
"label": "Chicken",
"value": "Chicken",
"description": "",
"icon": ""
},
{
"label": "Jalapenos",
"value": "Jalapenos",
"description": "",
"icon": ""
}
],
"defaultValue": "Mushroom",
"immutable": false
},
"jsonKey": "main_topping",
"uiType": "Select",
"icon": "",
"level": 1,
"placeholder": ""
},
{
"sort": 6,
"label": "Include_seasonings",
"description": "",
"validate": {
"required": true,
"defaultValue": true,
"immutable": false
},
"jsonKey": "include_seasonings",
"uiType": "Switch",
"icon": "",
"level": 1,
"placeholder": ""
},
{
"sort": 6,
"label": "Second_topping",
"description": "",
"validate": {
"options": [
{
"label": "Anchovies",
"value": "Anchovies",
"description": "",
"icon": ""
},
{
"label": "Pineapple",
"value": "Pineapple",
"description": "",
"icon": ""
},
{
"label": "Potatoes",
"value": "Potatoes",
"description": "",
"icon": ""
}
],
"defaultValue": "Anchovies",
"immutable": false
},
"jsonKey": "second_topping",
"uiType": "Select",
"icon": "",
"level": 1,
"placeholder": ""
}
]
},
{
"sort": 10003,
"label": "Size",
"description": "",
"validate": {
"options": [
{
"label": "Medium",
"value": "Medium",
"description": "",
"icon": ""
},
{
"label": "Small",
"value": "Small",
"description": "",
"icon": ""
},
{
"label": "Large",
"value": "Large",
"description": "",
"icon": ""
}
],
"defaultValue": "Medium",
"immutable": false
},
"jsonKey": "size",
"uiType": "Select",
"icon": "",
"level": 0,
"placeholder": ""
}
]
```