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.
- A person's current astronaut information is stored in the Astronaut Detail table.
- A person's list of astronaut assignments is stored in the Astronaut Duty table.
The REST API is expected to do the following:
- Retrieve a person by name.
- Retrieve all people.
- Add/update a person by name.
- Retrieve Astronaut Duty by name.
- Add an Astronaut Duty.
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.
Overview Examine the code, find and resolve any flaws, if any exist. Identify design patterns and follow or change them. Provide fix(es) and be prepared to describe the changes.
- Generate the database
- This is your source and storage location
- Enforce the rules
- Improve defensive coding
- Add unit tests
- identify the most impactful methods requiring tests
- reach >50% code coverage
- Implement process logging
- Log exceptions
- Log successes
- Store the logs in the database
- A Person is uniquely identified by their Name.
- 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.
- 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.