A real-time analytics dashboard built with React, Chart.js & Node.js
Live weather, stocks, and news in one sleek, responsive UI.
| Feature | Description |
|---|---|
| 🌤️ Live Weather Data | Real-time weather updates with automatic location detection |
| 📈 Stock Market Tracker | Live stock prices and market trends at a glance |
| 📰 News Aggregator | Curated news headlines from multiple sources |
| 🎨 Dark/Light Theme | Seamless theme toggle for comfortable viewing |
| 📱 Responsive Design | Works flawlessly on mobile, tablet, and desktop |
| 📊 Interactive Charts | Beautiful, animated charts powered by Chart.js |
| ⚡ Real-Time Updates | WebSocket integration for live data streaming |
| 🔐 Secure APIs | Encrypted API calls with rate limiting |
- 🌐 OpenWeatherMap - Weather data
- 📊 Alpha Vantage - Stock market data
- 📰 NewsAPI - News aggregation
The Smart Dashboard provides a modern, unified interface for monitoring real-time data across multiple sources:
┌─────────────────────────────────────────────────────────────┐
│ 📊 SMART DASHBOARD ☀️/🌙 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 🌤️ WEATHER 📈 STOCKS 📰 HEADLINES │
│ ┌──────────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Temp: 72°F │ │ AAPL: $180 │ │ Market surge │ │
│ │ Humidity: 65% │ │ MSFT: $340 │ │ New tech │ │
│ │ Wind: 12 mph │ │ GOOGL: $125 │ │ AI advances │ │
│ │ Clear, Sunny ☀️ │ │ +2.5% today │ │ Updates... │ │
│ └──────────────────┘ └──────────────┘ └──────────────┘ │
│ │
│ 📊 INTERACTIVE ANALYTICS │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ Chart.js Visualization │ │
│ │ ▁ ▂ ▃ ▄ ▅ ▆ ▇ █ ▇ ▆ ▅ ▄ ▃ ▂ ▁ Real-time updates │ │
│ │ Stock prices, trends, and KPI analytics │ │
│ └──────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
Features Include:
- Live weather data with location detection
- Real-time stock market tracking
- Curated news aggregation
- Dark & Light mode toggle
- Fully responsive design
- Beautiful animated charts
smart-dashboard/
├── src/
│ ├── components/
│ │ ├── Dashboard.jsx
│ │ ├── Chart.jsx
│ │ ├── Weather.jsx
│ │ ├── StockTracker.jsx
│ │ └── NewsCard.jsx
│ ├── pages/
│ │ ├── Home.jsx
│ │ └── Settings.jsx
│ ├── hooks/
│ │ ├── useWeather.js
│ │ ├── useStocks.js
│ │ └── useNews.js
│ ├── styles/
│ │ └── globals.css
│ ├── App.jsx
│ └── index.js
├── server/
│ ├── routes/
│ │ ├── weather.js
│ │ ├── stocks.js
│ │ └── news.js
│ ├── controllers/
│ │ └── dashboardController.js
│ ├── middleware/
│ │ └── auth.js
│ └── server.js
├── public/
├── .env.example
├── package.json
└── README.md
- Node.js (v16 or higher)
- npm or yarn
- API Keys for:
- Clone the repository
git clone https://github.com/razinahmed/smart-dashboard.git
cd smart-dashboard- Install dependencies
npm install- Set up environment variables
cp .env.example .envThen add your API keys to .env:
REACT_APP_WEATHER_API_KEY=your_openweathermap_key
REACT_APP_STOCK_API_KEY=your_alphavantage_key
REACT_APP_NEWS_API_KEY=your_newsapi_key- Start the development server
npm run dev- Open in browser
http://localhost:3000
docker build -t smart-dashboard .
docker run -p 3000:3000 smart-dashboard| Method | Endpoint | Description |
|---|---|---|
GET |
/api/weather |
Get current weather data |
GET |
/api/weather/:location |
Get weather for specific location |
GET |
/api/stocks |
Get trending stocks |
GET |
/api/stocks/:symbol |
Get specific stock data |
GET |
/api/news |
Get latest news |
GET |
/api/news/:category |
Get news by category |
POST |
/api/dashboard/save |
Save dashboard preferences |
GET |
/api/dashboard/config |
Get dashboard configuration |
# Start development server
npm run dev
# Build for production
npm run build
# Run tests
npm test
# Run linter
npm run lint
# Format code
npm run formatWe welcome contributions! Please follow these steps:
-
Fork the repository
git clone https://github.com/yourusername/smart-dashboard.git
-
Create a feature branch
git checkout -b feature/amazing-feature
-
Commit your changes
git commit -m 'Add amazing feature' -
Push to your branch
git push origin feature/amazing-feature
-
Open a Pull Request
- Describe your changes clearly
- Link any related issues
- Ensure all tests pass
- Follow ESLint configuration
- Write meaningful commit messages
- Add tests for new features
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2024 Abdul Rasak V
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
- 🐛 Found a bug? Open an issue
- 💡 Have a feature request? Let us know
- 📧 Email: contact@example.com
- 🐙 GitHub: @razinahmed
