A comprehensive enterprise-grade data analysis platform integrating Java Spring Boot, Python, and R to deliver powerful statistical analysis, machine learning capabilities, and interactive visualizations through an intuitive web interface.
- 🔄 Multi-Engine Architecture: Seamlessly combine Java, Python, and R for comprehensive analytics
- 🧠 Advanced Machine Learning: Classification, regression, clustering using scikit-learn algorithms
- 📊 Statistical Excellence: 30+ statistical methods from basic stats to survival analysis and time series
- 📈 Interactive Visualizations: Automated chart generation with customizable parameters
- 🔍 Data Quality Tools: Missing value analysis, outlier detection, and data validation
- 🌐 RESTful API: 25+ endpoints for comprehensive data analysis services
- 📱 Responsive Interface: Modern, mobile-friendly web interface using Bootstrap 5
- 📄 Comprehensive Reports: Markdown and JSON reports with visualizations and interpretation
The platform employs a modular, microservices-inspired architecture:
┌─────────────────────┐ ┌──────────────────────┐ ┌────────────────────┐
│ │ │ │ │ │
│ Web Interface │ │ Java Spring Boot │ │ Python Analytics │
│ (Bootstrap 5 UI) │◄───►│ (RESTful Backend) │◄───►│ (ML & Data Proc.) │
│ │ │ │ │ │
└─────────────────────┘ └──────────────────────┘ └────────┬───────────┘
│
▼
┌────────────────────┐
│ │
│ R Analytics │
│ (Adv. Statistics)│
│ │
└────────────────────┘
- Frontend Layer: Bootstrap 5 + JavaScript for responsive user experience
- Application Layer: Java Spring Boot with RESTful API endpoints
- Analytics Layer:
- Python engine for ML, data processing, and visualization
- R engine for advanced statistical analysis and specialized methods
- Integration Layer: Flask API server with R subprocess integration
- Java 8+ (JDK or JRE)
- Python 3.8+
- R 4.0+ (for R analytics features)
- Maven 3.6+
- Clone the repository
- Set up Python environment:
cd python-analytics setup_python_env.bat - Start Python API:
start_python_server.bat
- Run the Java application:
run-app.bat
- Access the application: Open http://localhost:8080
- Clone the repository
- Set up R environment:
cd r-analytics setup_r_complete.bat - Start integrated server:
run_r_server.bat
- Run the Java application:
run-app.bat
- Access the application: Open http://localhost:8080
-
Statistical Analysis
- Descriptive statistics (mean, median, std, quartiles)
- Distribution analysis and normality testing
- Correlation analysis (Pearson, Spearman)
- Hypothesis testing (t-tests, chi-square)
-
Machine Learning
- Classification: Random Forest, Logistic Regression, SVM, Gradient Boosting
- Regression: Linear, Ridge, Lasso, Random Forest Regression
- Clustering: K-Means, Hierarchical, DBSCAN
- Model Evaluation: Accuracy, Precision, Recall, F1-Score, ROC-AUC
-
Data Quality Assessment
- Missing value analysis and imputation suggestions
- Outlier detection using multiple methods (IQR, Z-score)
- Data type inference and validation
- Duplicate detection and handling
-
Advanced Statistical Analysis
- Comprehensive descriptive statistics with confidence intervals
- Advanced normality tests (Shapiro-Wilk, Anderson-Darling, Jarque-Bera)
- Robust statistical measures and trimmed statistics
- Distribution fitting and goodness-of-fit tests
-
Advanced Regression Modeling
- Linear, logistic, and polynomial regression
- Robust regression methods
- Model diagnostics and residual analysis
- Variable selection and model comparison
-
Specialized Analyses
- Survival Analysis: Kaplan-Meier survival curves, Cox proportional hazards models
- Time Series Analysis: ARIMA modeling, seasonal decomposition, forecasting
- Advanced Clustering: Hierarchical clustering, model-based clustering
- Correlation Analysis: Partial correlations, correlation significance testing
data-analysis-app/
├── src/main/java/ # Java Spring Boot application
├── src/main/resources/ # Configuration and static files
├── python-analytics/ # Python analysis engine
│ ├── data_analyzer.py # Core Python analysis functionality
│ ├── python_api_server.py # Flask API server with R integration
│ ├── report_generator.py # Report generation functionality
│ ├── requirements.txt # Python dependencies
│ └── setup_python_env.bat # Python environment setup
├── r-analytics/ # R analysis engine
│ ├── data_analyzer.R # Comprehensive R analysis script
│ ├── setup_r_env.bat # Basic R package installation
│ └── setup_r_complete.bat # Full R environment setup
├── temp_uploads/ # Temporary file storage
├── visualizations/ # Generated charts and plots
├── sample-data.csv # Sample dataset for testing
├── test_r_integration.py # R integration testing script
├── run_r_server.bat # Start Python+R integrated server
├── run-app.bat # Start the Java application
└── *.md # Documentation files
Python-based Analysis:
POST /api/analyze/upload- Upload and basic analysisPOST /api/analyze/correlation- Correlation analysisPOST /api/analyze/machine_learning- ML analysis (requires target column)POST /api/analyze/clustering- Clustering analysisPOST /api/analyze/outliers- Outlier detectionPOST /api/analyze/quality- Data quality assessmentPOST /api/analyze/statistical_tests- Statistical hypothesis testingPOST /api/analyze/timeseries- Time series analysisPOST /api/analyze/comprehensive- Complete Python analysis suitePOST /api/analyze/visualizations- Generate visualizations
R-based Analysis:
POST /api/r/analyze/basic- R advanced statisticsPOST /api/r/analyze/correlation- R correlation analysis with significance testsPOST /api/r/analyze/tests- R comprehensive statistical testsPOST /api/r/analyze/regression- R advanced regression modelingPOST /api/r/analyze/survival- R survival analysisPOST /api/r/analyze/timeseries- R time series with ARIMAPOST /api/r/analyze/clustering- R advanced clusteringPOST /api/r/analyze/comprehensive- Complete R analysis suite
Combined Analysis:
POST /api/combined/comprehensive- Python + R combined analysis
Report Generation:
POST /api/reports/generate- Generate comprehensive markdown reportPOST /api/reports/combined- Generate Python+R combined reportGET /api/reports/list- List all generated reportsGET /api/reports/download/<id>/<type>- Download report files
Utility Endpoints:
GET /api/r/health- Check R installation statusGET /api/models/available- Available models and analysis typesGET /api/sample/generate- Generate sample data for testingGET /health- API health check
GET /- Web interface homepagePOST /api/analyze- Main analysis endpoint (forwards to Python/R)POST /api/upload- File upload endpoint
- Java 8+ - Core application platform
- Spring Boot 2.7.18 - Web framework
- Spring Web - RESTful web services
- Thymeleaf - Template engine
- Maven - Dependency management
- Python 3.8+ - Programming language
- pandas 2.1.4 - Data manipulation
- scikit-learn 1.3.2 - Machine learning
- matplotlib 3.8.2 - Visualization
- Flask 3.0.0 - API server
- numpy 1.26.2 - Numerical computing
- scipy 1.11.4 - Scientific computing
- R 4.0+ - Statistical computing
- dplyr - Data manipulation
- ggplot2 - Visualization
- survival - Survival analysis
- forecast - Time series forecasting
- cluster - Clustering algorithms
- lmtest - Regression testing
- HTML5 & CSS3 - Markup and styling
- Bootstrap 5 - Responsive UI framework
- JavaScript ES6 - Client-side functionality
- Chart.js - Data visualization
- Select a CSV file from your computer
- File requirements:
- CSV format (.csv)
- First row should contain column headers
- Supported data types: numeric, string, date
- Python Analysis: For machine learning and basic statistics
- R Analysis: For advanced statistical methods
- Combined Analysis: For comprehensive analysis using both engines
- Select target variable for predictive modeling
- Choose number of clusters for clustering analysis
- Specify date and value columns for time series analysis
- Interactive visualizations
- Statistical summaries
- Model performance metrics
- Data quality assessments
- Download comprehensive markdown reports
- Export visualizations and tables
- Access raw JSON data for further processing
# Test R integration components
python test_r_integration.pycd python-analytics
call venv\Scripts\activate.bat
python -c "from data_analyzer import DataAnalyzer; print('Python analytics ready!')"# Test R script directly
cd r-analytics
Rscript data_analyzer.R sample-data.csv basic- Descriptive Statistics: Count, Mean, Median, Min, Max
- Variability Measures: Standard deviation, Variance, IQR
- Distribution Analysis: Skewness, Kurtosis, Normality tests
- Correlation Analysis: Pearson, Spearman, Kendall correlations
- Supervised Learning: Classification and regression models
- Unsupervised Learning: Clustering and dimensionality reduction
- Model Evaluation: Cross-validation, confusion matrices, ROC curves
- Feature Importance: Variable significance analysis
- Missing Data Analysis: Detection and visualization of missing values
- Outlier Detection: Multiple methods (IQR, Z-score, modified Z-score)
- Data Validation: Type checking, range validation, consistency checks
- Recommendation Engine: Automated data cleaning suggestions
- Trend Analysis: Linear trend detection and significance testing
- Seasonality Detection: Seasonal pattern identification
- Decomposition: Trend, seasonal, and residual components
- Forecasting: ARIMA models and predictions
- Survival Analysis: Time-to-event modeling and hazard estimation
- Clustering: Segment discovery and cluster validation
- Statistical Tests: Hypothesis testing for various data scenarios
- Advanced Regression: Multiple model types with diagnostics
JAVA_HOME- Path to Java installationPYTHON_PATH- Path to Python executableR_HOME- Path to R installation
server.port- Java application port (default: 8080)python.api.url- Python API URL (default: http://localhost:5000)file.upload.max-size- Maximum upload file size (default: 10MB)
- Edit
python-analytics/python_api_server.pyto modify:- API port (default: 5000)
- Upload directory
- Visualization settings
- Edit
r-analytics/data_analyzer.Rto modify:- R packages to use
- Statistical method parameters
- Output formatting
Contributions are welcome! Areas for contribution:
- Additional statistical methods
- Enhanced visualizations
- Performance optimizations
- Additional file format support
- Advanced ML algorithms
- Improved UI/UX features
Please see CONTRIBUTING.md for guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.
- Spring Boot for the robust backend framework
- Python ecosystem (pandas, scikit-learn, matplotlib) for ML and analytics
- R ecosystem (tidyverse, survival, forecast) for advanced statistics
- Flask for seamless Python-Java integration
- Bootstrap for the responsive web interface
Built with ❤️ combining the power of Java, Python, and R for comprehensive data analysis ~ KHIMLabs 👌
🔬 Ready for enterprise-level analytics! 🎉