A CricHeroes-style cricket scoring and management app built using Flutter and Firebase. Features include player profiles, teams, tournaments, matches, live scoring, and detailed statistics.
This is a comprehensive cricket management application that allows users to:
- Create and manage teams and players
- Organize tournaments
- Score matches live with ball-by-ball updates
- View detailed statistics and leaderboards
- Track player and team performance
- Compact UI: 10-15% smaller components for efficient space usage
- Material 3: Modern design with consistent theming
- Responsive: Adapts to different screen sizes
- Clean: Minimal padding, subtle shadows, and clear typography
Design all screens before integrating Firebase.
Completed Components:
- β App Theme (compact style with Material 3)
- β Splash Screen
- β Bottom Navigation (5 tabs: Home, Matches, Players, Teams, Tournaments)
- β Home Screen with Quick Actions
- β Player Profile UI (with tabs: Overview, Batting, Bowling, Activity)
- β Player Profile Overview Screen (enhanced version)
- β Players List Screen
- β Teams UI (List & Details with tabs)
- β Team Details Overview Screen (Players, Matches, Stats tabs)
- β Matches List & Details UI (with tabs: Summary, Scorecard, Squads, Overs)
- β Tournament UI (List & Details)
- β Tournament Details Overview Screen (Matches, Teams, Points Table, Stats tabs)
- β Stats & Leaderboards UI
- β Navigation Setup for all screens
UI Features:
- Compact sizing (10-12px padding)
- Small icons (12-14px)
- Minimal card elevation
- Responsive scrollable layouts
- Color-coded status indicators
- Material 3 tab navigation
- Gradient headers
π UI is fully ready for backend integration.
After UI screens are completed:
Tasks:
- Setup Firebase in Flutter
- Add Firebase dependencies to
pubspec.yaml - Configure Firebase for Android
- Configure Firebase for iOS (if needed)
- Add Firebase dependencies to
- Configure Firebase Authentication
- Setup Firestore Database
- Setup Firebase Storage (for images)
- Create test/mock data
- Plan database collection structure
Planned Collections:
users/
- uid
- name
- email
- role (admin/scorer/viewer)
- photoUrl
- createdAt
teams/
- teamId
- name
- city
- logoUrl
- players[]
- stats{}
- createdAt
players/
- playerId
- name
- role
- battingStyle
- bowlingStyle
- age
- city
- photoUrl
- stats{}
- teamId
tournaments/
- tournamentId
- name
- location
- format
- overs
- ballType
- teams[]
- matches[]
- status
- startDate
- endDate
matches/
- matchId
- tournamentId
- teamA
- teamB
- venue
- date
- status
- tossWinner
- innings[]
- result
innings/
- inningId
- matchId
- battingTeam
- bowlingTeam
- overs[]
- score
- wickets
overs/
- overId
- inningId
- overNumber
- bowler
- balls[]
Implement role-based user system:
Tasks:
- Signup / Login UI
- Email password authentication
- Forgot password flow
- Admin / Scorer / Viewer roles
- User profile basics in Firestore
- Role-based access control
- Session management
User Roles:
- Admin: Full access (create/edit/delete)
- Scorer: Can score matches and update data
- Viewer: Read-only access
Admin functions:
Tasks:
- Create Team
- Add/Edit Players
- Upload team logo & player photos
- Validate roles (Batsman/Bowler/All-Rounder/WK)
- Delete team/player
- Search and filter
Frontend displays:
- Player list (with real data)
- Team list (with real data)
- Team details (with real data)
- Player profile (with real data)
Once teams exist:
Tasks:
- Create new match
- Select two teams
- Match format (10/20/30/50 overs)
- Choose playing XI
- Toss & selection
- Match status: Upcoming / Live
- Edit match details
- Delete match
The largest module:
Tasks:
- Ball-by-ball updates
- Runs, extras, wickets
- Bowler/Striker/Non-striker selection
- Over completion logic
- Real-time updates via Firestore streams
- Auto syncing UI
- Undo last ball
- End innings
- Declare result
- Player of the match selection
Scoring Features:
- Runs: 0, 1, 2, 3, 4, 6
- Extras: Wide, No Ball, Bye, Leg Bye
- Wickets: Bowled, Caught, LBW, Run Out, Stumped, etc.
- Strike rotation
- Bowler change
- Partnership tracking
- Fall of wickets
After match flow works:
Tasks:
- Create tournament
- Add teams
- Add matches
- Auto points table
- Auto NRR calculation
- Leaderboards
- Player & team stats aggregation
- Tournament winner
- Awards (Orange Cap, Purple Cap, etc.)
Tournament Features:
- League format
- Knockout format
- Mixed format
- Points calculation
- Net Run Rate (NRR)
- Top scorers/wicket-takers
Final:
Tasks:
- UI polish
- Testing (unit, widget, integration)
- Performance optimizations
- Bug fixes
- Error handling
- Loading states
- Offline support
- Push notifications
- Analytics
- Publish to Play Store (optional)
- Frontend: Flutter (Dart)
- Backend: Firebase
- Authentication
- Firestore Database
- Storage
- Cloud Functions (optional)
- State Management: Provider / Riverpod (TBD)
- Design: Material 3
- Home - Quick actions, upcoming matches, recent matches
- Matches - Live, upcoming, and completed matches
- Players - Player list and profiles
- Teams - Team list and details
- Tournaments - Tournament list and details
- Player Profile Overview - Stats, batting, bowling, activity
- Team Details Overview - Players, matches, stats
- Match Details - Summary, scorecard, squads, overs
- Tournament Details - Matches, teams, points table, stats
- Live Scoring - Ball-by-ball scoring interface (TBD)
The app uses a compact Material 3 theme with:
- Primary Color: Blue (#1E88E5)
- Secondary Color: Green (#43A047)
- Background: Light Grey (#F8F9FA)
- Font Sizes: Reduced by 10-15%
- Padding: Compact (10-12px)
- Card Radius: 16px
- Icon Sizes: 12-20px
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^1.0.2
# Firebase (to be added in Phase 2)
# firebase_core: ^latest
# firebase_auth: ^latest
# cloud_firestore: ^latest
# firebase_storage: ^latest
# State Management (TBD)
# provider: ^latest
# or riverpod: ^latest
# Image Handling (TBD)
# image_picker: ^latest
# cached_network_image: ^latest- Flutter SDK (3.2.3 or higher)
- Dart SDK
- Android Studio / VS Code
- Firebase account (for Phase 2+)
- Clone the repository
git clone <repository-url>
cd cric_scoring- Install dependencies
flutter pub get- Run the app
flutter runPhase 1 (UI & Navigation): β COMPLETED
All UI screens are designed and ready. The app has:
- Complete navigation structure
- All major screens implemented
- Compact, modern design
- Static placeholder data
- Ready for Firebase integration
Next Step: Begin Phase 2 - Firebase Initialization
This is a learning/portfolio project. Contributions, issues, and feature requests are welcome!
This project is for educational purposes.
lib/
βββ main.dart
βββ theme/
β βββ app_theme.dart
βββ screens/
βββ splash_screen.dart
βββ main_navigation.dart
βββ home_screen.dart
βββ matches_screen.dart
βββ matches_list_screen.dart
βββ match_details_screen.dart
βββ players_screen.dart
βββ player_profile_screen.dart
βββ player_profile_overview_screen.dart
βββ teams_screen.dart
βββ team_details_screen.dart
βββ teams_list_screen.dart
βββ team_details_overview_screen.dart
βββ tournaments_screen.dart
βββ tournament_details_screen.dart
βββ tournament_list_screen.dart
βββ tournament_details_overview_screen.dart
- Stateless Widgets: Used for static UI components
- Material 3: Modern design system
- Responsive Design: Adapts to different screen sizes
- Reusable Components: Card builders, stat widgets, etc.
(To be added after Phase 1 completion)
- Dark mode support
- Multiple language support
- Advanced analytics
- Video highlights integration
- Social sharing
- Commentary feature
- Ball tracking visualization
- Player comparison tool
Last Updated: December 2024
Current Phase: Phase 1 β
Complete | Phase 2 π Next