Skip to content

MrHoban/data-analytics-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“Š Data Analytics Platform

.NET Python React TypeScript PostgreSQL Docker License

A comprehensive, production-ready data analytics platform demonstrating expertise in data processing, visualization, and machine learning. Built with modern microservices architecture and designed for scalability and performance.

🎯 Key Highlights

  • πŸ—οΈ Microservices Architecture - Scalable C# API + Python Analytics Engine
  • 🎨 Modern UI/UX - React TypeScript with Material-UI and Dark/Light themes
  • πŸ€– Machine Learning - Multiple algorithms with real-time training and prediction
  • πŸ“ˆ Interactive Visualizations - Dynamic charts and dashboards with Plotly.js
  • πŸ”’ Enterprise Security - JWT authentication with role-based access control
  • ⚑ High Performance - Redis caching, database optimization, async processing
  • 🐳 DevOps Ready - Docker containerization with CI/CD pipeline support

πŸš€ Features

Core Capabilities

  • Data Processing: Advanced data cleaning, transformation, and preprocessing
  • Machine Learning: Support for multiple algorithms including Random Forest, XGBoost, and Neural Networks
  • Data Visualization: Interactive charts and dashboards using Plotly.js
  • Statistical Analysis: Comprehensive statistical tools and correlation analysis
  • Real-time Processing: Asynchronous job processing with Redis message queues
  • Caching: Redis-based caching for improved performance
  • Authentication: JWT-based authentication with role-based access control

Technical Highlights

  • Microservices Architecture: Separate C# API and Python analytics engine
  • Scalable Design: Docker containerization with horizontal scaling support
  • Performance Optimized: Database indexing, connection pooling, and caching strategies
  • Comprehensive Testing: Unit tests, integration tests, and API documentation
  • Modern Frontend: React TypeScript with Material-UI components
  • API Documentation: OpenAPI/Swagger documentation for all endpoints

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   React Frontend β”‚    β”‚   C# ASP.NET    β”‚    β”‚  Python FastAPI β”‚
β”‚   (TypeScript)   │◄──►│   Core API      │◄──►│ Analytics Engineβ”‚
β”‚                 β”‚    β”‚                 β”‚    β”‚                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                β”‚                        β”‚
                                β–Ό                        β–Ό
                       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                       β”‚   PostgreSQL    β”‚    β”‚      Redis      β”‚
                       β”‚    Database     β”‚    β”‚  Cache & Queue  β”‚
                       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ› οΈ Technology Stack

Backend

  • C# ASP.NET Core 8.0: Main API service with Entity Framework Core
  • Python FastAPI: Analytics engine with async support
  • PostgreSQL: Primary database with JSONB support
  • Redis: Caching and message queue system

Frontend

  • React 18: Modern UI framework
  • TypeScript: Type-safe JavaScript
  • Material-UI: Component library
  • Plotly.js: Interactive data visualizations
  • React Router: Client-side routing

