Skip to content

leonardolariu/crypto-recommendation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

CryptoRecommendation Service

This service is meant to provide crypto data insights

Requirements

The entire list of requirements can be checked here

Solution Overview

  1. Dynamically generate a Spring Batch Job containing
    • a series of steps for loading token data from each resource defined in application.yml - it is very scalable to add new tokens in the future (add a new token symbol and token resource, NO code changes required)
    • an additional step for creating the lookup tables used for improving the performance of future RMQ (Range Minimum/ Maximum Queries) - to understand this solution, check Medium post on Sparse Tables
  2. Create the service logic for answering the RMQ in the requirements
  3. Expose the endpoints for answering the RMQ
  4. Safeguard our API by checking for blacklisted client IPs, missing params, invalid params, constraint violations, etc. before processing any request
  5. Centralize the exception handling logic
  6. Create a documentation for our endpoints using OpenAPI 3.0
  7. Create a Postman collection for both the positive and negative scenarios - very handy for e2e manual testing/ debugging

Solution Complexity

  • Memory Complexity - M * O(NlogN), where M is the number of tokens, N is the maximum number of data points per token
  • Time Complexity - O(1), constant time for the RMQ received on any of the exposed endpoints

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages