The project is divided into two services, api and web. The api service fetches realtime and historical data from yahoo finance and exposes a rest stream api to the web app which is an Angular web application for displaying and updating the streamed data.
Install docker.
Build the api service with mvn clean install
in api directory.
Build the web app with ng build --prod
in web directory.
Create Docker images with docker-compose
in project root.
Create docker containers and run them with docker run
.
Start api service by run StonkMonitorApp
. Start web app with ng serve
in the web directory.
/quote/{symbol}
GET single quote symbol data
Param: symbol=[alphanumeric]
/stream/quotes/{industry}
GET stream of all industry specific quotes
Param: industries:[INDICES, TECH, HEALTH, INDUSTRIAL, MEDIA, MOBILITY, FINANCE, FOOD, RETAIL, ENERGY]
/stream/quotes/{industry}/{category}
GET stream of subindustry quotes
Param: categories:[ETF, FANG, MANUFACTURING, SEMICONDUCTOR, ECOMMERCE, SOFTWARE, CLOUD, SAAS, SECURITY, FOOD, GASTRONOMY, MATERIALS, CHEMICALS, TELECOMMUNICATION, REALESTATE, PHARMA, MEDTECH, BIOTECH, DELIVERY, APPAREL, SPORTS, CONVENTIONAL, RENEWABLE, AKKU, AEROSPACE, TRAVEL, AUTOMOBILE, PAYMENT, BANK, EXCHANGE, RENTAL, RECYCLING, GAMES, TELEVISION, MUSIC, CHINA, CONSUMER, SERVICES, OTHER, SHIPPING]
/stream/quotes/{industry}/{page}
GET stream of industry quotes with paging
Param: page=[integer]
/stream/quotes/{industry}/{page}?{sortProperty}&{sortDirection}
GET stream of sorted industry quotes with paging:
Param: sortProperties:=[name, dayChangePercent, fiftyDayAverageChangePercent, twoHundredDayAverageChangePercent, fiftyTwoWeekLowChangePercent, fiftyTwoWeekHighChangePercent, marketCap]
Param: sortDirection:[ascending, descending]