Skip to content

Aurora-Science-Hub/Integrations

Repository files navigation



Aurora Science Hub Integrations

External data source integrations for space weather monitoring applications.

NuGet Version NuGet Downloads
Build & Test License: MIT GitHub Stars

Getting StartedAvailable PackagesArchitectureDevelopmentCode StyleTestingLicenseContributingLinks

Getting Started

All packages are distributed via NuGet and target .NET 10.0. Install individual packages as needed:

dotnet add package AuroraScienceHub.Integrations.NoaaClient

Quick Example

// Register services
builder.Services.AddNoaaClients();

// Inject and use clients
public class SpaceWeatherService
{
    private readonly IAceClient _aceClient;

    public SpaceWeatherService(IAceClient aceClient)
    {
        _aceClient = aceClient;
    }

    public async Task<IReadOnlyCollection<MagnetometerRecord>> GetMagnetometerDataAsync()
    {
        return await _aceClient.GetMagnetometerDataAsync();
    }
}

Each package provides HTTP clients for accessing external data sources with strongly-typed response models and full dependency injection support.

Available Packages

NOAA Space Weather Integrations

AuroraScienceHub.Integrations.NoaaClient - Comprehensive NOAA Space Weather data access

Component Description
ACE Client Advanced Composition Explorer satellite data - magnetometer and SWEPAM measurements
DSCOVR Client Deep Space Climate Observatory data - solar wind and magnetic field measurements with multiple time ranges (2H, 1D, 3D, 7D)
KP-Index Client Geomagnetic activity indices - nowcast and forecast data (3-day and 27-day)

See detailed documentation for usage examples and API reference.

Architecture

This repository provides production-ready HTTP clients for external space weather data sources with the following characteristics:

  • Type-Safe Clients - Strongly-typed HTTP clients with dependency injection support via IHttpClientFactory
  • Response Models - Well-defined DTOs for all API responses with validation
  • Configuration - Options pattern for configuring API endpoints and behavior
  • Modern .NET - Built on .NET 10 with latest C# features and performance optimizations
  • Resilience - Built-in retry policies and error handling
  • Testability - Designed for easy unit testing with interface-based design

Design Principles

  • Single Responsibility - Each client focuses on a specific data source
  • Dependency Injection - First-class DI support for ASP.NET Core and .NET applications
  • Performance - Optimized parsing and minimal allocations
  • Extensibility - Easy to extend with additional data sources

Development

Prerequisites

Building from Source

# Clone the repository
git clone https://github.com/Aurora-Science-Hub/Integrations.git
cd Integrations

# Restore dependencies
dotnet restore

# Build the solution
dotnet build

# Run tests
dotnet test

Code Style

The solution uses EditorConfig based on Azure SDK .NET to maintain consistent code style across all packages.

Formatting Commands

# Format code before committing
dotnet format

# Verify code style compliance
dotnet format --verify-no-changes

Code Quality Standards

  • Nullable reference types enabled
  • Warnings treated as errors
  • Latest C# language version
  • Code style enforcement in build
  • Embedded debug symbols in packages

Testing

Unit tests are located in the tests/UnitTests/ directory.

Test Framework

  • xUnit - Test execution framework
  • Moq - Mocking library for unit tests
  • Embedded Resources - Test data stored as embedded resources for reproducibility

Running Tests

# Run all tests
dotnet test

# Run tests in watch mode
dotnet watch test --project tests/UnitTests/UnitTests.csproj

Test Coverage

The project maintains comprehensive test coverage for all data parsers and client implementations, ensuring data integrity and API reliability.

License

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

Contributing

We welcome contributions! When contributing to this repository:

  1. Follow the established code style (enforced by EditorConfig)
  2. Run dotnet format before committing
  3. Ensure all tests pass with dotnet test
  4. Update relevant README files for your changes
  5. Keep packages focused and loosely coupled
  6. Add unit tests for new features

Reporting Issues

Please report bugs and feature requests on the GitHub Issues page.

Links

Acknowledgments

This project integrates data from the NOAA Space Weather Prediction Center. We thank NOAA and NASA for providing free and open access to space weather data.

About

Integrations with third-party data sources

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages