9
9
[ ![ MySQL] ( https://img.shields.io/badge/MySQL-4479A1?style=for-the-badge&logo=mysql&logoColor=white )] ( https://www.mysql.com/ )
10
10
[ ![ TailwindCSS] ( https://img.shields.io/badge/Tailwind_CSS-38B2AC?style=for-the-badge&logo=tailwind-css&logoColor=white )] ( https://tailwindcss.com/ )
11
11
[ ![ 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/ )
12
13
13
14
<p align =" center " >
14
15
<strong >A modern, responsive stock portfolio tracker built with React and Node.js</strong >
28
29
- 👀 ** Watchlist** - Monitor potential investments
29
30
- 🌓 ** Dark/Light Mode** - Easy on the eyes, day and night
30
31
- 📱 ** 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
33
36
34
37
## 🚀 Quick Start
35
38
38
41
- Node.js 14+
39
42
- npm or yarn
40
43
- MySQL
44
+ - Finnhub API Key (get one at [ finnhub.io] ( https://finnhub.io/ ) )
41
45
42
46
### Frontend Setup
43
47
@@ -71,6 +75,7 @@ npm install
71
75
DATABASE_URL=mysql://user:password@localhost:3306/portfolio_tracker
72
76
PORT=5000
73
77
NODE_ENV=development
78
+ FINNHUB_API_KEY=your_finnhub_api_key
74
79
```
75
80
76
81
3 . Run migrations and start:
@@ -121,6 +126,7 @@ DELETE /api/watchlist/:id # Remove from watchlist
121
126
- ** Framework** : [ Express] ( https://expressjs.com/ ) - Web framework for Node.js
122
127
- ** Database** : [ MySQL] ( https://www.mysql.com/ ) - Open-source relational database
123
128
- ** ORM** : [ Sequelize] ( https://sequelize.org/ ) - Modern TypeScript and Node.js ORM
129
+ - ** Market Data** : [ Finnhub] ( https://finnhub.io/ ) - Real-time RESTful APIs for stocks
124
130
- ** API Documentation** : OpenAPI/Swagger
125
131
126
132
### 🚀 DevOps & Infrastructure
@@ -147,11 +153,12 @@ DELETE /api/watchlist/:id # Remove from watchlist
147
153
148
154
## ⚠️ Limitations
149
155
150
- - Uses simulated stock data
156
+ - Uses simulated stock data when Finnhub API rate limit is reached
151
157
- Single-user environment
152
158
- Price updates every minute
153
159
- Best viewed in modern browsers
154
160
- Backend spins down after 15 minutes of inactivity and needs time to restart
161
+ - Limited to 60 API calls per minute (Finnhub free tier)
155
162
156
163
## 📄 License
157
164
0 commit comments