Git Product home page Git Product logo

cryptocurrencies-monitors's Introduction

Cryptocurrencies monitors

Apps

  • web: Frontend - Next.js app
  • api: Backend - Nest app
  • redis: Caching service used by backend

Build

To build all apps and packages, run the following command:

docker-compose build

Run

To run all apps and packages, run the following command:

docker-compose up -d

Design related

  • Issue:
    • Cryptonator API is being blocked by Cloudflare browser checking so the application cannot directly fetch from that source
    • Solution: A flexable implementation which allow another provider
    • Enhancement: Since another API may not provide Change data require, a possible solution is to implement a data storage and calculate the Change data ourselves
  • Caching:
    • Use Redis as the Caching service to minimize the number of calls to third party API
    • Use TTL 30 seconds which matches the refreshing time of third party API
    • Need to improve the handling if redis service is down
  • Scalability:
    • Currently it is using Docker Compose to run apps, ideally using k8s can minimize changes to apps/containers but provide the scalability, i.e. multiple backend services can be run
  • Data storage:
    • Currently the application does not use any database service as it is depending on pass through data, if past data will be needed that we should add a database

Timebox

The implementation started at 23 Feb and completed on 27 Feb. Average hours worked per day is 2 - 3. Some blockers faced;

  • Cryptonator API is not a reliable source in my case, need to research another API source
  • This is the first time I used Turbo and Next.js. Blocked by creating an optimized build with Docker

cryptocurrencies-monitors's People

Watchers

Tony Li avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.