This express server stands up an endpoint at /value that takes the following args: PATH /value/100000 (initial value of vehicle) QUERY ?age (age of vehicle in count of months) QUERY ?owners (count of vehicle owners) QUERY ?mileage (total mileage as integer) QUERY ?collisions (total number of collisions)
Example query:
http://localhost:3000/value/12500.35?&age=60&owners=1&collisions=1&mileage=100000
Expected output:
{ initialValue: "12500.35", estimatedValue: "5145.14" }
You are tasked with writing an algorithm that determines the value of a used car, given several factors.
Given the number of months of how old the car is, reduce its value one-half (0.5) percent. After 10 years, it's value cannot be reduced further by age. This is not cumulative.
For every 1,000 miles on the car, reduce its value by one-fifth of a percent (0.2). Do not consider remaining miles. After 150,000 miles, it's value cannot be reduced further by miles.
If the car has had more than 2 previous owners, reduce its value by twenty-five (25) percent. If the car has had no previous owners, add ten (10) percent of the FINAL car value at the end.
For every reported collision the car has been in, remove two (2) percent of it's value up to five (5) collisions.
Each factor should be off of the result of the previous value in the order of
- AGE
- MILES
- PREVIOUS OWNER
- COLLISION
E.g., Start with the current value of the car, then adjust for age, take that result then adjust for miles, then collision, and finally previous owner.
Note that if previous owner, had a positive effect, then it should be applied AFTER step 4. If a negative effect, then BEFORE step 4.
Write a simple Node/Express server that will accept the parameters as JSON, perform the calculation and return the car value as a JSON Object. No authentication or authorization is required.
No data persistence is required.