Crio.Do

Crio Summer of Doing 2019 - Project & Skills Summary

Name: Anugrah Kumar Singhal , GitHub Handle: anugrahsinghal

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
64/65
Test cases passed

Awards

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: 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 6: Deploy backend in cloud

Work Done

Deploy backend using Docker in cloud

Skills Acquired

Docker,GCloud/AWS