https://github.com/theoliverlear/sigwarth-software-suite
A repository for Maven, NPM, PyPI, and NuGet utility projects made by Sigwarth Software.
https://github.com/theoliverlear/sigwarth-software-suite
github-actions java-library library maven npm pip tools
Last synced: 2 months ago
JSON representation
A repository for Maven, NPM, PyPI, and NuGet utility projects made by Sigwarth Software.
- Host: GitHub
- URL: https://github.com/theoliverlear/sigwarth-software-suite
- Owner: theoliverlear
- Created: 2025-08-23T23:25:36.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2025-09-02T21:04:57.000Z (10 months ago)
- Last Synced: 2025-09-02T22:22:35.919Z (10 months ago)
- Topics: github-actions, java-library, library, maven, npm, pip, tools
- Language: Java
- Homepage:
- Size: 180 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Sigwarth Software Suite ✨
## Focused libraries, better solutions. ⚡
---
Sigwarth Software Suite is a collection of Java modules that solve common
problems so you can ship faster. Each module is self‑contained and published
under the MIT License.
This repository is a Maven multi‑module project. You can use modules
individually or together.
## ⭐️ What’s inside
- Java-Suite (parent for Java libraries) 📦
- Builder-Suite — tiny factory/builder helper interfaces to standardize object construction.
- Net-Suite — simple HTTP/HTTPS utilities for fetching data with minimal setup.
- OpenAi-Suite — minimal wrappers for calling the OpenAI API using Java 11+ HttpClient.
- Spring-Boot-Suite 🌱
- Spring-Boot-Communication — small DTOs and helpers for API responses.
- Spring-Boot-Config — common Spring beans (e.g., ObjectMapper), basic security config.
- Spring-Boot-WebSocket — base WebSocket handler that parses requests and serializes responses.
- String-Suite — tiny string utilities (e.g., title case formatting). ✂️
- Npm-Suite (parent for NPM packages) 📦
- Angular-Suite — prebuilt Angular components, directives, and services (Angular 18+).
- Styles-Suite — SCSS variables, mixins, and utility classes for consistent styling.
## 🧭 Typical use cases
- Quickly add a generic WebSocket handler and focus only on your Request-to-Response logic.
- Fetch data from an HTTPS endpoint without pulling in a large HTTP client stack.
- Call OpenAI’s Chat Completions with a minimal, readable wrapper.
- Share common Spring Boot configuration across services.
- Perform simple string transformations in utilities or services.
## ✅ Why it’s handy
- Small and focused: minimal code, easy to read, easy to extend.
- Modular: depend on only what you need.
- Modern Java: builds against Java 23 (compatible with current JDKs in CI).
- MIT licensed: permissive and business‑friendly.
## 🚀 Quick start
1) Clone and build all modules locally 🛠️
- Prereqs: JDK 23+ and Maven 3.9+ 📚
- Windows PowerShell:
```
# From the repository root
mvn -T 1C -DskipTests install
```
2) Add a module to your project (example: String-Suite) ➕
- pom.xml
```
com.sigwarthsoftware
string-suite
0.0.6
```
If you prefer consuming from GitHub Packages instead of a local install, add the GitHub Packages repository to your pom.xml or settings.xml and use the same coordinates. See the parent pom for the distributionManagement configuration. 📦
3) Add an NPM package (example: @theoliverlear/styles-suite) 🧶
- .npmrc
```
@theoliverlear:registry=https://npm.pkg.github.com
```
- Install
```
npm install @theoliverlear/styles-suite
```
## 📦 Npm-Suite in detail
Npm-Suite contains production-ready packages published to GitHub Packages under the @theoliverlear scope. Below is a quick tour of what you get and how to use it.
- @theoliverlear/angular-suite — Angular components, directives, and services (Angular 18+)
- Install: `npm install @theoliverlear/angular-suite`
- Peer deps: @angular/* 18+, rxjs 7.8+, zone.js 0.15+, crypto-js
- What’s inside (selected):
- Components: `ss-anchor`, `ss-button`, `ss-footer`, `ss-head`, `ss-img`, `ss-input`, `ss-paragraph`, `ss-title`
- Directives: `[undraggable]`, `[unoptimizedImage]`
- Services: `DelayService`, `EmailValidatorService`, `HttpClientService`, `WebSocketService`
- Models: `TagType`, `ElementSize`, `ElementLink`, `TextElementLink`, `TargetType`
- Example usage:
- Module import:
```ts
import { AngularSuiteModule } from '@theoliverlear/angular-suite';
@NgModule({ imports: [AngularSuiteModule] })
export class AppModule {}
```
- ss-anchor (internal vs external links):
```ts
import { TextElementLink } from '@theoliverlear/angular-suite';
import { TargetType, TagType } from '@theoliverlear/angular-suite';
link = new TextElementLink('/dashboard', TargetType.SELF, true, 'Go to dashboard', TagType.SPAN);
// template
//
```
- @theoliverlear/styles-suite — SCSS functions and mixins for layouts and sizing
- Install: `npm install @theoliverlear/styles-suite`
- Entry: `index.scss` (Sass module system via @use/@forward)
- Mixins: `flex`, `size`, `square-size`, `basic-margin-padding`
- Functions: `calc-size`, `simple-calc`, `simplest-calc`, `simple-pixel-calc`, `add-alpha`
- Example usage (Sass):
```scss
@use "@theoliverlear/styles-suite" as ss;
.container { @include ss.flex(space-between, center, column); }
.box { @include ss.square-size(3rem); }
.title { font-size: ss.calc-size(50, 30, 0.5); }
```
## 🧩 Usage examples
- String-Suite (TitleFormatter) 🔡
```java
import com.sigwarthsoftware.string.TitleFormatter;
String once = TitleFormatter.formatTitleCase("hello world"); // "Hello world"
String words = TitleFormatter.formatTitleCases("hello big world"); // "Hello Big World"
```
- Net-Suite (ApiDataRetriever) 🌐
```java
import com.sigwarthsoftware.net.ApiDataRetriever;
ApiDataRetriever retriever = new ApiDataRetriever("https://api.github.com");
String json = retriever.getResponse();
```
- Spring-Boot-WebSocket (base handler) 🔌
```java
import com.sigwarthsoftware.springboot.websocket.WebSocketHandler;
import org.springframework.stereotype.Component;
class EchoRequest { public String message; }
class EchoResponse { public String message; }
@Component
public class EchoHandler extends WebSocketHandler {
@Override
public EchoResponse makeResponse(EchoRequest request) {
EchoResponse response = new EchoResponse();
response.message = "Echo: " + request.message;
return response;
}
}
```
- OpenAi-Suite (simple chat request) 🤖
```java
import com.sigwarthsoftware.openai.message.ApiCall;
import com.sigwarthsoftware.openai.message.ApiSettings;
import com.sigwarthsoftware.openai.model.AiModel;
ApiCall call = new ApiCall(AiModel.GPT_4, ApiSettings.DEFAULT, "Say hello");
call.fetchResponse();
String aiResponse = call.getResponse();
```
Note: Set environment variable OPENAI_KEY before running. 🔐
## 🛣️ Roadmap / Ecosystems
Beyond Java, the suite aims to provide helpers and publishing for multiple ecosystems:
- NPM (Node.js) 📦 — utilities and tooling published to the npm registry.
- PyPI (Pip) 🐍 — Python helpers available via pip install.
- NuGet (.NET) 💠 — .NET packages for common tasks.
This README will evolve as cross-language modules land. Contributions are welcome! 🙌
## 🛠️ Technology
- Language: Java 23 ☕, JavaScript (Node.js), TypeScript (Node.js), Sass (SCSS)
- Build: Maven (multi‑module reactor), GitHub Actions, Node.js
- Libraries: Spring Boot (select modules), SLF4J, Lombok, Java HttpClient
- NPM: Angular 18+, SCSS, TypeScript, RxJS, Zone.js, CryptoJS
## ❓ Questions or help
Email Oliver Lear Sigwarth (@theoliverlear): sigwarthsoftware@gmail.com 📬
## 📄 License
MIT — see the license section in the project [pom.xml](./pom.xml) for details.