Skip to content

Commit 01d636b

Browse files
committed
Update README with MySQL info, badges, and improved aesthetics
1 parent 7d2cc82 commit 01d636b

File tree

1 file changed

+74
-129
lines changed

1 file changed

+74
-129
lines changed

README.md

Lines changed: 74 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -1,177 +1,122 @@
1-
# Stock Portfolio Tracker
1+
# Stock Portfolio Tracker 📈
22

3-
A modern web application for tracking your stock portfolio and watchlist. Built with React, Node.js, and PostgreSQL.
3+
<div align="center">
44

5-
## 🌐 Live Demo
5+
[![Vercel](https://img.shields.io/badge/Vercel-000000?style=for-the-badge&logo=vercel&logoColor=white)](https://portfolio-tracker-hackstyx.vercel.app)
6+
[![Render](https://img.shields.io/badge/Render-46E3B7?style=for-the-badge&logo=render&logoColor=white)](https://portfolio-tracker-backend-y7ne.onrender.com/api)
7+
[![React](https://img.shields.io/badge/React-20232A?style=for-the-badge&logo=react&logoColor=61DAFB)](https://reactjs.org/)
8+
[![Vite](https://img.shields.io/badge/Vite-646CFF?style=for-the-badge&logo=vite&logoColor=white)](https://vitejs.dev/)
9+
[![MySQL](https://img.shields.io/badge/MySQL-4479A1?style=for-the-badge&logo=mysql&logoColor=white)](https://www.mysql.com/)
10+
[![TailwindCSS](https://img.shields.io/badge/Tailwind_CSS-38B2AC?style=for-the-badge&logo=tailwind-css&logoColor=white)](https://tailwindcss.com/)
11+
[![Node.js](https://img.shields.io/badge/Node.js-339933?style=for-the-badge&logo=nodedotjs&logoColor=white)](https://nodejs.org/)
612

7-
- Frontend: [https://portfolio-tracker-hackstyx.vercel.app](https://portfolio-tracker-hackstyx.vercel.app)
8-
- Backend API: [https://portfolio-tracker-backend-y7ne.onrender.com/api](https://portfolio-tracker-backend-y7ne.onrender.com/api)
13+
<p align="center">
14+
<strong>A modern, responsive stock portfolio tracker built with React and Node.js</strong>
15+
</p>
16+
17+
[Live Demo](https://portfolio-tracker-hackstyx.vercel.app)[API Endpoint](https://portfolio-tracker-backend-y7ne.onrender.com/api)[Report Bug](https://github.com/HackStyx/portfolio-tracker/issues)
18+
19+
![Portfolio Dashboard](https://i.imgur.com/your-screenshot.png)
20+
21+
</div>
922

1023
## ✨ Features
1124

12-
- 📊 Real-time stock portfolio tracking
13-
- 👀 Watchlist management
14-
- 📈 Stock price history visualization
15-
- 🌓 Dark/Light theme support
16-
- 📱 Responsive design
17-
- 🔄 Automatic price updates
25+
- 📊 **Portfolio Management** - Track your stocks with real-time updates
26+
- 👀 **Watchlist** - Monitor potential investments
27+
- 🌓 **Dark/Light Mode** - Easy on the eyes, day and night
28+
- 📱 **Fully Responsive** - Perfect on desktop and mobile
29+
- 🔄 **Live Updates** - Stock prices update automatically
30+
- 📈 **Price History** - Visualize stock performance
1831

19-
## 🚀 Running Locally
32+
## 🚀 Quick Start
2033

2134
### Prerequisites
2235

23-
- Node.js (v14 or higher)
36+
- Node.js 14+
2437
- npm or yarn
25-
- PostgreSQL database
38+
- MySQL
2639

2740
### Frontend Setup
2841

29-
1. Clone the repository:
42+
1. Clone and install:
3043
```bash
3144
git clone https://github.com/HackStyx/portfolio-tracker.git
3245
cd portfolio-tracker
33-
```
34-
35-
2. Install dependencies:
36-
```bash
3746
npm install
38-
# or
39-
yarn install
4047
```
4148

42-
3. Create a `.env` file in the root directory:
49+
2. Create `.env`:
4350
```env
4451
VITE_API_BASE_URL=http://localhost:5000/api
4552
```
4653

47-
4. Start the development server:
54+
3. Start development server:
4855
```bash
4956
npm run dev
50-
# or
51-
yarn dev
5257
```
5358

54-
The frontend will be available at `http://localhost:5173`
55-
5659
### Backend Setup
5760

58-
1. Navigate to the backend directory:
61+
1. Setup backend:
5962
```bash
6063
cd backend
61-
```
62-
63-
2. Install dependencies:
64-
```bash
6564
npm install
66-
# or
67-
yarn install
6865
```
6966

70-
3. Create a `.env` file in the backend directory:
67+
2. Configure `.env`:
7168
```env
72-
DATABASE_URL=your_postgresql_connection_string
69+
DATABASE_URL=mysql://user:password@localhost:3306/portfolio_tracker
7370
PORT=5000
7471
NODE_ENV=development
7572
```
7673

77-
4. Run database migrations:
74+
3. Run migrations and start:
7875
```bash
7976
npm run migrate
80-
# or
81-
yarn migrate
82-
```
83-
84-
5. Start the backend server:
85-
```bash
8677
npm start
87-
# or
88-
yarn start
8978
```
9079

91-
The API will be available at `http://localhost:5000/api`
92-
93-
## 🔧 Environment Variables
94-
95-
### Frontend (.env)
96-
- `VITE_API_BASE_URL`: Backend API URL
97-
98-
### Backend (.env)
99-
- `DATABASE_URL`: PostgreSQL connection string
100-
- `PORT`: Server port (default: 5000)
101-
- `NODE_ENV`: Environment (development/production)
102-
103-
## 📝 API Documentation
104-
105-
### Endpoints
106-
107-
#### Stocks
108-
- `GET /api/stocks` - Get all stocks in portfolio
109-
- `POST /api/stocks` - Add a new stock
110-
- `PUT /api/stocks/:id` - Update a stock
111-
- `DELETE /api/stocks/:id` - Delete a stock
112-
- `GET /api/stocks/:ticker/historical` - Get historical data
113-
114-
#### Watchlist
115-
- `GET /api/watchlist` - Get watchlist
116-
- `POST /api/watchlist` - Add to watchlist
117-
- `PUT /api/watchlist/:id` - Update watchlist item
118-
- `DELETE /api/watchlist/:id` - Remove from watchlist
119-
- `POST /api/watchlist/sync-portfolio` - Sync with portfolio
120-
121-
## ⚠️ Assumptions & Limitations
122-
123-
1. **Stock Data**
124-
- Uses simulated stock data for demonstration
125-
- Real-time price updates are simulated
126-
- Historical data is generated for demonstration
127-
128-
2. **Authentication**
129-
- Currently uses a simple reset-based logout
130-
- No user authentication system
131-
- Single user environment
132-
133-
3. **Performance**
134-
- Limited to managing reasonable portfolio sizes
135-
- Price updates every minute
136-
- Historical data limited to recent periods
137-
138-
4. **Browser Support**
139-
- Requires modern browsers
140-
- Best experienced on Chrome, Firefox, Safari
141-
- Requires JavaScript enabled
142-
143-
## 🛠️ Tech Stack
144-
145-
- **Frontend**
146-
- React
147-
- Vite
148-
- TailwindCSS
149-
- Framer Motion
150-
- Tremor
151-
- Axios
152-
153-
- **Backend**
154-
- Node.js
155-
- Express
156-
- PostgreSQL
157-
- Knex.js
158-
- Node-Postgres
159-
160-
## 📱 Responsive Design
161-
162-
- Fully responsive layout
163-
- Mobile-first approach
164-
- Adaptive UI components
165-
- Touch-friendly interactions
166-
167-
## 🤝 Contributing
168-
169-
1. Fork the repository
170-
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
171-
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
172-
4. Push to the branch (`git push origin feature/AmazingFeature`)
173-
5. Open a Pull Request
80+
## 🔌 API Endpoints
81+
82+
### Portfolio
83+
\`\`\`http
84+
GET /api/stocks # Get portfolio stocks
85+
POST /api/stocks # Add stock
86+
PUT /api/stocks/:id # Update stock
87+
DELETE /api/stocks/:id # Remove stock
88+
\`\`\`
89+
90+
### Watchlist
91+
\`\`\`http
92+
GET /api/watchlist # Get watchlist
93+
POST /api/watchlist # Add to watchlist
94+
PUT /api/watchlist/:id # Update watchlist item
95+
DELETE /api/watchlist/:id # Remove from watchlist
96+
\`\`\`
97+
98+
## ⚡️ Tech Stack
99+
100+
### Frontend
101+
- React + Vite
102+
- TailwindCSS
103+
- Framer Motion
104+
- Tremor Charts
105+
- Axios
106+
107+
### Backend
108+
- Node.js
109+
- Express
110+
- MySQL
111+
- Knex.js
112+
113+
## ⚠️ Limitations
114+
115+
- Uses simulated stock data
116+
- Single-user environment
117+
- Price updates every minute
118+
- Best viewed in modern browsers
174119

175120
## 📄 License
176121

177-
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
122+
MIT © [HackStyx](LICENSE)

0 commit comments

Comments
 (0)