The business case is a mobile application that allows the user to authenticate/register and track his/her GPS location in real time.
For the case, I created a mocked RESTful API interface exposing 3 endpoints :
- Authentication endpoint: POST {server_url}/authenticate
- Registration endpoint: POST {server_url}/register
- Registration endpoint: GET {server_url}/profile
The android application has the following functions
- User authentication through RESTful webservice integration
- GPS tracking and Map display
- Instant messages display with Websocket
- Kotlin & Java programming languages
- MVVM architecture (for the projet's package and code structure)
- Android Jetpack (to implement the UI using modern design practices)
- Android Runtime Permissions management
- Navigation component (For user navigation flow through the app)
- Kotlin Coroutines (asynchronous and time consuming process)
- Retrofit2 library (for http requests over the network)
- Reactive streams (Rx Java/Kotlin)
- Google Maps API for the map display
- GPS
- Websockets
- JUnit and Espresso (unit tests and instrumented tests)
- Git