Skip to content

Releases: drminnaar/offgrid

V2.1.0 - Stable Release

28 Feb 09:21

Choose a tag to compare

Offgrid v2.1.0 Release Notes

The focus of this release is to introduce product management.

🚀 Highlights

  • Portal App: Product management pages, product details decomposition, improved filtering, and type consistency.
  • Portal API: New endpoints for products and product variants.
  • Infrastructure: Added MongoDB service, add MongoDb initialization, and build tasks for mongosh.
  • Shared Libraries: MongoDB utilities, datetime conversion extensions, and enhanced query/filtering support.
  • Docs & Onboarding: Updated onboarding docs for MongoDB and decision registry.

✨ Features

Portal App

  • Product management pages with advanced filtering.
  • Decomposed product details into reusable subcomponents.
  • Improved type consistency by replacing interfaces with types.

Portal API

  • Endpoint to retrieve product by product id.
  • Endpoint to get product variants.
  • Initial 'products' module.

Infrastructure

  • Added MongoDB service to local stack.
  • Build task for running mongosh.
  • Improved dictionary key casing in MongoDB seed data.

Shared Libraries

  • MongoDB utilities for .NET.
  • Extension to convert datetime to Unix time (seconds).
  • QueryOptions abstraction for filtering.
  • Factory method for empty PagedList.

Docs & Onboarding

  • Updated onboarding documentation for MongoDB.
  • Added decision registry documentation and summary.

🛠️ Improvements & Refactoring

  • Decomposed product details into subcomponents for maintainability.
  • Replaced interfaces with types for consistency in portal app.
  • Refactored IMongoQuery to QueryOptions in shared libraries.
  • Introduced protected IEventHandler property to RabbitMqConsumerClientBase.

V2.0.0 - Stable Release

18 Feb 06:43

Choose a tag to compare

Offgrid v2.0.0 Release Notes

🚀 Highlights

  • Portal App: Customer detail page, customer list with filters, pagination, and improved navigation.
  • Portal API: Full customer management endpoints (list, detail, suspend, reinstate), outbox pattern, event processor, and robust validation.
  • Infrastructure: Outbox/event processor, RabbitMQ integration, improved Flyway migrations, and enhanced local dev scripts.
  • Shared Libraries: New DDD/domain abstractions, enum utilities, pagination, and messaging contracts.
  • Docs & Onboarding: Comprehensive agent guidance, onboarding, and design documentation.

✨ Features

Portal App

  • Customer detail page and related UI components
  • Customer list page: table, filters, pagination, drawer nav, API integration
  • Keycloak authentication, Redux Toolkit state, theme toggle
  • Routing, login, and not found page

Portal API

  • Paginated "Get All Customers" endpoint
  • "Get Customer By Id" endpoint with validation
  • Filter customers by status
  • Customer suspend/reinstate endpoints and domain events
  • Customer change tracking with Unit of Work
  • Outbox pattern for reliable event publishing
  • EventProcessor service with Spectre.Console visualization

Infrastructure

  • RabbitMQ service and integration
  • Flyway migrations for customer, outbox, and change tracking tables
  • Dev helper scripts for infra, psql, rabbitmqadmin

Shared Libraries

  • Enum extensions, pagination utilities, DDD/domain abstractions
  • Messaging contracts, CNCF cloud event factory

Docs & Onboarding

  • Agent guidance, onboarding, and reorganized documentation
  • Portal and shop design docs

🛠️ Improvements & Refactoring

  • Refactored project into a simpler monorepo layout
  • Improved JSON serialization, error handling, and validation
  • Added concurrency handling for customer updates
  • Enhanced scripts and tasks for local development

🐞 Bug Fixes & Chores

  • Fixed formatting, naming, and improved code organization
  • Updated scripts to match new directory structure
  • Fixed broken documentation links

📚 Documentation


🎉 Thank You

Thank you for exploring Offgrid v2.0.0! This release focused on implementing the initial backoffice system called Portal.

