A modern, feature-rich cryptocurrency tracking application built with React that provides real-time cryptocurrency data, market statistics, detailed coin information, exchange listings, and the latest crypto news.
- Global Crypto Statistics: View comprehensive market stats including total cryptocurrencies, exchanges, market cap, and 24h trading volume
- Top 10 Cryptocurrencies: Quick overview of the top-performing cryptocurrencies
- Latest News Feed: Stay updated with the most recent cryptocurrency news
- Browse up to 100 cryptocurrencies with real-time data
- Search Functionality: Quickly find specific cryptocurrencies by name
- Display key metrics:
- Current price
- 24h price change percentage
- Market capitalization
- Rank
- Interactive cards with cryptocurrency logos and symbols
- Comprehensive cryptocurrency details including:
- Current price and market statistics
- All-time high prices
- Supply information (circulating, total)
- Number of markets and exchanges
- Historical price data
- Interactive Line Charts: Visualize price history across multiple timeframes:
- 24 hours
- 7 days
- 30 days
- 1 year
- 5 years
- Social links and official websites
- Detailed descriptions and key information
- Latest cryptocurrency news from multiple sources
- Article cards with:
- Thumbnails
- Publication date
- Source information
- Direct links to full articles
- Filter news by specific cryptocurrencies
- Comprehensive list of cryptocurrency exchanges
- Exchange information and rankings
- React 18.3.1: Modern React with hooks
- React Router DOM 6.30.2: Client-side routing
- React Redux 9.2.0: State management
- Redux Toolkit 2.11.2: Efficient Redux development
- Ant Design (antd) 5.23.4: Professional UI component library
- Ant Design Icons 5.5.2: Icon system
- Custom CSS: Additional styling
- Chart.js 4.5.1: Powerful charting library
- React-Chartjs-2 5.3.1: React wrapper for Chart.js
- chartjs-adapter-moment 1.0.1: Time scale support
- Moment.js 2.30.1: Date and time formatting
- Axios 1.13.2: HTTP client for API requests
- Millify 6.1.0: Number formatting (e.g., 1M, 1B)
- html-react-parser 5.2.11: HTML string parsing
- CoinGecko API v3: Free cryptocurrency data (no API key required)
- CryptoCompare API: Cryptocurrency news feed
cryptoapp/
โโโ public/
โ โโโ index.html # HTML template
โโโ src/
โ โโโ App.js # Main application component
โ โโโ App.css # Global styles
โ โโโ index.js # Application entry point
โ โโโ app/
โ โ โโโ store.js # Redux store configuration
โ โโโ components/
โ โ โโโ Navbar.jsx # Navigation component
โ โ โโโ Homepage.jsx # Homepage with stats
โ โ โโโ Cryptocurrencies.jsx # Crypto list with search
โ โ โโโ CryptoDetails.jsx # Detailed coin information
โ โ โโโ LineChart.jsx # Price chart component
โ โ โโโ Exchanges.jsx # Exchange listings
โ โ โโโ News.jsx # News feed component
โ โ โโโ Loader.jsx # Loading component
โ โ โโโ index.js # Component exports
โ โโโ services/
โ โโโ cryptoApi.js # CoinGecko API integration
โ โโโ cryptoNewsApi.js # CryptoCompare news API
โโโ build/ # Production build (generated)
โโโ package.json # Dependencies and scripts
โโโ README.md # This file
Before running this application, make sure you have:
- Node.js (version 14 or higher)
- npm (comes with Node.js)
-
Clone the repository
git clone <repository-url> cd cryptoapp
-
Install dependencies
npm install
-
Start the development server
npm start
The application will open automatically in your browser at http://localhost:3000
Runs the app in development mode with hot reloading.
- Open http://localhost:3000 to view it in your browser
- The page reloads automatically when you make changes
- Lint errors appear in the console
Launches the test runner in interactive watch mode.
Builds the app for production to the build folder:
- Optimizes React for best performance
- Minifies code and includes hashes in filenames
- Ready for deployment
Ejects from Create React App, giving you full control over webpack, Babel, and ESLint configurations.
The application uses the free CoinGecko API v3 for cryptocurrency data:
- Base URL:
https://api.coingecko.com/api/v3 - No API key required
- Provides:
- Cryptocurrency prices and market data
- Historical price data
- Coin details and statistics
- Market rankings
Used for cryptocurrency news:
- Base URL:
https://min-api.cryptocompare.com/data/v2 - No API key required
- Provides latest news articles from various sources
- Displays global statistics
- Shows top 10 cryptocurrencies
- Presents latest news
- Uses
useGetCryptosQueryRTK Query hook for data fetching
- Lists cryptocurrencies with pagination
- Real-time search filtering
- Responsive card layout
- Links to detailed coin pages
- Comprehensive coin information
- Interactive price charts with multiple timeframes
- Supply and market statistics
- Links to exchanges and resources
- Built with Chart.js and React-Chartjs-2
- Responsive design
- Multiple timeframe support
- Formatted axes with price and time data
- Displays latest crypto news
- Filter by cryptocurrency
- Article cards with images
- External links to full articles
Efficient data fetching and caching:
- Automatic re-fetching
- Built-in loading and error states
- Optimistic updates
- Cache management
- Mobile-first approach
- Ant Design's responsive grid system
- Adaptive layouts for all screen sizes
- Redux Toolkit for global state
- RTK Query for server state
- React hooks for local state
npm run buildThis creates an optimized production build in the build folder:
- Minified and optimized code
- Static files ready for deployment
- Performance optimizations applied
The build folder can be deployed to:
- Vercel: Zero-config deployment for React apps
- Netlify: Drag-and-drop or Git-based deployment
- GitHub Pages: Free hosting for static sites
- AWS S3: Cloud storage with CloudFront CDN
- Firebase Hosting: Google's hosting solution
Create a .env file in the root directory for custom configuration:
REACT_APP_API_URL=https://api.coingecko.com/api/v3
REACT_APP_NEWS_API_URL=https://min-api.cryptocompare.com/data/v2Contributions are welcome! To contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- CoinGecko for providing free cryptocurrency data API
- CryptoCompare for the news API
- Ant Design for the beautiful UI components
- Chart.js for powerful data visualization
- Create React App for the build configuration
For questions, issues, or suggestions:
- Open an issue on GitHub
- Check existing issues before creating new ones
Potential features for future versions:
- Portfolio tracking
- Price alerts and notifications
- User authentication
- Favorite cryptocurrencies
- Advanced filtering and sorting
- Dark/light theme toggle
- Multi-currency support
- Historical data comparison
- Mobile app version
- Real-time WebSocket price updates