SkillAgentSearch skills...

BookWorm

The practical implementation of Aspire using Microservices, AI-Agents

Install / Use

/learn @foxminchan/BookWorm
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<img src="./assets/Logo.svg" alt="BookWorm" width=80>

BookWorm

BookWorm CI (.NET) BookWorm CI (Frontend) Coverage Duplicated Lines (%)

<div> <a href="https://codespaces.new/foxminchan/BookWorm?quickstart=1" target="_blank"> <img alt="Open in GitHub Codespaces" src="https://github.com/codespaces/badge.svg"> </a> </div>

[!WARNING]

Disclaimer: This example is for demo use only. It’s not production-ready and may omit important features.

Introduction

<p align="justify"> ⭐ BookWorm showcases Aspire in a cloud-native application with AI integration. Built with DDD and VSA, it features multi-agent orchestration and standardized AI tooling through MCP with A2A & AG-UI Protocol support. </p> <details> <summary>View Screenshots</summary>

BookWorm Storefront BookWorm Backoffice

</details>

Project Goals

  • [x] Developed a cloud-native application using Aspire
  • [x] Implemented Vertical Slice Architecture with Domain-Driven Design & CQRS
  • [x] Enabled service-to-service communication with gRPC
  • [x] Incorporated various microservices patterns
    • [x] Utilized outbox and inbox patterns to manage commands and events
    • [x] Implemented saga patterns for orchestration and choreography
    • [x] Integrated event sourcing for storing domain events
    • [x] Implemented a microservices chassis for cross-cutting concerns and service infrastructure
  • [x] Implemented API versioning and feature flags for flexible application management
  • [x] Set up AuthN/AuthZ with Keycloak
    • [x] Used Authorization Code Flow with PKCE for user authentication
    • [x] Enabled Token Exchange for service-to-service authentication
  • [x] Implemented caching with HybridCache
  • [x] Incorporated AI components:
    • [x] Text embedding with text-embedding-3-large
    • [x] Integrated chatbot functionality using gpt-4o-mini
    • [x] Orchestrated multi-agent workflows using Agent Framework
    • [x] Standardized AI tooling with Model Context Protocol (MCP)
    • [x] Enabled agent-to-agent communication via A2A Protocol
    • [x] Supported Agent interactions via AG-UI Protocol
    • [x] Evaluate generative AI models and applications
    • [x] Agent governance with policy-based controls and monitoring
  • [x] Configured CI/CD with GitHub Actions
  • [x] Created comprehensive documentation:
    • [x] Used OpenAPI for REST API & AsyncAPI for event-driven endpoints
    • [x] Utilized EventCatalog for centralized architecture documentation
  • [x] Built modern client applications:
    • [x] Monorepo architecture powered by Turborepo
    • [x] Customer-facing storefront and admin backoffice dashboard with Next.js
    • [x] Supported WCAG 2.1 AA accessibility standards
  • [x] Established a testing strategy:
    • [x] Conducted service unit tests
    • [x] Implemented snapshot tests
    • [x] Established architecture testing strategy
    • [x] Performed load testing with k6
    • [x] Implemented frontend unit tests and component tests
    • [x] Conducted end-to-end testing with BDD
    • [ ] Planned integration tests

Project Architecture

Project Architecture

Getting Started

Prerequisites

[!NOTE]

  • 🤖 Ensure you have an OpenAI API key to use the AI features
  • 📧 Email services use SendGrid in production and Mailpit locally
  • 🐳 Docker Desktop must be running before starting the application

Run the Application

Follow these steps to get BookWorm running locally:

# 1. Clone the repository
git clone git@github.com:foxminchan/BookWorm.git

# 2. Navigate to the project directory
cd BookWorm

# 3. First-time setup
just prepare

# 4. Run the application
just run

[!NOTE]

On first run, you'll be prompted to enter necessary environment variables

Deploy the Application

To deploy BookWorm to Azure Container Apps, follow these steps:

  1. Authenticate with Azure:
az login
  1. Deploy the application:
aspire deploy
  1. Verify the deployment:

After deployment completes, get the application URL:

az containerapp show --name <app-name> --resource-group <resource-group> --query properties.configuration.ingress.fqdn --output tsv

Replace <app-name> and <resource-group> with the values you specified during deployment.

  1. Clean up resources:

To remove all deployed resources and avoid charges:

az group delete --name <resource-group> --yes --no-wait

Documentation

For comprehensive project documentation, visit our GitHub Wiki.

Contribution

Thanks to all contributors, your help is greatly appreciated!

Contributions are welcome! Please read the contribution guidelines and code of conduct to learn how to participate.

Support

  • If you like this project, please give it a ⭐ star.
  • If you have any issues or feature requests, please create an issue.

License

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

View on GitHub
GitHub Stars483
CategoryDevelopment
Updated2h ago
Forks62

Languages

C#

Security Score

100/100

Audited on Apr 5, 2026

No findings