AlgoMaster Logo

Design CricInfo

Ashish

Ashish Pratap Singh

hard

Cricinfo (officially ESPNcricinfo) is a comprehensive online platform dedicated to cricket. It provides live scores, ball-by-ball commentary, match schedules, team and player statistics, and news related to cricket matches.

Cricinfo

In this chapter, we will explore the low-level design of cricinfo like service.

Let's start by clarifying the requirements:

1. Clarifying Requirements

Before starting the design, it's important to ask thoughtful questions to uncover hidden assumptions, clarify ambiguities, and define the system's scope more precisely.

Here is an example of how a conversation between the candidate and the interviewer might unfold:

After gathering the details, we can summarize the key system requirements.

1.1 Functional Requirements

  • Support multiple match formats: Test, ODI, and T20
  • System should be able to track the stats of all players, teams, and matches.
  • The system should be able to track all scores or wickets that occurred for each ball. The system should also provide a live commentary for every ball.
  • Display real-time match data, including scorecards, player stats, and match summaries
  • Support listing of upcoming, live, and completed matches
  • Provide ball-by-ball commentary for ongoing matches
  • Maintain historical data for players, teams, series, and venues
  • Allow users to follow multiple live matches simultaneously
  • Support viewing of team compositions, player profiles, and records
  • Handle live updates via data pushed from an external source

1.2 Non-Functional Requirements

  • Modularity: The system should be composed of well-separated components
  • Extensibility: The system should be extensible to support future features
  • Maintainability: Code should follow object-oriented principles and be easy to test, debug, and extend

2. Identifying Core Entities

Premium Content

This content is for premium members only.