Crio.Do

Crio Summer of Doing 2019 - Project & Skills Summary

Name: Abhishek Chaudhary , GitHub Handle: AbhishekChd

Verified by Crio.Do on 24th June 2019

Crio Summer of Doing - 2019

Duration

May-Jun 2019 (160+ hours)

Program Structure

In Crio Summer Of Doing, student developers build real products in a work-like environment called Micro-Experience, setup by Crio.Do

Scope

Built a distributed system backend for food order platform, QEats, with Java Spring Boot and MongoDB


Performance

Execution Rigour
Technical Knowhow
65/65
Test cases passed

Awards

Bee
Relentless Bee
Never give up
hawk
Skillful Hawk
Perfection is key

Project Summary

Milestone 1 : Get restaurants for a given location

APP_SCREENSHOT

APIs Implemented

/qeats/v1/restaurants getRestaurants

Work Done

Retrieve a list of restaurants using the “/restaurants” API

Implement a simple GET API in Spring Boot using MVCS architecture

Plug in MongoDB to the backend to start getting some real restaurants

Skills Acquired

JUnit, Jackson, Gradle, Spring Boot, Postman, cURL, Java Annotations, Java Interfaces, HTTP Error codes, Lombok, Mockito, ODM, MongoDB, Dependency Injection

Milestone 2: Debugging a production crash

Work Done

Debugging a production issue using Scientific Debugging approach

Skills Acquired

Scientific Debugging

Milestone 3: Tackle home screen load with Caching

APP_SCREENSHOT

Work Done

Solve the user’s problem of home screen loading very slowly due to load by identifying the bottleneck layer

Fixing the bottleneck layer using Caching

Skills Acquired

Performance bottleneck identification, JMeter, Redis

Milestone 4: Search for restaurants by name, food, and their attributes

APP_SCREENSHOT
APP_SCREENSHOT
APP_SCREENSHOT

Work Done

Search for restaurants by name, cuisine, food item, and their attributes

Skills Acquired

MongoDB Querying

Milestone 5: Improve restaurant search performance

Work Done

Parallelize restaurant search using multi-threading

Skills Acquired

Multi-threading

Milestone 6: Implement Cart/Order APIs

APP_SCREENSHOT
APP_SCREENSHOT
APP_SCREENSHOT
APP_SCREENSHOT

APIs Implemented

/qeats/v1/cart getCart

/qeats/v1/cart/item addItem

/qeats/v1/cart/item deleteItem

/qeats/v1/order placeOrder

Work Done

Implement cart APIs - getCart, addItem, deleteItem

Implement order API - placeOrder

Skills Acquired

Recap of all concepts learnt so far , HTTP verbs - POST, DELETE

Milestone 7: Deploy backend in cloud

Work Done

Deploy backend using Docker in cloud

Skills Acquired

Docker,GCloud/AWS

Milestone 8: Implement functionality to asynchronously send SMS or Email

Work Done

Implement functionality to send SMS/Email on order creation without increasing perceived user latency

Skills Acquired

RabbitMQ, External API integration