Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3,295 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Apps

CI Java Go Node Nx Playwright Angular License

This is a multi-language, multi-project repository that houses all code, configuration, and tooling. This repository is organized into three main directories:

  • apps: Contains full application code for both frontends and backends.
  • libs: Contains reusable libraries, grouped by type:
    • feature: Components and views specific to a feature or domain.
    • data-access: Logic for communicating with backends, APIs, or databases.
    • util: Common utilities, helper functions, and shared models.
    • ui: Reusable UI components, theming, and styling.
  • tools: Contains scripts and configuration for versioning, formatting, Docker orchestration, and CI/CD.

Directory Structure

.
├── apps/                    # Complete applications
│   ├── frontend/            # Angular micro-frontends
│   │   ├── container/
│   │   ├── authui/
│   │   ├── usersui/
│   │   └── rolesui/
│   ├── backend/             # Go + Spring Boot services
│   │   ├── servicediscovery/
│   │   └── usersrole/
│   ├── database/            # DB migrations
│   │   └── authdb/
│   └── e2e/                 # Playwright end-to-end tests
│       └── platform-e2e/
│
├── libs/                    # Reusable libraries
│   ├── frontend/            # Angular shared libs
│   │   ├── authui/
│   │   │   ├── feature/
│   │   │   └── util/
│   │   ├── container/
│   │   │   ├── feature/
│   │   │   └── util/
│   │   ├── rolesui/
│   │   │   ├── feature/
│   │   │   └── util/
│   │   ├── usersui/
│   │   │   ├── feature/
│   │   │   ├── data-access/
│   │   │   └── util/
│   │   └── shared/          # Cross-app frontend shared
│   │       ├── ui/
│   │       ├── util/
│   │       └── data-access/
│   └── backend/             # Go shared libs
│       └── shared/
│           └── util/
│
└── tools/                   # Monorepo tooling

Key Structural Principles:

  • Role-Based Grouping: Top-level organization by role (frontend, backend, e2e, database).
  • App-Specific Isolation: Libraries scoped to specific applications.
  • Shared Code Hierarchy:
    • App-Scoped: Only used by one application (e.g., frontend/usersui/*).
    • Frontend-Shared: Shared across Angular apps (e.g., frontend/shared/*).
  • Library Types:
    • feature/: Domain-specific components and logic.
    • data-access/: API/backend communication.
    • util/: Helper functions and utilities.
    • ui/: Reusable UI components.

🚀 Running Tasks

Execute tasks with Nx using the following syntax:

npx nx <target> <project> [options]

Examples:

  • Build the frontend-usersui-data-access library:

    npx nx build frontend-usersui-data-access
  • Run multiple targets:

    npx nx run-many -t <target1> <target2>
  • Filter specific projects:

    npx nx run-many -t <target1> <target2> -p <proj1> <proj2>

Learn more at Nx Documentation.

🌐 Explore the Project Graph

Generate an interactive visualization of the workspace dependencies:

npx nx graph

This graph helps you understand how projects are connected and see which tasks can be executed. See more at NX Explore Graph.

📦 Deployment & Infrastructure

App Deployment

Helm charts and Argo CD configurations for the applications live in:

Platform & Infrastructure

Cluster configuration, Terraform, and tenant definitions live in:

📚 Library Overview

The monorepo organizes libraries by type to encourage reuse and maintainability:

  • Feature Libraries: Provide UI components and feature-specific logic (e.g., frontend-usersui-feature-core).
  • Data-Access Libraries: Encapsulate API communication and business logic (e.g., frontend-usersui-data-access).
  • Util Libraries: Offer shared TypeScript utilities, helper functions, and models (e.g., frontend-usersui-util, frontend-shared-util).
  • UI Libraries: Supply reusable UI components and theming (e.g., frontend-shared-ui).

✨ Additional Resources

📌 About This Workspace

This monorepo leverages Nx for efficient task management and CI/CD across multiple languages and projects, promoting code reuse and maintainability.

Maintainer:

  • Jake Willmsen

Releases

Packages

Used by

Contributors

Languages