FYI: Frontend is out of scope for you.
- The frontend has a DROPDOWN which needs to list DOG BREEDS
- The frontend also has another DROPDOWN which will only be populated with SUB-BREEDS if the BREED selected in the First Dropdown has 1 or many SUB-BREEDS
- The frontend has a page with IMAGES of Dogs which is derived from the selection done in the above 2 DROPDOWNS
- The Page with the images can only show 5 items at a time. Meaning in Frontend there is a PAGINATION system which delivers 1 page at a time (meaning 5 images at a time). Which inturn means backedn should support PAGINATION on its API
SERVER SHOULD MAKE USE OF https://dog.ceo/dog-api/ for all the data that is needed to execute the above tasks.
Along with supporting the above functional requirements below needs to be followed too:
- The backend needs to expose appropriate API's so that the frontend can show the UI
- The backend should also have a CONSISTENT structure for the API Request and Response body.
- All APIs must have a consistent response structure on both SUCCESS or ERROR responses
- Backend coding should follow a consistent, clean coding structure
- Every variable or function should have proper Naming Conventions
- Erors must always be caught with Custom Error Messages
- Correct HTTP response codes should be used
- Most importantly what means will you use to communicate the APIs you built is the key takeway here!