A scalable distributed backend for a food-ordering app.
Back
A scalable distributed backend for a food-ordering app.
QEats is a popular food ordering app that allows users to browse and order their favorite dishes from nearby restaurants. During the course of this Micro-Experience, developers build different parts of the QEats backend which is a Spring Boot application. Several REST API endpoints are implemented to query restaurant information and place food orders. To give a sense of real-world problems, production issues are introduced for the developer to investigate using Scientific Debugging methods. Along with this, the developer is expected to improve the app performance under large load scenarios as well as include an advanced search feature in the app.
Scope of work:
Implement GET /API/v1/restaurants and the corresponding request handler and response methods.
Use Mockito to enable the development of the relevant MVCS layers independently.
Retrieve a list of restaurants from MongoDB based on a user location.
Skills used:
Spring Boot, Spring Data, REST API, Jackson, Mockito, JUnit, MongoDB
Image(s):
Scope of work:
Debug QEats app crashes from backend leveraging log messages and structured debugging techniques.
Use IDE features (breakpoints) and assert statements to identify the root cause.
Skills used:
Scientific Debugging
Scope of work:
Employ JMeter or load testing to expose performance issues.
Identify DB queries contributing to degradation in performance.
Use a Redis cache to alleviate read performance.
Skills used:
Redis, JMeter
Image(s):