A nodejs application to watch Cryptocurrency exchanges for the price of BTC/USD pair. using Web socket.
The base was generated using Yo's generator-express-es6.
After forking this repository, clone your version and run the following commands to start using the application.
Review the work done for you and implement your changes.
# make sure you're in the project's directory
cd crypto-market-watcher
# installs project dependencies
npm install
# starts the server
DEBUG=crypto-market-watcher:* npm start
Visit http://localhost:3000 to view the application.
You have been approached by a client who has a healthy interest in Cryptocurrency. He wants to know how the various coins are performing against US Dollars. His Company is mostly interested in Bitcoin. What his team needs is a dashboard that shows the price of Bitcoin at any point in time without having to refresh the browser. They need the pricing information in realtime because that'd influence their decision whether to buy or sell.
- Fork (not clone) this repo
- Implement your solution using HTML, CSS and Javascript (ES6, both at the Backend and the Frontend)
- Open an issue with a link to your fork
Your implementation must include at least the following;
- Improved UI/UX
- Sign up for users at your Client's company
- Login (you are free to use a package such as Passport for Authentication)
- Integration with at least 3 exchanges (with Websocket API for their market data). Examples of such exchanges are Bitstamp, OKCoin, etc.
The following are nice to have features, you can decide not to implement them. It would be a good a learning opportunity to do so though.
- Persist the market data in a PostgreSQL database (node-postgres)
- Allow users to set up alerts for a certain price point
- Anatomy of a Modern Javascript Application
- Building a website using Nodejs
- node-postgres documentation
- Building a Slack Bot with Modern Node.js Workflows (A tutorial on a real world use case of nodejs)
Note: You are not allowed to use a library such as jQuery for traversing/manipulating the DOM.