You can download the APK here or see the images here.
We need an application to make reservations in a restaurant.
The waiter opens the app, chooses a customer from a list, the app navigates him to a table choosing screen. The waiter chooses the table and the app highlights the chosen table. Every 10 minutes all reservations have to be removed even if the application is closed.
Each customer has First Name, Last Name and Id.
The tables are represented as one-dimensional array of booleans where “true” means that the table is available and “false” that it is not.
- Tables have to be represented as cells on grid. ✔
- Available and unavailable tables have to be easily recognized. ✔
- The app has to also work offline. ✔
- Search option for customers would be a plus. ✔
- Any unspecified details are left to your imagination. ✔
- Unit and instrumentation test coverage.
- Architecture.
- Code style.
- Code extensibility.
- Performance.
- It use the concept of Package by Feature / Domain.
- It use MVP pattern for presentation and to make tests easier.
- It use Dagger for Dependency Injection.
- It use Repository Pattern with OkHttp, Retrofit and Json for data loading.
- It use RxJava with Retrolambda.
- It use ButterKnife for view bind.
- It use SVG.
- It has some unit testing with JUnit and Mockito (see test folder).
- It has some Ui tests with Espresso (see androidTest folder).
- It use Hawk to cache (work offline).
- It use GcmNetworkManager (see TableMapTaskService) to remove reservation every 10 minutes (even if the application was closed).
Important: Unit and Ui tests must run with Mock flavor.
- Support screen rotation / state.
- Better testing coverage.
- Export String resources from Ui.
- Refactoring.
- Style improvement.
- Better git flow / commits.
- Better offline strategies (for example: https://github.com/NYTimes/Store).
- E-mail: [email protected]
- Linkedin.
- Twitter.
- SpeakerDeck.