- 🔍 Overview
- ✨ Vision
- 🎯 Why CryptoHub
- 🚀 Live Demo
- 📸 Screenshots
- 🌟 Key Features
- 🛠️ Tech Stack
- 📊 Project Insights
- 🧭 Project Flow
- ⚙️ Installation and Setup
- 📁 Project Structure
- 👨💼 Project Leadership
- ✴️ Issue Creation
- 📑 Contribution Guidelines
- 🤝 Contributing
- 👥 Contributors
- 📋 Code of Conduct
- 💡 Suggestions & Feedback
- 🙌 Show Your Support
- 📄 License
- 👨💼 Project Leadership
- 📞 Contact
- ⭐ Stargazers
- 🍴 Forkers
CryptoHub is a modern, fully responsive cryptocurrency dashboard built with React and Vite. It empowers users to track real-time crypto prices, analyze market trends through interactive charts, explore educational content, and manage their crypto portfolio—all in one beautifully designed platform.
| 🌟 Stars | 🍴 Forks | 🐛 Issues | 🔔 Open PRs | 🔕 Closed PRs | 🛠️ Languages | 👥 Contributors |
CryptoHub aims to democratize cryptocurrency information and make it accessible to everyone:
- 🌐 24/7 Access - Real-time cryptocurrency data at your fingertips
- 🔍 Transparency - Clear, accurate market information for informed decisions
- 📊 Comprehensive Analytics - Interactive charts with historical data
- 🎓 Education First - Learn about crypto through blogs and guides
- 📱 Mobile-First - Seamless experience across all devices
CryptoHub is built to provide the best cryptocurrency tracking experience:
- 🧭 All-in-One Platform - Market data, charts, news, and portfolio tracking in one place
- 🔍 Real-time Updates - Live price updates and market movements
- ⚙️ Smart Features - Advanced search, filters, and multi-currency support
- 🛡️ Secure & Private - Firebase authentication with data protection
- 📱 Beautiful UI - Modern glassmorphism design with smooth animations
- 🌙 Theme Toggle - Comfortable viewing in dark or light mode
Experience CryptoHub live here:
Complete User Journey & Application Routes
flowchart TD
A[User] --> B[Visit CryptoHub]
B --> C{Authenticated?}
C -->|No| D[Browse Public Pages]
C -->|Yes| E[Access Dashboard]
D --> F[Home: Search & Filter Coins]
D --> G[Blog: Read Articles]
D --> H[Pricing: View Plans]
D --> I[Features: Explore]
F --> J[Click Coin]
J --> K[View Details & Chart]
D --> L{Want Login?}
L -->|Yes| M[Login/Signup]
M --> N[Firebase Auth]
N -->|Success| E
N -->|Failed| D
E --> O[Dashboard]
E --> P[Leaderboard]
E --> Q[Change Password]
Market Data Lifecycle
graph LR
subgraph External
CG[(CoinGecko API)]
end
subgraph React_App
CC[CoinContext]
H[Home Page]
D[Details Page]
end
CG -- "JSON Data" --> CC
CC -- "State: coinsArray" --> H
CC -- "State: singleCoin" --> D
H -- "User Search" --> CC
- 🔐 Secure Authentication - Firebase-based login/signup with email verification
- 👤 User Dashboard - Personalized dashboard with greeting and quick stats
- 🏆 Leaderboard - Track top-performing cryptocurrencies
- 📰 Crypto Blog - Educational content and market insights
- 💰 Pricing Plans - Flexible subscription tiers (Free, Pro, Premium)
- 🔑 Email/Password Login - Traditional authentication method
- 🌐 Google OAuth - One-click sign-in with Google account
- 🔒 Secure Sessions - JWT-based session management with Firebase
- 👥 User Profiles - Personalized user experience with full name display
- 🔐 Password Management - Change password securely from dashboard
- 🔓 Password Reset - Forgot password recovery via email link
- 📈 Real-time Prices - Live cryptocurrency prices powered by CoinGecko API
- 🔍 Advanced Search - Search 100+ cryptocurrencies with autocomplete
- 💱 Multi-Currency - Support for USD, EUR, INR
- 📊 Interactive Charts - 10-day historical price charts with Victory.js
- 🎯 Price Filters - Filter coins by minimum and maximum price
- ✨ Floating Tickers - Real-time animated price tickers (Bitcoin, Ethereum, Solana, Cardano, BNB)
- 📱 Horizontal Scroll - All data columns visible on mobile with smooth scrolling
Ensure you have the following installed:
- 🟢 Node.js 14+ and npm
- 🔑 CoinGecko API Key (Get it here)
- 🔥 Firebase Project (Create one here)
git clone https://github.com/KaranUnique/CryptoHub.git
cd CryptoHubnpm install# CoinGecko API Key
VITE_CG_API_KEY=your-coingecko-api-key
# Firebase Configuration
VITE_FIREBASE_API_KEY=your-firebase-api-key
VITE_FIREBASE_AUTH_DOMAIN=your-project-id.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your-project-id
VITE_FIREBASE_STORAGE_BUCKET=your-project-id.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=your-sender-id
VITE_FIREBASE_APP_ID=your-app-idHow to get credentials:
- CoinGecko API: Sign up at CoinGecko API
- Firebase: Go to Firebase Console → Project Settings → Your Apps
npm run devhttp://localhost:5173
For a containerized development environment:
# Start with Docker Compose
docker compose up
# Access at http://localhost:5173📖 See DOCKER_SETUP.md for full guide
npm run buildnpm run previewCryptoHub/
│
├── 📂 public/
│ └── crypto-logo.png # Application logo
│
├── 📂 src/
│ │
│ ├── 📂 assets/ # Static assets
│ │ └── CryptoHub.png # Banner image
│ │
│ ├── 📂 components/ # Reusable UI components
│ │ ├── Navbar.jsx # Responsive navigation bar
│ │ ├── Navbar.css # Navbar styling
│ │ ├── Footer.jsx # Footer component
│ │ ├── LineChart.jsx # Victory.js chart wrapper
│ │ ├── LoadingSpinner.jsx # Loading indicator
│ │ ├── Pricing.jsx # Pricing plans page
│ │ ├── Blog.jsx # Blog listing page
│ │ ├── BlogDetail.jsx # Individual blog post
│ │ ├── Features.jsx # Features showcase
│ │ ├── Signup.jsx # User registration
│ │ ├── Login.jsx # User login
│ │ ├── ForgotPassword.jsx # Password reset via email
│ │ ├── Contributors.jsx # Contributors page
│ │ ├── Leaderboard.jsx # Crypto leaderboard
│ │ ├── ChangePassword.jsx # Password management
│ │ └── PrivateRoute.jsx # Protected route wrapper
│ │
│ ├── 📂 context/ # React Context API
│ │ ├── CoinContext.jsx # Cryptocurrency data state
│ │ ├── AuthContext.jsx # Authentication state
│ │ └── ThemeContext.jsx # Dark/Light theme state
│ │
│ ├── 📂 pages/ # Main application pages
│ │ ├── Home/
│ │ │ ├── Home.jsx # Landing page
│ │ │ └── Home.css # Home page styles
│ │ ├── Coin/
│ │ │ ├── Coin.jsx # Individual coin details
│ │ │ └── Coin.css # Coin page styles
│ │ └── Dashboard/
│ │ ├── Dashboard.jsx # User dashboard
│ │ └── Dashboard.css # Dashboard styles
│ │
│ ├── 📄 App.jsx # Main app component & routing
│ ├── 📄 main.jsx # Application entry point
│ ├── 📄 index.css # Global styles & CSS variables
│ └── 📄 firebase.js # Firebase configuration
│
├── 📄 .env # Environment variables (not in repo)
├── 📄 .gitignore # Git ignore rules
├── 📄 package.json # Dependencies & scripts
├── 📄 package-lock.json # Dependency lock file
├── 📄 vite.config.js # Vite configuration
├── 📄 index.html # HTML template
├── 📄 LICENSE # MIT License
└── 📄 README.md # Project documentation
| Directory | Purpose |
|---|---|
/public |
Static assets served directly |
/src/components |
Reusable React components |
/src/context |
Global state management using Context API |
/src/pages |
Main application pages with routing |
/src/assets |
Images, media files |
.env- API keys (CoinGecko, Firebase)vite.config.js- Vite build configurationpackage.json- Project dependencies and scriptsfirebase.js- Firebase initialization
Detailed guides to help you get started:
Found a bug or have a feature request?
- Check the issue tracker first
- Create a new issue with a clear description
- Include screenshots/videos if reporting UI bugs
- Tag appropriately (bug, enhancement, documentation, etc.)
We welcome contributions! Follow these steps:
- ⭐ Star the Repository
- 🍴 Fork the Repository
- 🔀 Create a new branch for your feature/fix
- 💻 Make your changes and test thoroughly
- 📝 Commit with clear messages
- 🔼 Push to your fork
- 🎯 Create a Pull Request with screenshots
Check the CONTRIBUTING.md for detailed steps.
- 🐛 Bug Fixes - Help identify and fix bugs
- ✨ New Features - Add cryptocurrency tracking features
- 🎨 UI/UX Improvements - Enhance the user interface
- 📱 Mobile Responsiveness - Improve mobile experience
- 📝 Documentation - Improve guides and docs
- 🌐 Translations - Help make CryptoHub multilingual
- 🧪 Testing - Write unit and integration tests
- 🔒 Security - Help keep user data safe
- 📰 Blog Content - Write crypto educational articles
We welcome all contributions and suggestions! Whether it's a new feature, design improvement, or a bug fix - your voice matters 💜
Thanks to all our amazing contributors! 🎉
See the full list on the GitHub Contributors Graph.
By participating in this project, you agree to maintain a respectful and inclusive environment for all contributors. Harassment, discrimination, or any form of abuse will not be tolerated.
For more details, see CODE_OF_CONDUCT.md.
We'd love to hear from you! Feel free to:
- 💬 Open a Discussion
- 🐛 Report Issues
- 💡 Request Features
- ⭐ Star the repository if you find it helpful
If you find CryptoHub helpful, please consider:
- ⭐ Star the repository
- 🐦 Share on social media
- 💬 Tell your friends and colleagues
- 🤝 Contribute to the project
- 📝 Write a blog post about it
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License - Free to use, modify, and distribute
✅ Commercial use
✅ Modification
✅ Distribution
✅ Private use
- Admin & Mentor: KaranUnique
Feel free to reach out to the admin for questions, guidance, or support on your contributions.
For questions, feedback, or collaboration:
- 🐛 Bug Reports: Open an Issue
- 💡 Feature Requests: Create Feature Request
- 💬 Discussions: GitHub Discussions
- 📧 Contact Admin: KaranUnique
Open an Issue | 🌟 Star on GitHub | 🚀 Live Demo
Ready to explore the crypto universe? Get started with CryptoHub today! 🚀💎


