Skip to content

JesseLawler/PrizePicks-pokemon

Repository files navigation

This project was built for assessment purposes of Jesse Lawler (that's me!) by the team at https://PrizePicks.com. It's based on Front_End_Assessment.pdf in the /assets/pdf directory of this repository.

First Off...

  • This was implemented using React-Native, rather than React. (Brenden said that either option was fine.)

Worthy of Mention

  • Prior to this project I had near-zero knowledge of Pokemon, so I may have made incorrect guesses as to what Pokemon users want, what an "evolution" is, etc. But I think I've more than covered the basics.

  • Beyond the Home screen, additional data is presented in raw JSON format - and not at all pretty.

  • I did my coding on Android, and I like the app's feel on Android better than iOS at present. In particular, something about my setup of react-native-vector-icons isn't working on iOS, so I'm using lame hacks to avoid the use of icons on iOS. This definitely would be a top to-fix item if I had more time.

  • I've locked the app in Portrait mode.

Things I Didn't Get To

  • I haven't tested this on tablet-sized devices; I recommend handhelds when you review.

  • I'd have had another button (probably a caret in the upper-right) to hide the Search History panel, in addition to the "hide search history" toggling button that is there now.

  • I haven't given thought to potential concurrency issues, since the app is almost entirely read-only. (I guess certain interface elements such as the Search History could be shared, although why anyone would want that eludes me.)

  • One thing I discovered when I was too deep in to change course: The react-native-paper interface for TextInput doesn't have a focus() function that can be called on it. This annoyed me, because I really would have liked to auto-focus on the text entry the moment the user enters the app, but no luck. (I still like the library, fwiw.)

  • I didn't add any automated testing. There's a trivial jest test to prove it runs, which you can trigger with:

yarn jest

You'll Be Happy To Hear...

  • ESLint yields exactly 0 errors, 0 warnings. Huzzah! Confirm that with:
yarn lint

Running the App

Note: Make sure you have completed the React Native - Environment Setup instructions up through "Creating a new application" step, before proceeding.

Please also be sure that you have Android Studio (which provides you an Android Emulator if you lack a device) and XCode (samesies for iOS) installed on your testing machine.

Get to the right spot.

Open a new terminal from the root of your React Native project.

Run the following commands to start your Android or iOS app:

For Android:

yarn
yarn android

For iOS:

yarn
cd ios
pod install
cd ..
yarn ios

Important Note: On iOS (at least with a physical device), the above commands will install the app, but not launch it. You'll see the generic icon for a new app named PrizePicksDemo which you can then click and open normally.

Congratulations! 🎉

You've successfully run the app. 🥳

Now what?

  • Contact Jesse: (323) 513-8779

Troubleshooting

If you can't get this to work, send appropriate hate-mail to: business@JesseLawler.com