Request body for addPerson endpoint
{
personInfo: {
firstName: string (not null)
lastName: string (not null)
middleName: string
suffix: string
maidenName: string
nickName: string
techAlumniChapter: string --> maybe give a list of chapters in the front end to choose from?
classYear: int (not null)
gradYear: int
gradSemester: int
gender: string (accepted values: male. female, other) --> make this a choice in the front end, not something to enter in a text box
}
degrees: [
{
degreeType: string (accepted values: "AS", "BS", "BA", "MS", "PhD", ....) (need to add more of these) --> make a dropdown menu to choose from in front end for this
degreeYear: int (not null),
degreeDescription: string (max 255 chars)
degreeDepartment: string,
degreeCollege: string
},
{
subject,
degreeType,
degreeYear,
degreeDescription
},
....
],
addresses: [
{
address1: string (not null),
address2: string, -- not sure if we need this
city: string (not null),
state: string (not null),
country: string (not null),
zipCode: int,
preferredAddress: boolean
},
{
** ADD ANOTHER ADDRESS HERE IF NECESSARY
}
],
contacts: [
{
contactNumber: string --> i guess this can be a phone nunber, email, etc.
contactType: string --> need to define list: phone, email, ....
preferredContact: boolean
},
..... more contacts if needed
],
involvements: [
involvement1: string,
involvement2: string ,
.... more if needed
]
}
Notes:
- for the front end, try to make user error as hard as possible
example: for gender provide a way to choose from male, female, other rather than have the user type in the gender
- this makes it so that a person can have 0 or many degrees, contacts, involvements, or addresses. If a person does not
have any of these, make the list be empty.
- if any value is not given (example: graduation date for a person who did not graduate), leave that value as null in the
request to the backend server
request body for update person:
{
personInfo: { -- note: pass ALL of the info here, even if it is not updated. Ex: if person only updates their nickname, still send their firstName, lastName, etc. in the request
firstName: string (not null)
lastName: string (not null)
middleName: string
suffix: string
maidenName: string
nickName: string
techAlumniChapter: string
classYear: int (not null)
gradYear: int
gradSemester: int
gender: string (accepted values: male. female, other)
}
degrees: [ -- note: include ONLY the degrees that should be updated
{
peopleDegreeId: int, -- this is not present in createPerson, will need this.
degreeType: string
degreeYear: int (not null),
degreeDescription: string (max 255 chars)
degreeDepartment: string,
degreeCollege: string,
},
....
],
addresses: [ -- note: include ONLY the addresses that should be updated
{
address1: string (not null),
address2: string, -- not sure if we need this
city: string (not null),
state: string (not null),
country: string (not null),
zipCode: int,
preferredAddress: boolean
},
{
** ADD ANOTHER ADDRESS HERE IF NECESSARY
}
],
contacts: [
{
contactNumber: string --> i guess this can be a phone nunber, email, etc.
contactType: string --> need to define list: phone, email, ....
preferredContact: boolean
},
..... more contacts if needed
],
involvements: [
involvement1: string,
involvement2: string ,
.... more if needed
]
}