marketholidays.info started as a weekend hack project upon a random curiosity around which Stock Markets are open which days. All of this information is already available on the Internets via various sources. Unfortunately most of those sources are cluttered with so much other information, you may not care about.
marketholidays.info simply intends to provide fast and uncluttered information about:
- Stock Market / Exchange Holidays.
- Trading Hours.
- Time to Open, Time to Close (including mid-day session breaks for certain Exchanges)
One particular feature may come in handy is the "timezone" selector. The current time displayed on the site can be changed in proximity to the Exchange of interest.
As of 2018-12-16 marketholidays.info has holiday and trading hours information for the following Exchanges.
- Nasdaq (NASDAQ)
- New York Stock Exchange (NYSE)
- Tokyo Stock Exchange (JPX)
- London Stock Exchange (LSE)
- Amsterdam Stock Exchange(EURONEXT)
- German Stock Exchange (FSX)
- Shanghai Stock Exchange (SSE)
- Bombay Stock Exchange (BSE)
- S. Korea Stock Exchange (KRX)
- Brazilian Stock Exchange (BOVESPA)
- Istanbul Stock Exchange (BIST)
- Johannesburg Stock Exchange (JSE)
marketholidays.info is built on React frontend and Beego backend. For a while, I wanted to build a project from scratch using Go as the backend with a reasonable framework. Beego has proven to be just fine. React's strength goes without saying per its strong backing and footprint in the frontend development. The persistence layer is a Postgres database. The project is deployed and runs on a Kubernetes Cluster of Raspberry Pi (more about that here).
react-boilerplate is a great bundle to start a new project and get familiar i18n(yahoo/react-intl), Saga (redux-saga), Selectors reduxjs/reselect, immutable.js etc. The "generate" feature to create scaffolds for the containers and components is very handy. Inclusion of an Express "devserver" is makes life a bit easier. I.e. dropping a middleware (e.g. here) for the "devserver" as a proxy to the backend makes frontend development a breeze with webpack's hot reload.
This was the first time I used Luxon as a datetime processing library. I surely would use it again due to its ease of use. Although, nothing drastically different from moment.js. It is the same evil both libraries are dealing with. imho, datetime is one of the worst things happened to humanity.
In conclusion, it was a fun project which ate two weekends and I learned a lot. Hope it will be useful for some folks. Of course, open to suggestions. Feel free to drop a note at @codingthings.