Skip to content

Server Side Application

Farhad Makiabady edited this page Nov 2, 2018 · 1 revision

Server Side Application

Server Side Picture

Router

  • Dependencies are injected into the Router class, so It's a good file to start reading if you want to get familiar with the program.

Handlers

  • functions that the router injects with dependencies, so that they can handle requests.

ScreenerCache

  • on start grabs the latest screener in elasticsearch
  • screener should be mostly static, so it might be best to hold in memory
    • technical uncertainty.
    • auto refresh cach, ditch cache, make cache refreshable from admin...
  • updates will hit the screener cache and the database

ProgramCache

  • holds all programs in memory
  • program updates overwrite previous program data
  • programs should be mostly static, so it might be best to hold in memory
    • technical uncertainty.
    • auto refresh cach, ditch cache, make cache refreshable from admin...

Notification Engine

  • Used to register queries to programs
  • translates between the application data model and the elasticsearch data model
  • Uses submitted data to find applicable programs
  • generally some of the ugliest code in the app.

general

Because YouCanBenefit is a thick-client application the api-server is somewhat neglected code. There is much opportunity for improvement in general. I'm in favor of doing a full rewrite using nest.js with an eye for modularizing the components and allowing for partial deployments.