DevOps & Tools

  • Docker & Docker Compose: Containerization
  • Nginx: Reverse proxy and load balancing
  • Prometheus: Metrics and monitoring
  • Serilog: Structured logging (C#)
  • Loguru: Advanced logging (Python)

Machine Learning & Data Science

  • scikit-learn: Core ML algorithms
  • XGBoost: Gradient boosting
  • pandas: Data manipulation
  • NumPy: Numerical computing
  • Plotly: Data visualization
  • statsmodels: Statistical analysis

πŸš€ Quick Start

Prerequisites

  • Docker and Docker Compose
  • .NET 8.0 SDK (for local development)
  • Python 3.11+ (for local development)
  • Node.js 18+ (for frontend development)

Using Docker (Recommended)

  1. Clone the repository

    git clone <repository-url>
    cd data-analytics-platform
  2. Start the platform

    docker-compose up -d
  3. Access the application

Local Development Setup

Backend (C# API)

cd backend/DataAnalytics.API
dotnet restore
dotnet run

Analytics Engine (Python)

cd analytics-engine
pip install -r requirements.txt
uvicorn main:app --reload --port 8000

Frontend (React)

cd frontend
npm install
npm start

Database Setup

# Start PostgreSQL and Redis
docker-compose up -d postgres redis

# Run database migrations
cd backend/DataAnalytics.API
dotnet ef database update

πŸ“Š Usage Examples

Data Upload and Processing

import requests

# Upload dataset
files = {'file': open('data.csv', 'rb')}
response = requests.post('http://localhost:5000/api/datasets/upload',
                        files=files,
                        headers={'Authorization': 'Bearer <token>'})

# Process data
processing_request = {
    "datasetId": response.json()['id'],
    "operations": ["clean", "normalize"],
    "configuration": {
        "remove_duplicates": True,
        "handle_missing": "drop"
    }
}
requests.post('http://localhost:5000/api/analytics/process-data',
              json=processing_request,
              headers={'Authorization': 'Bearer <token>'})

Machine Learning Model Training

training_request = {
    "datasetId": "dataset-id",
    "algorithm": "random_forest",
    "targetColumn": "target",
    "features": ["feature1", "feature2", "feature3"],
    "hyperparameters": {
        "n_estimators": 100,
        "max_depth": 10
    }
}
response = requests.post('http://localhost:5000/api/analytics/train-model',
                        json=training_request,
                        headers={'Authorization': 'Bearer <token>'})

Data Visualization

viz_request = {
    "datasetId": "dataset-id",
    "chartType": "scatter",
    "xColumn": "feature1",
    "yColumn": "feature2",
    "configuration": {
        "title": "Feature Correlation",
        "colorColumn": "target"
    }
}
response = requests.post('http://localhost:5000/api/analytics/visualize',
                        json=viz_request,
                        headers={'Authorization': 'Bearer <token>'})

πŸ† Project Showcase

This project demonstrates proficiency in:

Full-Stack Development

  • βœ… Modern React TypeScript frontend with Material-UI
  • βœ… RESTful API design with ASP.NET Core
  • βœ… Microservices architecture with inter-service communication
  • βœ… Database design and optimization with PostgreSQL

Data Science & Machine Learning

  • βœ… Data preprocessing and feature engineering
  • βœ… Multiple ML algorithms (Random Forest, XGBoost, Neural Networks)
  • βœ… Model evaluation and hyperparameter tuning
  • βœ… Real-time prediction APIs

DevOps & Infrastructure

  • βœ… Docker containerization and orchestration
  • βœ… Redis caching and message queues
  • βœ… Performance optimization and monitoring
  • βœ… Security best practices and authentication

Software Engineering Best Practices

  • βœ… Clean architecture and SOLID principles
  • βœ… Comprehensive testing (unit, integration, API)
  • βœ… API documentation with OpenAPI/Swagger
  • βœ… Error handling and logging strategies

πŸ“ Project Structure

data-analytics-platform/
β”œβ”€β”€ 🎨 frontend/                 # React TypeScript UI
β”‚   β”œβ”€β”€ src/components/          # Reusable UI components
β”‚   β”œβ”€β”€ src/pages/              # Application pages
β”‚   β”œβ”€β”€ src/contexts/           # React contexts (theme, auth)
β”‚   └── src/services/           # API service layer
β”œβ”€β”€ πŸ”§ backend/                 # C# ASP.NET Core API
β”‚   β”œβ”€β”€ DataAnalytics.API/      # Web API controllers
β”‚   β”œβ”€β”€ DataAnalytics.Core/     # Business logic
β”‚   β”œβ”€β”€ DataAnalytics.Data/     # Data access layer
β”‚   └── DataAnalytics.Tests/    # Unit tests
β”œβ”€β”€ 🐍 analytics-engine/        # Python FastAPI service
β”‚   β”œβ”€β”€ src/api/               # API routes
β”‚   β”œβ”€β”€ src/services/          # ML and data services
β”‚   β”œβ”€β”€ src/models/            # Data models
β”‚   └── tests/                 # Python tests
β”œβ”€β”€ πŸ—„οΈ database/               # Database scripts
β”‚   β”œβ”€β”€ migrations/            # Schema migrations
β”‚   └── seed-data/            # Sample data
β”œβ”€β”€ 🐳 docker/                 # Docker configurations
β”œβ”€β”€ πŸ“š docs/                   # Documentation
└── πŸš€ scripts/               # Deployment scripts

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

Development Setup

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘¨β€πŸ’» Author

Your Name

  • GitHub: @yourusername
  • LinkedIn: Your LinkedIn
  • Portfolio: Working on now

πŸ™ Acknowledgments

  • Built with modern technologies and best practices
  • Inspired by real-world data analytics challenges
  • Designed for scalability and maintainability

⭐ If you found this project helpful, please give it a star! ⭐

About

A comprehensive data analytics platform with microservices architecture, ML capabilities, and modern UI.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors