diff --git a/README.md b/README.md index aa3adc2..74957fc 100644 --- a/README.md +++ b/README.md @@ -1 +1,84 @@ -# STX.SPAL.Core \ No newline at end of file +![SPAL.Core](https://raw.githubusercontent.com/The-Standard-Organization/STX.SPAL.Core/main/Resources/Images/spalcore-gitlogo.png) + +# STX.SPAL.Core + +[![Build](https://github.com/The-Standard-Organization/STX.SPAL.Core/actions/workflows/build.yml/badge.svg)](https://github.com/The-Standard-Organization/STX.SPAL.Core/actions/workflows/build.yml) +[![Nuget](https://img.shields.io/nuget/v/STX.SPAL.Core?logo=nuget&style=default)](https://www.nuget.org/packages/STX.SPAL.Core) +[![Nuget](https://img.shields.io/nuget/dt/STX.SPAL.Core?logo=nuget&style=default&color=blue&label=Downloads)](https://www.nuget.org/packages/STX.SPAL.Core) +[![The Standard](https://img.shields.io/github/v/release/hassanhabib/The-Standard?filter=v2.10.1&style=default&label=Standard%20Version&color=2ea44f)](https://github.com/hassanhabib/The-Standard) +[![The Standard - COMPLIANT](https://img.shields.io/badge/The_Standard-COMPLIANT-2ea44f)](https://github.com/hassanhabib/The-Standard) +[![The Standard Community](https://img.shields.io/discord/934130100008538142?color=%237289da&label=The%20Standard%20Community&logo=Discord)](https://discord.gg/vdPZ7hS52X) + +## Introduction +This is the Core library for Standardized Provider Abstraction Libraries (SPAL) + +SPAL is a concept to provide a standardized way to interact with different providers, such as brokers, and other services. + +The SPAL.Core library provides the basic building blocks for creating SPAL libraries. + +![Broker Concept](https://raw.githubusercontent.com/hassanhabib/The-Standard/master/1.%20Brokers/Resources/Brokers-1.8.0.png) + +SPAL.Core should provide the following features: +>`Extensibility` - Standardized provider abstraction libraries must be extensible to support more external providers. +> +>`Configurability` - For Standardized libraries to be usable with several providers, it must allow engineers to configure them to target a particular provider, local or remote. +> +>`Distributability` - Abstraction libraries must allow several engineers to publish their extensions of the library. The library does not need to have implementations of all providers in one binary. Instead, these libraries must provide an interface or a contract that all other extensions must implement to support a specific provider. +> +>`External Mockability (Cloud-Foreign)` - Standardized provider libraries must allow communications with mocked local phantom APIs. + + +#### For further information, please refer to this section of the [The-Standard](https://github.com/hassanhabib/The-Standard/blob/master/1.%20Brokers/1.8%20Broker%20Provider%20Abstraction.md) + +### Engineering Architecture(InProgress) + +![Current Engineering](https://raw.githubusercontent.com/The-Standard-Organization/STX.SPAL.Core/main/Resources/Diagrams/spal-diagram-05292024.png) + +## Standard-Compliance +This library was built according to The Standard. The library follows engineering principles, patterns and tooling as recommended by The Standard. + +This library is also a community effort which involves many hours of pair-programming, test-driven development and in-depth exploration, research, and design discussions. + +## Standard-Promise +The most important fulfillment aspect in a Standard complaint system is aimed towards contributing to people, its evolution, and principles. +An organization that systematically honors an environment of learning, training, and sharing knowledge is an organization that learns from the past, makes calculated risks for the future, +and brings everyone within it up to speed on the current state of things as honestly, rapidly, and efficiently as possible. + +We believe that everyone has the right to privacy, and will never do anything that could violate that right. +We are committed to writing ethical and responsible software, and will always strive to use our skills, coding, and systems for the good. +We believe that these beliefs will help to ensure that our software(s) are safe and secure and that it will never be used to harm or collect personal data for malicious purposes. + +The Standard Community as a promise to you is in upholding these values. + +## Contact Information + +If you have any suggestions, comments or questions, please feel free to contact me on: + +>[Twitter](https://twitter.com/hassanrezkhabib) +> +>[LinkedIn](https://www.linkedin.com/in/hassanrezkhabib/) +> +>[E-Mail](mailto:hassanhabib@live.com) + +### Past Sessions + +>Youtube +> +>[SPAL In Action](https://www.youtube.com/watch?v=gCDo24dJ5Fg) +> +>[Standard Provider Abstraction Libraries](https://www.youtube.com/watch?v=JEb0BA8CgFk) +> +>[Standard Provider Abstraction Libraries Part 2](https://www.youtube.com/watch?v=gvoskMQRqHU) +> +>[Standard Provider Abstraction Libraries Part 3](https://www.youtube.com/watch?v=98_9I2hpaKA&t=623s) +> + +### Important Notice +A special thanks to all the community members, and the following dedicated engineers for their hard work and dedication to the project. +>Mr. Hassan Habib +> +>Mr. Christo du Toit +> +>Mr. Raul LBoullosa +> +>Mr. Gregory Hays \ No newline at end of file diff --git a/STX.SPAL.Core/Resources/Diagrams/diagram.drawio b/STX.SPAL.Core/Resources/Diagrams/diagram.drawio new file mode 100644 index 0000000..244177e --- /dev/null +++ b/STX.SPAL.Core/Resources/Diagrams/diagram.drawio @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/STX.SPAL.Core/Resources/Diagrams/spal-diagram-05292024.png b/STX.SPAL.Core/Resources/Diagrams/spal-diagram-05292024.png new file mode 100644 index 0000000..876d594 Binary files /dev/null and b/STX.SPAL.Core/Resources/Diagrams/spal-diagram-05292024.png differ diff --git a/STX.SPAL.Core/Resources/Images/128x128-spalcore.png b/STX.SPAL.Core/Resources/Images/128x128-spalcore.png new file mode 100644 index 0000000..0e7a7ba Binary files /dev/null and b/STX.SPAL.Core/Resources/Images/128x128-spalcore.png differ diff --git a/STX.SPAL.Core/Resources/Images/256x256-spalcore.png b/STX.SPAL.Core/Resources/Images/256x256-spalcore.png new file mode 100644 index 0000000..77144c1 Binary files /dev/null and b/STX.SPAL.Core/Resources/Images/256x256-spalcore.png differ diff --git a/STX.SPAL.Core/Resources/Images/32x32-spalcore.png b/STX.SPAL.Core/Resources/Images/32x32-spalcore.png new file mode 100644 index 0000000..44c078f Binary files /dev/null and b/STX.SPAL.Core/Resources/Images/32x32-spalcore.png differ diff --git a/STX.SPAL.Core/Resources/Images/384x384-spalcore.png b/STX.SPAL.Core/Resources/Images/384x384-spalcore.png new file mode 100644 index 0000000..1132cc3 Binary files /dev/null and b/STX.SPAL.Core/Resources/Images/384x384-spalcore.png differ diff --git a/STX.SPAL.Core/Resources/Images/512x512-spalcore.png b/STX.SPAL.Core/Resources/Images/512x512-spalcore.png new file mode 100644 index 0000000..7a7beb2 Binary files /dev/null and b/STX.SPAL.Core/Resources/Images/512x512-spalcore.png differ diff --git a/STX.SPAL.Core/Resources/Images/64x64-spalcore.png b/STX.SPAL.Core/Resources/Images/64x64-spalcore.png new file mode 100644 index 0000000..839cb66 Binary files /dev/null and b/STX.SPAL.Core/Resources/Images/64x64-spalcore.png differ diff --git a/STX.SPAL.Core/Resources/Images/spalcore-gitlogo.png b/STX.SPAL.Core/Resources/Images/spalcore-gitlogo.png new file mode 100644 index 0000000..1990d19 Binary files /dev/null and b/STX.SPAL.Core/Resources/Images/spalcore-gitlogo.png differ diff --git a/STX.SPAL.Core/Resources/Images/spalcore.icns b/STX.SPAL.Core/Resources/Images/spalcore.icns new file mode 100644 index 0000000..f71d445 Binary files /dev/null and b/STX.SPAL.Core/Resources/Images/spalcore.icns differ diff --git a/STX.SPAL.Core/Resources/Images/spalcore.ico b/STX.SPAL.Core/Resources/Images/spalcore.ico new file mode 100644 index 0000000..32b4c54 Binary files /dev/null and b/STX.SPAL.Core/Resources/Images/spalcore.ico differ diff --git a/STX.SPAL.Core/STX.SPAL.Core.csproj b/STX.SPAL.Core/STX.SPAL.Core.csproj index 48b846e..7e868bd 100644 --- a/STX.SPAL.Core/STX.SPAL.Core.csproj +++ b/STX.SPAL.Core/STX.SPAL.Core.csproj @@ -10,4 +10,9 @@ + + + + + diff --git a/diagram.drawio b/diagram.drawio deleted file mode 100644 index 62b9aba..0000000 --- a/diagram.drawio +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file