For detailed information about any component, please refer to the respective README files and documentation linked throughout this release notes.


V1.0.0 - Initial Stable Release

03 Feb 03:52

Choose a tag to compare

Offgrid v1.0.0 Release Notes

🎉 Initial Release

This is the initial release of Offgrid, a comprehensive demonstration e-commerce platform for an adventure gear retail business. This release establishes the foundational architecture, infrastructure, and application framework for building modern, scalable e-commerce systems.


📋 Overview

Offgrid is an e-commerce monorepo demonstrating various practices for building applications using .NET 10, Next.js, and React. The platform includes a customer-facing shopping website and infrastructure for future staff portal development.

What is Offgrid?

Offgrid is a fictitious e-commerce business operating as an online retail destination for adventure enthusiasts, offering a curated selection of adventure gear for exploration and outdoor pursuits. It specializes in biking, winter sports, and water sports equipment.


🏗️ Architecture & Design

Organizational Design

Monorepo Structure

The project follows a well-organized monorepo strategy with clear separation of concerns:

offgrid/
├── apps/                    # Primary applications
│   ├── shop/                # Customer-facing e-commerce website
│   │   ├── shop-app/        # Next.js web application
│   │   ├── shop-api/        # .NET 10 API
│   │   └── docs/            # Shop system design documentation
│   └── portal/              # Staff portal (framework ready)
│
├── libs/                    # Shared libraries
│   ├── dotnet/              # .NET shared libraries
│   └── typescript/          # TypeScript shared libraries
│
├── infra/                   # Infrastructure as code
│   └── local/               # Local development environment
│       ├── postgres/        # PostgreSQL configuration
│       ├── keycloak/        # Keycloak configuration
│       └── scripts/         # Infrastructure automation
│
├── docs/                    # Comprehensive documentation
│   ├── design/              # Design documentation
│   ├── standards/           # Standards and conventions
│   └── images/              # Documentation images
│
└── scripts/                 # Automation and utility scripts

🤖 Technology Stack

Languages & Frameworks

  • C# 14 with .NET 10 - High-performance backend APIs and services
  • TypeScript - Type-safe frontend development
  • Next.js - React framework with SSR/SSG for the shopping website
  • React - Component-based UI library (framework established for staff portal)
  • Node.js - JavaScript runtime for Next.js and tooling
  • Bash - Shell scripting for automation and DevOps workflows

Infrastructure & Services

  • PostgreSQL - Primary relational database with ACID compliance
  • Keycloak - Identity and access management (OIDC/OAuth2/SAML support)
  • Flyway (Red Hat) - Database migration and version control

DevOps & Tooling

  • Docker & Docker Compose - Containerization and local orchestration
  • Git - Version control with established conventions
  • VS Code - Recommended IDE with full stack support

🚀 Features & Components

Infrastructure Services

Docker Compose Orchestration

  • Multi-service orchestration using Docker Compose
  • Modular compose file structure with include directives
  • Automated service lifecycle management

Database Services

  • PostgreSQL - Production-ready relational database
  • Flyway - Automated database migrations

Identity & Access Management

  • Keycloak - Full-featured identity provider
    • Realm configuration for Offgrid
    • SSO, user federation, and role-based access control

Automation Scripts

  • compose.sh - Docker Compose wrapper for service management
  • psql.sh - PostgreSQL client access script
  • flyway.sh - Database migration management

Shop Application

Shop Web Application

  • Next.js framework with TypeScript
  • Responsive design
  • Docker containerization support
  • Environment-based configuration

Shop API

  • .NET 10 RESTful API
  • C# 14 language features
  • Clean architecture patterns
  • Docker containerization support

Design Documentation

  • Version 1 architecture and design
  • API specifications
  • Database schema design

Development Experience

Prerequisite Validation

