Aspire App
Take Home Assignment for recruitment of Senior Mobile Engineer
User Story
SHIELD has contacted Aspire to help them manage their cashflow. They want to issue Debit Cards to following super heroes all across the globe. They want the app should carry the superhero's signature theme and display the hero's balance in their native currencies. Taking this huge challenge upon itself, Aspire has come up with this react-native application.
NOTE: THE COLOR THEME AS PER THE XD Design CAN BE FOUND FOR USER BRUCE BANNER; Kindly tap the Load Another Card Button to load from a pool of 7 unique user IDs
This project has been designed as per specifications shared in SR_Doc.pdf Some of the features of the app as of writing of the Readme are as follows:
- Dumb APIs from APIMocha integrated [500 requests/24 hr period]
- Multiple Users with different cases like Currency or Card Details that can be retrieved by tapping on the
Load Another Card
- Custom Splash Screen
- UI Tested on Devices of highly varying screen sizes [Screenshots shared in a later section]
Running the App
This is an expo managed project instead of react-native cli project. Primary reason for making this decision is the ease and quickness with which the project could be made up and running and no native code change was involved.
- Install Node[>12.0] from official website for your development device.
- Install other pakcages to run expo-cli as per instructions shared here
- On your terminal go to a folder where you would like to test this project. Execute the following command to initialize a blank repo.
git init
- Then clone this repository in your initialized repo.
git clone https://github.com/MohMaya/aspire-app-assignment.git
- Now run the following commands to set up Node Modules required for the project.
npm install
- Start the expo server by typing
expo start
- This wll start the metro bundler service.
- Now, to test on
emulator
make sure your environment variables are set up as per recommendations here for --iOS
(https://docs.expo.dev/workflow/ios-simulator/) --Android
(https://docs.expo.dev/workflow/android-studio-emulator/) - To test on
physical devices
, follow the guide as shared here
You can generate Android Project folder and iOS xcodeproject by following the instructions here for iOS and here for Android
Screenshots - Android 11; Large Screen
Screengrab - iOS 14.5; iPhone 8
APIs Used
Notes to evaluator
- Since The APIs are at a free host, the operations might take some time. Kindly check console for logs of API call and response (except Card Details)
- The APIs are dumb APIs i.e. there is no storage at backend and all the data will be static. Ex. Weekly Limit Exhausted will always be 400 after a new limit is set. The Amount of weekly limit will be as specified in the save operation for that instance only.
- All the menu items and tabs in tab bar are perfectly functional. They have been hardcoded as disabled to keep the operation of the App limited to just the shared scope.