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.
- Host: GitHub
- URL: https://github.com/nuraj250/ictss_be
- Owner: Nuraj250
- Created: 2024-10-03T15:24:05.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-22T08:24:07.000Z (over 1 year ago)
- Last Synced: 2025-03-25T09:16:31.118Z (about 1 year ago)
- Topics: analytics, authentication, cricket, java, machine-learning-models, mysql, rest-api, spring-boot, team-selection
- Language: Java
- Homepage:
- Size: 102 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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.