A personal weekend project – A real-time, responsive dashboard that aggregates all your essential information in one beautiful, mobile-friendly interface. Perfect for your morning routine!
[Deployed On] – https://data-pulse-xvft.vercel.app/
DataPulse was born from a simple need: having all my daily information in one place. As someone who checks crypto prices, stock markets, weather, and news every morning, I wanted a single, beautiful dashboard that could replace multiple browser tabs and apps.
This project represents a focused weekend of development. It's a testament to how much you can build when you combine modern tools, clear requirements, and focused development time.
-
🔄 Real-time Updates: Live data feeds with auto-refresh capabilities
-
📱 Mobile-First Design: Responsive interface that works perfectly on all devices
-
🌙 Dark Mode Support: Beautiful dark/light theme switching
-
⚡ Fast Performance: Optimized with caching and efficient API calls
-
🎨 Modern UI: Clean, intuitive interface built with HeroUI and Tailwind CSS
-
🔧 Highly Configurable: Customizable settings for all data sources
-
Crypto Tracking: Real-time prices for BTC, ETH, and top cryptocurrencies
-
Stock Market: Live stock prices and market movements
-
Weather Information: Current conditions with detailed forecasts
-
News Feed: Curated news from multiple categories
-
Exchange Rates: Real-time currency conversion rates
-
Auto-refresh: Configurable intervals for live data updates
-
Responsive Design: Works seamlessly on desktop, tablet, and mobile
-
Error Handling: Graceful fallbacks when APIs are unavailable
-
Caching System: Optimized performance with Redis caching
-
Settings Management: Persistent user preferences
Frontend:
-
React 18 with Vite
-
HeroUI (NextUI) for components
-
Tailwind CSS for styling
-
Chart.js for data visualization
-
Responsive design with mobile-first approach
Backend:
-
FastAPI (Python) for high-performance API
-
Redis for caching and session management
-
Supabase for database and authentication
-
Multiple third-party APIs integration
Deployment:
-
Docker containerization
-
GitHub Actions CI/CD
-
Render for hosting
-
Supabase for database
┌─────────────────────────────────────────────────────────────────┐
│ Frontend (React) │
├─────────────────────────────────────────────────────────────────┤
│ • Dashboard Component │
│ • TickerCard Component │
│ • ChartComponent │
│ • NewsFeed Component │
│ • RefreshButton Component │
│ • Settings Management │
│ • Dark Mode Toggle │
└─────────────────────────────────────────────────────────────────┘
│
│ REST API Calls
▼
┌─────────────────────────────────────────────────────────────────┐
│ Backend (FastAPI) │
├─────────────────────────────────────────────────────────────────┤
│ • /crypto - Cryptocurrency data │
│ • /stocks - Stock market data │
│ • /weather - Weather information │
│ • /news - News articles │
│ • /exchange-rate - Currency rates │
│ • /refresh - Data refresh endpoint │
│ • Fetcher Service (Background Jobs) │
│ • Caching Layer (Redis) │
└─────────────────────────────────────────────────────────────────┘
│
│ Database Operations
▼
┌─────────────────────────────────────────────────────────────────┐
│ Database (Supabase) │
├─────────────────────────────────────────────────────────────────┤
│ • price_logs - Historical price data │
│ • news_logs - News article storage │
│ • user_settings - User preferences │
│ • cache_data - Temporary data storage │
└─────────────────────────────────────────────────────────────────┘
│
│ Real-time Updates
▼
┌─────────────────────────────────────────────────────────────────┐
│ Real-Time System │
├─────────────────────────────────────────────────────────────────┤
│ • WebSocket connections │
│ • Polling mechanisms │
│ • Error handling & retry logic │
│ • Rate limiting & API quotas │
└─────────────────────────────────────────────────────────────────┘
│
│ CI/CD Pipeline
▼
┌─────────────────────────────────────────────────────────────────┐
│ CI/CD Pipeline │
├─────────────────────────────────────────────────────────────────┤
│ • GitHub Actions │
│ • Automated testing │
│ • Docker builds │
│ • Deployment automation │
└─────────────────────────────────────────────────────────────────┘
│
│ Deployment
▼
┌─────────────────────────────────────────────────────────────────┐
│ Deployment │
├─────────────────────────────────────────────────────────────────┤
│ • Render (Frontend & Backend) │
│ • Supabase (Database & Auth) │
│ • Redis Cloud (Caching) │
│ • Domain & SSL management │
└─────────────────────────────────────────────────────────────────┘
-
Fix Dark Mode UI: Complete dark mode implementation across all components
-
Settings Functionality: Make all settings actually work and persist
-
Page Optimizations: Improve loading states and error handling
-
Mobile UI Polish: Enhance mobile experience and touch interactions
-
Free API Integrations:
-
Quotes API: Daily inspirational quotes
-
Holiday API: Upcoming holidays and events
-
Sports API: Live sports scores and schedules
-
Traffic API: Real-time traffic conditions
-
Air Quality API: Local air quality index
-
Smart News Recommendations: ML-powered news suggestions based on user preferences
-
Personalized Dashboard: AI-driven layout optimization
-
Predictive Analytics: Simple price movement predictions
-
Smart Notifications: Intelligent alert system
-
Login/Authentication: User accounts with Supabase Auth
-
Personalized Settings: User-specific configurations
-
Data Sync: Cross-device synchronization
-
User Profiles: Customizable dashboards
-
PWA Support: Install as mobile app
-
Offline Mode: Cached data when offline
-
Widget System: Customizable dashboard widgets
-
API Integration: Allow users to add their own data sources
-
Node.js 18+ and npm
-
Python 3.9+
-
Redis server
-
Supabase account
- Clone the repository
git clone https://github.com/yourusername/DataPulse.git
cd DataPulse
- Set up environment variables
# Backend
cp .env.example .env
# Add your API keys and configuration
# Frontend
cd frontend
cp .env.example .env
- Install dependencies
# Backend
pip install -r requirements.txt
# Frontend
cd frontend
npm install
- Run the application
# Backend
uvicorn app.main:app --reload
# Frontend (in another terminal)
cd frontend
npm run dev
# Build and run with Docker Compose
docker-compose up --build
# Backend tests
pytest
# Frontend tests
cd frontend
npm test
# E2E tests
npm run test:e2e
Once running, visit:
-
Backend API:
http://localhost:8000/docs -
Frontend:
http://localhost:5173
This is a personal project, but I'm open to contributions! If you find bugs or have ideas for improvements:
-
Fork the repository
-
Create a feature branch
-
Make your changes
-
Add tests
-
Submit a pull request
This personal project taught me invaluable lessons:
-
Render Deployment: Learned the ins and outs of deploying full-stack applications
-
Docker Containerization: Proper containerization for scalable deployment
-
CI/CD Pipelines: Automated testing and deployment with GitHub Actions
-
Environment Management: Proper handling of environment variables and secrets
-
React 18 Features: Leveraged new React features for better performance
-
Vite Build System: Fast development and optimized production builds
-
Responsive Design: Mobile-first approach with Tailwind CSS
-
Component Architecture: Clean, reusable component design
-
FastAPI: High-performance async API development
-
Redis Caching: Optimized data fetching and caching strategies
-
API Integration: Managing multiple third-party APIs efficiently
-
Error Handling: Robust error handling and fallback mechanisms
-
Dark Mode Implementation: Proper theme switching with CSS variables
-
Loading States: Smooth loading experiences across all components
-
Error Boundaries: Graceful error handling in React applications
-
Mobile Optimization: Touch-friendly interfaces and responsive layouts
-
Morning Routines: Check everything you need in one place
-
Traders & Investors: Quick market overview and price tracking
-
News Enthusiasts: Curated news from multiple sources
-
Weather Watchers: Detailed weather information and forecasts
-
Mobile Users: Responsive design that works on any device
This project is licensed under the MIT License - see the LICENSE file for details.
-
HeroUI/NextUI for beautiful React components
-
Tailwind CSS for utility-first styling
-
FastAPI for high-performance backend
-
Supabase for database and authentication
-
Render for reliable hosting
Built with ❤️ as a personal weekend project
<<<<<<< HEAD
"The best projects are born from solving your own problems"
=======
The application is ready for deployment on Render with a single click:
-
Fork this repository to your GitHub account
-
Sign up for Render at render.com
-
Create a new Web Service and connect your forked repository
-
Set environment variables (see DEPLOYMENT.md for details)
-
Deploy!
# Build the production image
./build.sh
# Test locally
docker run -p 8000:80 datapulse
# Deploy to your preferred platform
-
FINNHUB_API_KEY- For stocks data -
OPENWEATHER_API_KEY- For weather data -
GNEWS_API_KEY- For news data -
EXCHANGE_API_KEY- For currency data -
SUPABASE_URL- Your Supabase project URL -
SUPABASE_KEY- Your Supabase anon key
See DEPLOYMENT.md for detailed deployment instructions.
The application is containerized and ready for deployment. The GitHub Actions workflow automatically runs tests on push to the main branch.