A comprehensive solution to manage cricket matches, track live scoring, and analyze player statistics.
- Overview
- Key Features
- Tech Stack
- Architecture
- Folder Structure
- Live Demo
- Repository
- Installation Guide
- Usage Guide
- Screenshots
The Cricket Management System is a lightweight, full-stack web application designed to track and manage local cricket matches. It provides an intuitive interface for ball-by-ball scoring, real-time match status updates, and comprehensive player analytics. Built with a robust Python/Flask backend and a dynamic Vanilla JavaScript frontend, this system digitizes cricket scoring, maintaining historical records and detailed scorecards for all matches.
- π΄ Live Match Scoring: Record ball-by-ball actions, track extras (wides, no-balls), fall of wickets, and innings progression.
- π₯ Player & Team Registration: Dynamically add players and assign them to competing teams before a match begins.
- π Player Analytics & Leaderboards: View detailed player profiles, batting/bowling statistics, and an overall leaderboard.
- π Match History: Access an archive of past matches, complete with detailed scorecards and match insights.
- π Data Export: Export match history, player analytics, and comprehensive data to CSV and Excel formats.
- π§ Smart Insights: View dashboard insights and auto-generated smart insights regarding match performance.
- β»οΈ Match Management: Soft delete, restore, or permanently delete match records.
- Frontend: HTML5, CSS3, Vanilla JavaScript
- Backend: Python 3, Flask
- Database: SQLite
- Libraries:
openpyxl(for Excel data export)
The application follows a Client-Server architecture:
- Client: The frontend serves static files (
index.html,style.css,app.js) and interacts with the user. It makes asynchronous HTTP calls (Fetch API) to the backend. - Server: A Python Flask application (
backend/app.py) providing RESTful API endpoints for data retrieval, match state updates, and export generation. - Database: An SQLite database (
database/cricket.db) managed throughinit_db.pyandschema.sql, storing players, matches, match states, and ball-by-ball logs.
cricket-management-system/
βββ backend/
β βββ app.py # Main Flask application and REST APIs
β βββ requirements.txt # Python dependencies
βββ frontend/
β βββ index.html # Main UI dashboard
β βββ style.css # Application styling
β βββ app.js # Frontend logic and API integration
βββ database/
β βββ init_db.py # Script to initialize the SQLite database
β βββ schema.sql # Database schema definitions
β βββ cricket.db # SQLite database file
βββ .gitignore # Git ignored files configuration
βββ README.md # Project documentation
π https://cricket-management-system-hv8t.onrender.com
https://github.com/Arandeep12/cricket-management-system
Follow these instructions to run the project locally.
- Python 3.8+
- Git
-
Clone the repository:
git clone https://github.com/Arandeep12/cricket-management-system.git cd cricket-management-system -
Initialize the Database:
cd database python init_db.py cd ..
-
Install Dependencies: Install the required Python packages (Flask and openpyxl for Excel exports):
cd backend pip install -r requirements.txt pip install openpyxl -
Run the Backend Server:
python app.py
The backend will start locally at
http://127.0.0.1:5001. -
Open the Frontend Application: Since the frontend consists of static files, simply open
frontend/index.htmlin your preferred web browser, or serve it using a local HTTP server.
- Start a Match: Open the dashboard, add players, set the toss details, and begin the innings.
- Score Live: Use the control panel to add runs, mark wickets, and log extras for every delivery.
- Analytics & Export: Navigate to the Analytics tab to view leaderboards and export data into Excel or CSV format.
- History: Check the Match History tab for detailed scorecards of previously completed matches.
Overview dashboard displaying quick access buttons to start matches, manage players, view analytics, and inspect overall system highlights.
Interface for adding and registering new players to the database with specified roles and details.
Setup screen to configure teams, select playing squad for each side, set total overs, and initialize a match.
Interactive toss manager to record the coin toss winner and batting/bowling choices.
Screen displaying the elected decision (Bat or Bowl) and confirming match start settings.
Real-time scoring dashboard for recording ball-by-ball actions, runs, extras, wickets, and live statistics.
Modal popup to select the exact mode of dismissal (Bowled, Caught, Run Out, LBW, Stumped, etc.) and fielder details.
Match conclusion modal presenting final match outcome, winning team, score summaries, and victory margins.
Comprehensive archive listing all past matches, final scorecards, detailed ball logs, and management controls.
Detailed statistical analysis of individual player performance, batting averages, strike rates, bowling economy, and wickets.
Side-by-side player comparison tool to evaluate two players across key performance metrics.
Rankings table highlighting top run-scorers, leading wicket-takers, and top-performing players.
Automated performance insights generator analyzing run rates, key milestones, and team trends.
Export module enabling users to download match logs, player stats, and archives in CSV or Excel format.
Sample view of the formatted Excel spreadsheet generated by the export system.














