A comprehensive full-stack web application for managing and tracking investment portfolios with real-time market data and automated notifications.
- 🔐 Secure Authentication - JWT-based user authentication with password encryption
- 📈 Portfolio Management - Create, track, and manage multiple investment portfolios
- 💰 Asset Tracking - Monitor stocks, cryptocurrencies, and bonds with real-time data
- 📧 Email Notifications - Automated alerts for price changes and portfolio updates
- 📊 Analytics Dashboard - Visual insights into portfolio performance and ROI
- 🎨 Responsive Design - Optimized for desktop, tablet, and mobile devices
- ⚡ Real-time Updates - Live market data integration with caching for performance
- React.js - Modern UI framework
- Tailwind CSS - Utility-first styling
- Axios - HTTP client
- React Router - Navigation
- Node.js & Express.js - Server framework
- MongoDB & Mongoose - Database
- JWT - Authentication
- Nodemailer - Email service
- Zod - Input validation
- Node-cron - Task scheduling
- Render - Frontend & Backend hosting
- MongoDB Atlas - Cloud database
- Node.js (v16+)
- MongoDB (local or Atlas)
- Gmail account (for email notifications)
Access Application
- Frontend:
http://localhost:5173 - Backend:
http://localhost:8001
crypto-portfolio/
├── backend/
│ ├── auth/ # Authentication module
│ ├── crud-operations/ # Core business logic
│ │ ├── controllers/ # Request handlers
│ │ ├── models/ # Database schemas
│ │ ├── routes/ # API routes
│ │ ├── services/ # Business services
│ │ └── validations/ # Input validation
│ ├── config/ # Database config
│ ├── app.js # Express setup
│ └── server.js # Entry point
│
└── frontend/portfolio/
├── src/
│ ├── components/ # Reusable components
│ ├── pages/ # Page components
│ ├── services/ # API services
│ └── App.jsx # Main app component
└── public/ # Static assets
POST /api/auth/register- User registrationPOST /api/auth/login- User loginGET /api/auth/me- Get current user
GET /api/portfolios- Get all portfoliosPOST /api/portfolios- Create portfolioPUT /api/portfolios/:id- Update portfolioDELETE /api/portfolios/:id- Delete portfolio
GET /api/assets/:portfolioId- Get portfolio assetsPOST /api/assets- Add assetPUT /api/assets/:id- Update assetDELETE /api/assets/:id- Remove asset
GET /api/notifications- Get user notificationsGET /api/notifications/count- Get unread countPUT /api/notifications/:id/read- Mark as read
- Password hashing with bcrypt
- JWT token authentication
- Input validation with Zod
- Rate limiting on API endpoints
- CORS protection
- Helmet security headers
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the ISC License.
- Alpha Vantage API for stock market data
- CoinGecko API for cryptocurrency prices
- MongoDB Atlas for database hosting
- Render for deployment platform
Built with ❤️ using React, Node.js, and MongoDB
⭐ Star this repo if you find it helpful!