This repository contains a technical exercise that is to be used for reference during a technical interview. Be prepared to discuss the exercise, the expected results and how you came by them.
ACTS is used as a tool to maintain a record of all the People that have served as Astronauts. When serving as an Astronaut, your Job (Duty) is tracked by your Rank, Title and the Start and End Dates of the Duty.
The People that exist in this system are not all Astronauts. ACTS maintains a master list of People and Duties that are updated from an external service (not controlled by ACTS). The update schedule is determined by the external service.
- A person's astronaut assignment is the Astronaut Duty. Multiple timeline entries 1-to-many
- A person's current astronaut information is stored in the Astronaut Detail table. 1-to-1 (observation: normally 1-to-1 relationships can be merged into one table. Consider it)
- A person's list of astronaut assignments is stored in the Astronaut Duty table. Timeline
The UI is expected to do the following:
-
Successfully implement a web application that demonstrates production level quality. Angular is preferred.
-
Implement call(s) to retrieve an individual's astronaut duties.
-
Display the progress of the process and the results in a visually sophisticated and appealing manner.
-
Retrieve a person by name.
-
Retrieve all people.
-
Person Add/update a person. [ ] Add by name [ ] Update by name [ ] Need to use the pre-processor to determine when to update and prevent duplicates
-
Retrieve Astronaut Duty by name.
-
Astronaut Duty [ ] Add by name [ ] Edit: currentRank, currentDutyTitle, careerStartDate, careerEndDate
- A Person is uniquely identified by their Name. *Caveat: Mike Johnson, Steve Smith, David Brown
- A Person who has not had an astronaut assignment will not have Astronaut records.
- A Person will only ever hold one current Astronaut Duty Title, Start Date, and Rank at a time. *Caveat: Overlapping timelines
- A Person's Current Duty will not have a Duty End Date.
- A Person's Previous Duty End Date is set to the [day before] the New Astronaut Duty Start Date when a new Astronaut Duty is received for a Person.
- A Person is classified as 'Retired' when a Duty Title is 'RETIRED'.
- A Person's Career End Date is [one day before] the Retired Duty Start Date. Changes to Duty records might bring a person out of retirement