FinTrack is a full-stack stock trading and portfolio management dashboard. It lets users sign up, log in, view real-time stock prices, place trades, and track their portfolios. The app is built using the MERN stack (MongoDB, Express, React, Node.js) and integrates with the Finnhub API for market data.
| Layer | Technology |
|---|---|
| Frontend | React (Vite), Tailwind CSS, Bootstrap |
| Backend | Node.js, Express |
| Database | MongoDB + Mongoose |
| Auth | JWT + HTTP-only cookies + bcrypt |
| API | AlphaVantage API |
fin\_track/
├── backend/ # Express API server
│ ├── controllers/
│ ├── middleware/
│ ├── routes/
│ ├── models/
│ └── index.js
├── frontend/ # Public-facing React app (signup/login)
│ └── ...
├── dashboard/ # Private user dashboard (portfolio etc.)
│ └── ...
├── screenshots/ # UI screenshots
└── README.md
PORT=3002
MONGODB_URI=mongodb+srv://<username>:<password>@cluster.mongodb.net/fintrack-db
JWT_SECRET=your_jwt_secret
CLIENT_URL=http://localhost:5173REACT_APP_BACKEND_URL=http://localhost:3002
REACT_APP_API_KEY=your_alphavantage_api_keyREACT_APP_BACKEND_URL=http://localhost:3002
REACT_APP_DASHBOARD_URL=http://localhost:5174
REACT_APP_API_KEY=your_alphavantage_api_key🔁 Rename
.env.sampleto.envand update all placeholder values before running.
git clone https://github.com/<your-username>/fin_track.git
cd fin_trackcd backend
npm install
cp .env.sample .env # and update it
npm run devServer runs at http://localhost:3002
cd ../frontend
npm install
cp .env.sample .env
npm run devRuns on http://localhost:5173
cd ../dashboard
npm install
cp .env.sample .env
npm run devDashboard available at http://localhost:5174
| Route | Method | Description |
|---|---|---|
/signup |
POST | Register new user |
/login |
POST | Login and set secure cookie |
/logout |
POST | Log out user |
/verify |
GET | Check if user is authenticated |
/holdings |
GET | Get user's current stock holdings |
/positions |
GET | Fetch all trade positions |
/orders |
POST | Place a buy/sell order |
- 💰 Market data from ALPHA_VANTAGE
- 🎨 UI powered by Bootstrap + TailwindCSS
Vaibhav Tyagi