Crio Summer of Doing 2019 - Project & Skills Summary
Name: Abhishek Chaudhary , GitHub Handle: AbhishekChd
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
Awards
Project Summary
Milestone 1 : Get restaurants for a given location
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
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
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
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