A comprehensive stock market tracking application built with Flutter.
- Real-time stock price tracking
- Advanced financial analysis (metrics, recommendations, charts)
- Market news by category with save functionality
- Stock and company search with live prices
- Watchlist with price alerts
- Virtual portfolio management (add/edit/remove positions)
- Market overview with major indices and top movers
- Framework: Flutter
- Language: Dart
- State Management: StatefulWidget with setState
- HTTP Client: http package
- Charts: fl_chart
- API: Finnhub
lib/
├── main.dart
├── models/
│ ├── api_response/
│ │ └── api_response.dart
│ ├── qoute/
│ │ └── quote_model.dart
│ ├── company/
│ │ └── company_profile_model.dart
│ ├── news/
│ │ └── news_model.dart
│ ├── search/
│ │ ├── search_item_model.dart
│ │ └── search_response_model.dart
│ └── stock/
│ ├── market_status_model.dart
│ ├── metrics_model.dart
│ └── recommendation_model.dart
├── services/
│ ├── api_client.dart
│ ├── finnhub_api_service.dart
│ ├── qoute_service.dart
│ ├── company_service.dart
│ ├── news_service.dart
│ ├── search_service.dart
│ └── stock_service.dart
├── screens/
│ ├── home.dart
│ ├── market.dart
│ ├── news.dart
│ ├── search.dart
│ ├── analysis.dart
│ └── watchlist.dart
└── utils/
└── api_constans.dart
Displays portfolio value with profit/loss, positions list with add/edit/remove functionality, and top stocks overview.
Navigation:
- Tap any stock -> Analysis screen
- Tap Market button -> Market screen
- Tap Add button -> Add position dialog
Shows major indices (S&P 500, NASDAQ, Dow Jones) with live prices, and top gainers/losers tabs.
Navigation:
- Tap any index or stock -> Analysis screen
- Refresh button for live updates
News feed with category filters (Markets, Forex, Crypto, M&A) and save/bookmark functionality.
Features:
- Live Feed / Saved tabs
- Featured card for first article
- Compact cards for remaining articles
- Tap any article -> News detail dialog
- Bookmark articles for later
Search for stocks with trending section and live search results.
Navigation:
- Tap any trending stock -> Analysis screen
- Tap any search result -> Analysis screen
Detailed stock analysis with price, chart, OHLC values, analyst ratings, key metrics, and company information.
Features:
- Symbol selector with search and quick picks
- Real-time price and change display
- Interactive line chart with timeframes (1D, 1W, 1M, 3M, 1Y, ALL)
- Key metrics (52W High/Low, Market Cap, P/E Ratio, EPS, Beta)
- Company info (Exchange, Currency, Country, IPO, Website)
- Price alert dialog
Track favorite stocks with summary card, alerts management, and add/remove functionality.
Features:
- Stocks / Alerts tabs
- Summary card with total value, gaining and declining counts
- Add stock via search bottom sheet
- Set price alerts (above/below target)
- Remove stocks and alerts
All screens are connected through push navigation:
HOME -> Market button -> MARKET
HOME -> Any stock -> ANALYSIS
MARKET -> Any index/stock -> ANALYSIS
SEARCH -> Trending/Results -> ANALYSIS
WATCHLIST -> Any stock -> ANALYSIS
NEWS -> Any article -> Detail Dialog
| Service | Method | Returns |
|---|---|---|
| QouteService | getQuote(symbol) | Real-time stock price |
| CompanyService | getCompanyProfile(symbol) | Company details |
| CompanyService | getCompNews(symbol) | Company-specific news |
| NewsService | getAllNews(category) | General market news |
| SearchService | getSearchResultFN(query) | Stock search results |
| StockService | getMtrcs(symbol, metric) | Financial metrics |
| StockService | getRecmdtions(symbol) | Analyst recommendations |
| StockService | marketStatus(exchange) | Market open/closed status |
- QuoteModel - Current price, change, percent change, OHLC values
- CompanyProfileModel - Name, logo, exchange, currency, country, IPO, website, industry
- Newsmodel - Headline, summary, image, source, category, related stocks
- SearchItemModel - Symbol, description, type
- SearchResponseModel - Count, list of search items
- MarketStatusModel - Exchange, session, open/closed status
- MetricsModel - 52W High/Low, market cap, P/E ratio, EPS, beta
- RecommendationModel - Strong buy, buy, hold, sell, strong sell counts
| Role | Color |
|---|---|
| Background | #0F0F0F |
| AppBar | #111111 |
| Cards | #141414 |
| Input fields | #1E1E1E |
| Primary/Gold | #C9A84C |
| Positive/Green | #00C853 |
| Negative/Red | #FF4B4B |
| Secondary text | #888888 |
- Clone the repository
- Run
flutter pub get - Ensure API key is set in
utils/api_constans.dart - Run
flutter run
dependencies:
flutter:
sdk: flutter
http: ^1.2.0
fl_chart: ^0.68.0- Flutter SDK: >=3.0.0
- Dart SDK: >=3.0.0
- Internet connection for API calls