debmalya / stock-price-movement

stock price movement analysis

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

stock-price-movement

stock price movement display

Prerequisites

  • Maven 3.6.1
  • JDK >= 8

Technologies

  • Spring ( Spring-boot, Webflux )
  • Angular
  • SSE ( Server Sent Event )
  • Event stream.
  • Maven frontend plugin

How to run it

About data

This is not real data. All data are generated randomly . Price range is 50. Refresh interval is 1 second.

Code Sample

  • Server Sent Event
  @GetMapping(value="/stream-sse/[{symbols}]")
  public Flux<ServerSentEvent<StockPrice[]>> streamEvents(@PathVariable List<String> symbols) {
    return Flux.interval(Duration.ofSeconds(5))
      .map(e -> ServerSentEvent.<StockPrice[]> builder()
        .id(String.valueOf(e))
        .event("message")
        .data(getPrice(symbols))
        .comment("Periodic stock price update")
        .build());
  }
  • Observable
  getStockPriceList(): Observable<StockPrice[]> {
    return new Observable((observer) => {

      let eventSource = new EventSource(this.stockPriceURL);

      eventSource.onmessage = (event) => {
        let json = JSON.parse(event.data);
        if (json !== undefined && json !== '') {
          this.zone.run(() => observer.next(json));
        }
      };


      eventSource.onerror = (error) => {
        if (eventSource.readyState === 0) {
          eventSource.close();
          observer.complete();
        } 
      }


    });
  }

Test code

Work in progress.

References

About

stock price movement analysis


Languages

Language:TypeScript 39.6%Language:HTML 34.5%Language:Java 17.1%Language:JavaScript 5.9%Language:CSS 2.4%Language:Shell 0.6%