A modern cryptocurrency tracking application built with Flutter, inspired by CoinDCX's trading interface.
- Flutter SDK (latest stable version)
- Dart SDK (latest stable version)
- VS Code or Android Studio
- Git
flutter run \
--dart-define=BASE_URL=https://api.coingecko.com/api/v3/ \
--dart-define=COINGECKO_API_KEY=CG-DZYGA8WkGNWJmL6afuToJ3Ct
- β Fully responsive design for desktop, and mobile screens.
- π¨ UI styling inspired by CoinDCX for modern and intuitive layout.
β οΈ Robust error handling for all API calls to ensure graceful failure states.
- Fetches and displays 10β25 cryptocurrencies using the
/coins/markets
endpoint. - Each coin shows:
- Name
- Symbol
- Current Price (USD)
- Market Cap
- 24h Price Change (%)
- π Sorting/Searching functionality: Toggle between ascending and descending market cap.
- π° Static total balance and a banner section to enhance layout spacing.
- π° Localization as per Language to format the numbers and Currency for mobile
- π° Real Time price Change for mobile every 5 seconds
- β‘οΈ Clicking a coin navigates to its Coin Detail Page.
- Displays data from the
/coins/{id}
endpoint:- Name, Symbol, Current Price, Market Cap
- π A brief description
- π Line chart using
fl_chart
:- Visualizes price history over 7 or 30 days
- π Easy navigation back to the Dashboard Page.
- π§ Interactive chart features:
- Hover tooltips showing date and price
- Switchable time range (7d / 30d)
- π Pagination / Infinite Scrolling:
- Efficient loading for large lists
Mobile Dashboard Market Cap Descending | Mobile Dashboard Searching | Mobile Coin Details Page |
![]() |
![]() |
![]() |
Mobile Coin Market Chart with Tooltip | Mobile Coin View with Description | Mobile Error State |
![]() |
![]() |
![]() |
Web Main Dashboard Page | |
![]() |
|
Web Main Dashboard Page - 1000 width | |
![]() |
|
Web Mobile Width | Web Mobile Coin Details Screen |
![]() |
![]() |
- Clone the repository:
git clone "https://github.com/abhinav503/CoinGecko.git"
cd CoinGecko
- Install dependencies:
flutter pub get
- Configure environment variables: The application requires the following environment variables:
BASE_URL
: https://api.coingecko.com/api/v3/COINGECKO_API_KEY
: Your CoinGecko API key
- Run the application:
flutter run -d chrome
The project follows Clean Architecture principles and Atomic Design methodology:
lib/
βββ core/
β βββ constants/
β βββ ui/
β β βββ atoms/
β β βββ molecules/
β β βββ organisms/
β βββ utils/
βββ feature/
β βββ home/
β βββ web_home/
β βββ coin_details/
βββ main.dart
βββ routes.dart
- Clean Architecture: Separation of concerns with distinct layers (PRESENTATION, DOMAIN, DATA)
- Atomic Design: UI components organized as ATOMS, MOLECULES, and ORGANISMS & TEMPLATES
- BLoC Pattern: State management using Flutter BLoC
- Reusable Widgets: ReUsable Widget Across Web/Mobile
- Flutter: Cross-platform UI framework
- Chosen for its performance, hot reload capability, and single codebase for multiple platforms
- flutter_bloc: State management
- Provides predictable state management and separation of concerns
- fl_chart: Charting library
- Open-source, free, and highly customizable
- Excellent performance with large datasets
- flutter_screenutil: Responsive UI
- Ensures consistent UI across different screen sizes
- get_it: Dependency Injection
The application's UI is inspired by CoinDCX
- Library: fl_chart
- Features:
- Real-time price updates
- Interactive zoom and pan
- Multiple timeframe support
- Custom styling and themes
- Market Coin API returns duplicate values in ascending order
- Coin Details Screen price changes are limited to 24-hour data for free tier
- API rate limits and response times
- Static Data on few instances
- Enhanced UI/UX with more data visualization
- Additional chart timeframes
- Advanced trading indicators
- Real-time notifications
- Dark mode support