A daily balance checking app where user can login, register and transfer any desired amount to selected payee.
User can login only with valid username and password. Login button would be enabled after adding both inputs valid. To login user must have internet available. If internet un available would show proper message. If provided credentials are not registered then can go to register.
a simple username, password based registration. User would be taken back to login after successful registration. In the event of internet unavailablity -> proper message would be shown by Toast
Shows users account no, accound holder name and remaining balance. Also shows all the transactions made each day. Click refresh button to refresh and observe new balance,transactions data. Clicking log out would clear all user data and log out of the app.
Click on payee from the drop down, write a valid amount, an optional descriotion and click Make transfer. To transfer any balance. Click back button / back navigation menu on top bar to get back to the dashboard screen.
To deploy this project download code from master
branch ,
run project on Android studio (tested on Android studio bumblbee), JDK 1.8 and emulator/physical device with minimum sdk level 21. Android name: Lollipop, version 5+
Unit testing for all API available in com.sbr.mdt package /test directory. Run as test to check all unit tests.
The application full flow has been tested in Android 21, 28 and 30 version.
https://github.com/sbrishta/mdt-homework-instruction#apis-usage
The app written in Kotlin. Application follows MVVM architecture design pattern. Retrofit Library 2.9 version used to call API. Source code has a feature based structure:
src/
feature/
data/
all model classes required to handle API integration with UI
repository/
Communicator between API and ViewModel
ui/
ViewModel : acts as controller of UI actions, requests data from repository,
feeds data as Observable LiveData to UI
Activity: Screens showcasing all data and user input actions
/util
all common files and helper classes
/api
retrofit api instance builder configuration
all api interfaces