GOAL: Verify candidate can provide a technical solution and follow instructions
REQUIREMENTS:
These requirements are rather high-level and vague. If details are omitted, it is because we will be happy with any of a wide variety of solutions. Don't worry about finding "the" solution. Feel free to be creative with the requirements. Your goal is to impress (but do so with clean code). Create a browser based or native app to provide information on NYC High schools.
- Display a list of NYC High Schools.
- Get your data here: https://data.cityofnewyork.us/Education/DOE-High-School-Directory-2017/s3k6-pzi2
- Selecting a school should show additional information about the school
- Display all the SAT scores - include Math, Reading and Writing.
- SAT data here: https://data.cityofnewyork.us/Education/SAT-Results/f9bf-2cp4
- It is up to you to decide what additional information to display
When creating a name for your project, please use the following naming convention:
YYYYMMDD-[First&LastName]-NYCSchools (Example: 20180101-DanielleBordner-NYCSchools)
In order to prevent you from running down rabbit holes that are less important to us, try to prioritize the following:
- Proper function – requirements met.
- Well constructed, easy-to-follow, commented code (especially comment hacks or workarounds made in the interest of expediency (i.e. // given more time I would prefer to wrap this in a blah blah blah pattern blah blah )).
- Proper separation of concerns and best-practice coding patterns.
- Defensive code that graciously handles unexpected edge cases.
- Demonstrating technologies or techniques you are not already familiar with.
- Unit Tests
- Additional functionality – whatever you see fit.
- For applications that include CocoaPods with their project code, having the Pods included in the code commits as source is recommended. (Even though it goes against the CocoaPods general rules).
- Be sure to use safe area insets.
- Make sure your app is compatible with iPhone X.
- Make sure you are correctly handing any necessary permissions.
- Please make sure you are using Java. If you want to demonstrate the use of Kotlin, we'd rather you use a combination of both.
As mentioned, you are not expected to function in a vacuum. Use all the online resources you can find, and please do contact us with questions or for interim feedback if you desire.