Comprehensive validation scripts to ensure proper development environment:

  • prereq-check.sh - Master script running all prerequisite checks
  • tool-installation-check.sh - Verifies installation of required tools:
    • Node.js 24
    • .NET 10
    • Git
    • Docker Desktop
    • npm
    • Optional tools (Azure CLI, Terraform, AWS CLI, etc.)
  • env-file-check.sh - Validates environment configuration files
  • host-file-entry-check.sh - Checks required host file entries

Service Management Scripts

  • run-infra-services.sh - One-command infrastructure startup
    • Starts PostgreSQL, Keycloak, and all infrastructure services
    • Runs Flyway migrations automatically
  • run-shop-services.sh - One-command shop services startup
    • Starts shop-app (Next.js) and shop-api (.NET) in Docker

Standards & Conventions

Git Standards

  • Commit Convention - Structured commit message format
    • Format: <type>(<scope>): <subject>
    • Types: feat, fix, docs, style, refactor, test, chore, etc.
    • Detailed guidelines for writing meaningful commits
  • Git Setup Guide - Repository configuration and best practices
    • Branch naming conventions
    • Pull request workflows
    • Code review guidelines

Documentation Standards

  • Comprehensive README files at every level
  • Architecture decision records
  • Design documentation with diagrams
  • Getting started guides

📦 What's Included

✅ Delivered in v1.0.0

Applications

  • ✅ Shop web application (Next.js + TypeScript)
  • ✅ Shop API (.NET 10 + C# 14)
  • ✅ Docker containerization for both services

Infrastructure

  • ✅ PostgreSQL database with Docker configuration
  • ✅ Keycloak identity provider with realm setup
  • ✅ Flyway database migration framework
  • ✅ Docker Compose multi-service orchestration
  • ✅ Automated infrastructure management scripts

Development Tools

  • ✅ Comprehensive prerequisite validation scripts
  • ✅ One-command service startup scripts
  • ✅ Database access and migration utilities
  • ✅ Environment configuration templates

Documentation

  • ✅ Main project README with getting started guide
  • ✅ Domain-Driven Design comprehensive guide
  • ✅ Organizational and strategic design documents
  • ✅ Git standards and commit conventions
  • ✅ Infrastructure setup and configuration guide
  • ✅ Application-specific README files
  • ✅ Technology stack overview with badges

Design Assets

  • ✅ Cover image and branding
  • ✅ Technology stack diagrams
  • ✅ Architecture overview diagrams

🎯 Getting Started

Prerequisites

Required Tools

  • Node.js 24
  • .NET 10
  • Git
  • Docker Desktop
  • npm (comes with Node.js)
  • WSL or Git Bash (Windows users)

Optional Tools

  • Azure CLI (for Azure deployments)
  • Terraform (for IaC)
  • AWS CLI (for AWS deployments)
  • jq (JSON parsing in scripts)
  • yq (YAML parsing in scripts)

Quick Start

1. Verify Prerequisites

# Run comprehensive prerequisite check
./scripts/prereq-check.sh

# Or run individual checks:
./scripts/tool-installation-check.sh
./scripts/env-file-check.sh
./scripts/host-file-entry-check.sh

2. Start Infrastructure Services

# One-command infrastructure startup
./scripts/run-infra-services.sh

# Or manually:
./infra/local/scripts/compose.sh up
./infra/local/scripts/flyway.sh migrate

3. Start Shop Services (Optional - Docker)

# Run shop services in Docker
./scripts/run-shop-services.sh

# Or run outside Docker (recommended for development):
# - See apps/shop/shop-app/README.md
# - See apps/shop/shop-api/README.md

Access Points

Once services are running, access them at:

Database Access

# Connect to PostgreSQL
./infra/local/scripts/psql.sh

# Check Flyway migration status
./infra/local/scripts/flyway.sh info

# Run migrations
./infra/local/scripts/flyway.sh migrate

📚 Documentation

Main Documentation

Application Documentation

Design & Architecture

Standards & Conventions


🔧 Configuration

Environment Files

All services use...

Read more