An open API service indexing awesome lists of open source software.

https://github.com/nuraj250/ictss_be

A Spring Boot-based backend application for intelligent cricket team selection. ICTSS uses machine learning and real-time analytics to optimize team selection based on player statistics, match conditions, and more.
https://github.com/nuraj250/ictss_be

analytics authentication cricket java machine-learning-models mysql rest-api spring-boot team-selection

Last synced: 2 months ago
JSON representation

A Spring Boot-based backend application for intelligent cricket team selection. ICTSS uses machine learning and real-time analytics to optimize team selection based on player statistics, match conditions, and more.

Awesome Lists containing this project

README

          

# Intelligent Cricket Team Selection System (ICTSS) - Backend

The **Intelligent Cricket Team Selection System (ICTSS)** is a Spring Boot application designed to help selectors, coaches, and analysts make data-driven decisions for cricket team selection using advanced machine learning and real-time analytics.

## Table of Contents
- [Project Overview](#project-overview)
- [Features](#features)
- [Technologies Used](#technologies-used)
- [Requirements](#requirements)
- [Installation](#installation)
- [Running the Application](#running-the-application)
- [Folder Structure](#folder-structure)
- [API Endpoints](#api-endpoints)
- [Future Enhancements](#future-enhancements)

## Project Overview

The Intelligent Cricket Team Selection System (ICTSS) aims to optimize the process of selecting cricket teams based on player statistics, match conditions, and real-time analytics. The backend is built using **Spring Boot** with a **MySQL** database, **Java** for business logic, and **Python** for the machine learning model.

The system includes:
- Secure user authentication and role management.
- Player and team management.
- Real-time recommendations for team selection using data-driven insights.
- Advanced analytics for player performance, team dynamics, and match outcomes.

## Features

- **User Authentication**: Secure registration, login, logout, and role-based access control (Admin, Coach, Selector, Analyst).
- **Player Management**: Add, update, delete, and view detailed player statistics.
- **Team Selection**: Automatically suggest the best team based on data, and allow manual adjustment.
- **Playground Management**: Manage cricket grounds including location, conditions, and match history.
- **Reports & Analytics**: Generate and view detailed performance reports and analytics.

## Technologies Used

- **Spring Boot** - Backend framework
- **MySQL** - Relational database
- **Angular** - Frontend framework (for the Web UI)
- **Java** - Backend logic
- **Python** - Machine learning model
- **Maven** - Build tool
- **CoreUI** - Admin template for the frontend UI
- **JPA/Hibernate** - ORM for database interactions

## Requirements

Before you start, ensure you have the following installed:

- Java 17 or higher
- Maven 3.6 or higher
- MySQL 8.x
- Python 3.x (for machine learning components)

## Installation

### 1. Clone the Repository

```bash
git clone https://github.com/Nuraj250/ictss-backend.git
cd ictss-backend
```

### 2. Configure MySQL Database

Create a MySQL database and configure the connection in `src/main/resources/application.properties`:

```properties
spring.datasource.url=jdbc:mysql://localhost:3306/ictss
spring.datasource.username=root
spring.datasource.password=your_password
spring.jpa.hibernate.ddl-auto=update
```

### 3. Install Dependencies

Run the following command to install the required dependencies:

```bash
mvn clean install
```

### 4. Run the Application

You can run the application by executing:

```bash
mvn spring-boot:run
```

The backend will be running at `http://localhost:8080`.

## Folder Structure

```bash
/src
/main
/java
/com
/ictss
/controller # REST API controllers
/service # Business logic services
/model # Entity classes
/repository # Database repository interfaces
/config # Security and configuration files
/dto # Data transfer objects for API
/util # Utility classes
/enum # Enums for player types, roles, etc.
/resources
/static # Static resources (HTML, CSS)
/templates # Email or report templates
application.properties # Configuration properties
```

## API Endpoints

| Endpoint | Method | Description |
|---------------------------------|--------|-------------------------------------------|
| `/auth/register` | POST | Register a new user |
| `/auth/login` | POST | Login to the system |
| `/players` | GET | List all players |
| `/players/{id}` | GET | Get details of a specific player |
| `/players` | POST | Add a new player |
| `/players/{id}` | PUT | Update an existing player |
| `/players/{id}` | DELETE | Delete a player |
| `/teams` | POST | Create a new team |
| `/teams/recommend` | GET | Get recommended team based on data |
| `/teams/{id}` | GET | Get details of a specific team |
| `/reports/performance` | GET | Generate performance report for players |

### Role Management
Roles include:
- **Admin**: Full access to all functionalities.
- **Coach/Selector**: Can manage players, teams, and view reports.
- **Analyst**: Can generate reports and view analytics.

## Future Enhancements

- **Real-Time Match Data Integration**: Extend the system to automatically pull live match data.
- **Enhanced Analytics**: Add more detailed and visual analytics, including team comparisons.
- **Mobile App**: Develop a mobile-friendly version of the system.

## License

This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.