99[ ![ MySQL] ( https://img.shields.io/badge/MySQL-4479A1?style=for-the-badge&logo=mysql&logoColor=white )] ( https://www.mysql.com/ )
1010[ ![ TailwindCSS] ( https://img.shields.io/badge/Tailwind_CSS-38B2AC?style=for-the-badge&logo=tailwind-css&logoColor=white )] ( https://tailwindcss.com/ )
1111[ ![ Node.js] ( https://img.shields.io/badge/Node.js-339933?style=for-the-badge&logo=nodedotjs&logoColor=white )] ( https://nodejs.org/ )
12+ [ ![ Finnhub] ( https://img.shields.io/badge/Finnhub-1B1B1B?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMyA2aDJsMTUgMk0xNyA2djE0TTcgMTZoMTAiLz48L3N2Zz4= )] ( https://finnhub.io/ )
1213
1314<p align =" center " >
1415 <strong >A modern, responsive stock portfolio tracker built with React and Node.js</strong >
2829- 👀 ** Watchlist** - Monitor potential investments
2930- 🌓 ** Dark/Light Mode** - Easy on the eyes, day and night
3031- 📱 ** Fully Responsive** - Perfect on desktop and mobile
31- - 🔄 ** Live Updates** - Stock prices update automatically
32- - 📈 ** Price History** - Visualize stock performance
32+ - 🔄 ** Live Updates** - Real-time stock prices via Finnhub API
33+ - 📈 ** Price History** - Visualize stock performance with historical data
34+ - 💹 ** Market Data** - Real-time quotes and market status tracking
35+ - 🎯 ** Price Targets** - Set and monitor stock price targets
3336
3437## 🚀 Quick Start
3538
3841- Node.js 14+
3942- npm or yarn
4043- MySQL
44+ - Finnhub API Key (get one at [ finnhub.io] ( https://finnhub.io/ ) )
4145
4246### Frontend Setup
4347
@@ -71,6 +75,7 @@ npm install
7175DATABASE_URL=mysql://user:password@localhost:3306/portfolio_tracker
7276PORT=5000
7377NODE_ENV=development
78+ FINNHUB_API_KEY=your_finnhub_api_key
7479```
7580
76813 . Run migrations and start:
@@ -121,6 +126,7 @@ DELETE /api/watchlist/:id # Remove from watchlist
121126- ** Framework** : [ Express] ( https://expressjs.com/ ) - Web framework for Node.js
122127- ** Database** : [ MySQL] ( https://www.mysql.com/ ) - Open-source relational database
123128- ** ORM** : [ Sequelize] ( https://sequelize.org/ ) - Modern TypeScript and Node.js ORM
129+ - ** Market Data** : [ Finnhub] ( https://finnhub.io/ ) - Real-time RESTful APIs for stocks
124130- ** API Documentation** : OpenAPI/Swagger
125131
126132### 🚀 DevOps & Infrastructure
@@ -147,11 +153,12 @@ DELETE /api/watchlist/:id # Remove from watchlist
147153
148154## ⚠️ Limitations
149155
150- - Uses simulated stock data
156+ - Uses simulated stock data when Finnhub API rate limit is reached
151157- Single-user environment
152158- Price updates every minute
153159- Best viewed in modern browsers
154160- Backend spins down after 15 minutes of inactivity and needs time to restart
161+ - Limited to 60 API calls per minute (Finnhub free tier)
155162
156163## 📄 License
157164
0 commit comments