Trade Boutique is an intuitive and easy to use virtual stock trading platform.
- Developed with the MEAN Stack
- Designed to scale easily
- Deployed via Heroku
- Real-time price updates
- Six international stock markets
- Financial data available for every company
- Up-to-date financial news
- Information is sent to the client via a REST API using data retrieved from the database
- The database is populated by calls made to several financial news and financial data APIs
- Stock prices are updated in real-time, when the markets are opened, with the help of a Cron Job
- If a symbol that is not in the database is requested, the app will connect to the external APIs and try to get financial data, news and the price for that symbol
- Since the external APIs used are free (therefore not 100% reliable), back-up APIs have also been added.
The platform uses Auth0.com to manage user Sign Up and Log In as well as a financial news API. You will need to set up accounts with these providers and export all the API Keys from a ".config" file located in your root folder. Alternatively, you could set the API Keys as environment variables on a Linux system.
Create a free account and store the Client Secret and Client ID as "AUTH_CLIENT_SECRET" and "AUTH_CLIENT_ID". You will also need to set the Domain and Client ID in Angular, in app.config.js
Create a free account and store the Authorization code in a variable named "RIVER_NEWS_AUTHORIZATION". This service is used as a back-up in case http://finance.yahoo.com/ is not working.
-
Node.js - Server-side language
-
Express.js - Framework for Node
-
MongoDB - Database
-
Mongoose - Object modeling for MongoDB
-
Angular - Front-end framework
-
Angular Material - UI Component Framework
-
NPM - Back-end package manager
-
Bower - Front-end package manager
-
StandardJS - Coding style guide
If you wish to contribute, please let me know and I will send you a TODO list of features that I want to implement in the near future.
- Daniel Nitu - Initial work
This project is licensed under the GPL-3.0 License - see the LICENSE.md file for details