Draft system to add, update and delete points related to kid activities (transactions). Created for self-learning purpose
Backend service to manage points of users. Based on Spring boot
Controller to process REST API requests from clients
Implements JPA (Java Persistence API)
Embedded hibernate database, storing data in files
Build in docker container
Declare Entity classes for user and transaction
Service in backend that calculates interest points every month. Based on Spring boot
REST client to PointTracker server that update points. Supports schedule and retry mechanism
Mongo DB to persist own data
AMQP message broker (RabbitMQ) consuming notifications of users deleted in PointTracker DB
Build in docker container
Web client implementing REST client via Javascript (Ajax)
Android client. There are four different versions:
Use intent service to retrieve data from the server in a background thread
Broadcast receiver to receive data in UI thread from worker thread asynchronously
Use Retrofit 1.9 for REST API in synchronous way
Popup menu to present list of users
RecycleView to show transaction list
saveInstanceState to save Views states in orientation changes
Serializable to transfer ArrayList of Objects between activities and service
Settings persisted with SharedPreferences and managed with a PreferenceFragment
Unit testing with JUnit with mockito
Use Retrofit 2.1 for REST API in asynchronous way.
No intent service and broadcast receiver since Retrofit 2.1 handle Callbacks in UI thread
Parcelable to transfer ArrayList of Objects between activities and service, instead of Serializable
Add mocking to Unit testing
Implements RxJava for ReactiveX programming for REST API callbacks
Implements Dagger2 (Dependency Injection) for Presenter
Cache memory for offline access using custom interceptor in okhttp client