The app should be able to take in a JSON like so:
{
"classes": [
{
"name": "Person",
"attributes": [
{"name": "personId", "type": "String"},
{"name": "firstName", "type": "String"},
{"name": "lastName", "type": "String"},
{"name": "dateOfBirth", "type": "Date"},
{"name": "addressId", "type": "String"},
{"name": "employerId", "type": "String"}
],
"relationships": [
{"name": "address", "type": "Address", "multiplicity": "1"},
{"name": "employer", "type": "Employer", "multiplicity": "1"}
]
},
{
"name": "Address",
"attributes": [
{"name": "addressId", "type": "String"},
{"name": "street", "type": "String"},
{"name": "city", "type": "String"},
{"name": "state", "type": "String"},
{"name": "postalCode", "type": "String"},
{"name": "country", "type": "String"}
],
"relationships": []
},
{
"name": "Employer",
"attributes": [
{"name": "employerId", "type": "String"},
{"name": "companyName", "type": "String"},
{"name": "addressId", "type": "String"}
],
"relationships": [
{"name": "address", "type": "Address", "multiplicity": "1"},
{"name": "employees", "type": "Person", "multiplicity": "0..*"}
]
},
{
"name": "Paycheck",
"attributes": [
{"name": "paycheckId", "type": "String"},
{"name": "personId", "type": "String"},
{"name": "employerId", "type": "String"},
{"name": "amount", "type": "Double"},
{"name": "dateIssued", "type": "Date"}
],
"relationships": [
{"name": "person", "type": "Person", "multiplicity": "1"},
{"name": "employer", "type": "Employer", "multiplicity": "1"}
]
}
]
}
And use the [login to view URL] library to render a diagram containing each class as a node, with a list of each property and type, and lines to indicate relationships with other classes.
This should take 10 hours or less.
Upon acceptance, we will provide a Github repository to use for source control.