# saran-nambirajan-kanini/ai-smart-reminder architecture

> Architecture diagram of the GitHub repository saran-nambirajan-kanini/ai-smart-reminder, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-08-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/saran-nambirajan-kanini/ai-smart-reminder
- Repository: https://github.com/saran-nambirajan-kanini/ai-smart-reminder

## Overview

#### Purpose and Scope
This repository combines:
1. **PropelIQ-Copilot**, a documentation- and prompt-driven AI development workflow framework under `.propel/`.
2. An early-stage **AiSmartReminder** application scaffold: ASP.NET Core API plus Angular client.

The application source is largely structural; domain entities, API controllers, persistence implementations, and feature services are not yet present.

#### Application Entry Points
- Backend host: `src/AiSmartReminder.Api/Program.cs`, in project `src/AiSmartReminder.Api/AiSmartReminder.Api.csproj`.
- Angular browser bootstrap: `src/AiSmartReminder.Web/src/main.ts`.
- Angular root composition and route boundary: `src/AiSmartReminder.Web/src/app/app.config.ts`, `src/AiSmartReminder.Web/src/app/app.routes.ts`, and `src/AiSmartReminder.Web/src/app/app.component.ts`.
- Solution-level composition: `AiSmartReminder.sln`.

#### Backend Clean-Architecture Layers
The .NET solution is organized into four intended dependency layers:
- **Domain** owns business entities, value objects, enums, exceptions, and domain-facing interfaces: `src/AiSmartReminder.Domain/Entities`, `src/AiSmartReminder.Domain/ValueObjects`, `src/AiSmartReminder.Domain/Interfaces`.
- **Application** is the use-case boundary for DTOs, application interfaces, validation, and orchestration services: `src/AiSmartReminder.Application/DTOs`, `src/AiSmartReminder.Application/Interfaces`, `src/AiSmartReminder.Application/Services`.
- **Infrastructure** supplies implementations for persistence, configuration, and external services: `src/AiSmartReminder.Infrastructure/Persistence`, `src/AiSmartReminder.Infrastructure/Services`, `src/AiSmartReminder.Infrastructure/DependencyInjection.cs`.
- **API** is the HTTP delivery layer, expected to bind endpoints/controllers to application services and cross-cutting middleware: `src/AiSmartReminder.Api/Controllers`, `src/AiSmartReminder.Api/Middleware`, `src/AiSmartReminder.Api/Filters`.

Application and infrastructure each expose a composition-root extension point through `src/AiSmartReminder.Application/DependencyInjection.cs` and `src/AiSmartReminder.Infrastructure/DependencyInjection.cs`; `Program.cs` should be their integration boundary.

#### Client Layer
The frontend is a standalone Angular application defined by `src/AiSmartReminder.Web/angular.json` and `src/AiSmartReminder.Web/package.json`. Its current architecture consists of:
- Root shell and global presentation: `src/AiSmartReminder.Web/src/app/app.component.html` and `src/AiSmartReminder.Web/src/styles.scss`.
- Route-driven feature expansion point: `src/AiSmartReminder.Web/src/app/app.routes.ts`.
- Environment validation/configuration boundary: `src/AiSmartReminder.Web/src/app/services/environment-validator.service.ts` and `src/AiSmartReminder.Web/src/environments/environment.model.ts`.

Client-to-API integration is intended but no HTTP feature clients or domain screens are currently present.

#### Intended Product Flows
Product artifacts describe an AI-assisted task/reminder system with authentication, profiles, task management, reminders, dashboards, notifications, and administration. The UI flow inventory is captured in `.propel/context/wireframes/Hi-Fi-v2/wireframe-SCR-001-login.html` through `.propel/context/wireframes/Hi-Fi-v2/wireframe-SCR-019-admin-settings.html`.

Expected runtime flow is: Angular route/component → API HTTP endpoint → Application use case/validation → Domain rules → Infrastructure persistence or external integration → DTO/HTTP response. These remain planned boundaries rather than implemented flows.

#### Workflow and Planning System
`.propel/` is architecturally central to how this repository is specified and evolved:
- Requirements, design, data/model decisions: `.propel/context/docs/spec.md`, `.propel/context/docs/design.md`, `.propel/context/docs/models.md`.
- Backlog decomposition and implementation inputs: `.propel/context/docs/epics.md`, `.propel/context/tasks/EP-001`, `.propel/context/tasks/EP-DATA`.
- Multi-stage AI workflow coordinators: `.propel/orchestrators/discovery-agent.md`, `.propel/orchestrators/build-feature-agent.md`, `.propel/orchestrators/devops-agent.md`.
- Standards governing ASP.NET, Angular, security, databases, and deployment: `.propel/rules/aspnet-webapi-standards.md`, `.propel/rules/angular-development-standards.md`, `.propel/rules/security-standards-owasp.md`.

#### Runtime, Infrastructure, and External Boundaries
Material runtimes are .NET/ASP.NET Core for the API and Node.js/Angular for the client. Local API settings are under `src/AiSmartReminder.Api/appsettings.json` and `src/AiSmartReminder.Api/appsettings.Development.json`; development launch behavior is in `src/AiSmartReminder.Api/Properties/launchSettings.json`.

No concrete database provider, cloud deployment, CI/CD pipeline, authentication provider, or AI provider implementation appears in the source tree. The framework setup documents a Context7 API-key integration, but no project-level `.env` or runtime integration is shown. Architectural dependency rules are tested in `tests/AiSmartReminder.Architecture.Tests/ArchitectureTests.cs`.

Main entry points: [`src/AiSmartReminder.Api/Program.cs`](https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/src/AiSmartReminder.Api/Program.cs) (API host), [`src/AiSmartReminder.Application/Services`](https://github.com/saran-nambirajan-kanini/ai-smart-reminder/tree/main/src/AiSmartReminder.Application/Services) (Application layer), [`src/AiSmartReminder.Web/src/main.ts`](https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/src/AiSmartReminder.Web/src/main.ts) (Browser bootstrap), [`AiSmartReminder.sln`](https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/AiSmartReminder.sln) (Solution)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workflow["PropelIQ-Copilot"]
  node_specs["Product specifications<br/>planning docs<br/>[spec.md]"]
  node_backlog["Epics and tasks<br/>work backlog<br/>[epics.md]"]
  node_orchestrators["AI workflow agents<br/>agent playbooks"]
  node_standards["Engineering standards<br/>rules"]
end

subgraph group_backend["ASP.NET Core backend"]
  node_api_host["API host<br/>ASP.NET Core entry point<br/>[Program.cs]"]
  node_api_delivery["HTTP delivery<br/>controllers middleware filters<br/>[Controllers]"]
  node_application["Application layer<br/>use cases DTOs validation<br/>[Services]"]
  node_app_di["Application composition<br/>DI extension"]
  node_domain["Domain layer<br/>entities value objects rules<br/>[Entities]"]
  node_infrastructure["Infrastructure layer<br/>persistence external services<br/>[Persistence]"]
  node_infra_di["Infrastructure composition<br/>DI extension"]
  node_architecture_tests["Architecture rules<br/>architecture tests"]
end

subgraph group_frontend["Angular client"]
  node_web_bootstrap["Browser bootstrap<br/>Angular entry point<br/>[main.ts]"]
  node_web_shell["Root shell<br/>Angular root component<br/>[app.component.ts]"]
  node_routes["Route boundary<br/>Angular routes<br/>[app.routes.ts]"]
  node_environment["Environment boundary<br/>configuration validation"]
  node_api_contract{{"API integration<br/>planned HTTP client boundary"}}
end

node_solution["Solution"]

node_specs -->|"decomposed into"| node_backlog
node_backlog -->|"drives"| node_orchestrators
node_standards -->|"governs"| node_orchestrators
node_orchestrators -.->|"guides evolution"| node_solution
node_solution -->|"contains"| node_api_host
node_solution -->|"contains"| node_web_bootstrap
node_api_host -.->|"hosts"| node_api_delivery
node_api_host -->|"integrates"| node_app_di
node_api_host -->|"integrates"| node_infra_di
node_api_delivery -.->|"invokes"| node_application
node_app_di -->|"registers"| node_application
node_application -.->|"applies rules from"| node_domain
node_infra_di -->|"registers"| node_infrastructure
node_infrastructure -.->|"implements interfaces for"| node_domain
node_architecture_tests -->|"enforces dependencies"| node_application
node_architecture_tests -->|"enforces dependencies"| node_infrastructure
node_web_bootstrap -->|"bootstraps"| node_web_shell
node_web_shell -->|"renders route outlet"| node_routes
node_web_bootstrap -->|"validates configuration"| node_environment
node_routes -.->|"planned feature calls"| node_api_contract
node_api_contract -.->|"planned HTTP requests"| node_api_delivery

click node_solution "https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/AiSmartReminder.sln"
click node_specs "https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/.propel/context/docs/spec.md"
click node_backlog "https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/.propel/context/docs/epics.md"
click node_orchestrators "https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/.propel/orchestrators/build-feature-agent.md"
click node_standards "https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/.propel/rules/aspnet-webapi-standards.md"
click node_api_host "https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/src/AiSmartReminder.Api/Program.cs"
click node_api_delivery "https://github.com/saran-nambirajan-kanini/ai-smart-reminder/tree/main/src/AiSmartReminder.Api/Controllers"
click node_application "https://github.com/saran-nambirajan-kanini/ai-smart-reminder/tree/main/src/AiSmartReminder.Application/Services"
click node_app_di "https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/src/AiSmartReminder.Application/DependencyInjection.cs"
click node_domain "https://github.com/saran-nambirajan-kanini/ai-smart-reminder/tree/main/src/AiSmartReminder.Domain/Entities"
click node_infrastructure "https://github.com/saran-nambirajan-kanini/ai-smart-reminder/tree/main/src/AiSmartReminder.Infrastructure/Persistence"
click node_infra_di "https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/src/AiSmartReminder.Infrastructure/DependencyInjection.cs"
click node_architecture_tests "https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/tests/AiSmartReminder.Architecture.Tests/ArchitectureTests.cs"
click node_web_bootstrap "https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/src/AiSmartReminder.Web/src/main.ts"
click node_web_shell "https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/src/AiSmartReminder.Web/src/app/app.component.ts"
click node_routes "https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/src/AiSmartReminder.Web/src/app/app.routes.ts"
click node_environment "https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/src/AiSmartReminder.Web/src/app/services/environment-validator.service.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_specs,node_backlog,node_orchestrators,node_standards toneBlue
class node_api_host,node_api_delivery,node_application,node_app_di,node_domain,node_infrastructure,node_infra_di,node_architecture_tests toneAmber
class node_web_bootstrap,node_web_shell,node_routes,node_environment,node_api_contract toneMint
class node_solution toneNeutral
```

## Components

### PropelIQ-Copilot

Documentation-driven AI workflow and delivery governance.

- [Product specifications](https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/.propel/context/docs/spec.md): planning docs · Requirements, design, and model decisions. · `.propel/context/docs/spec.md`
- [Epics and tasks](https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/.propel/context/docs/epics.md): work backlog · Implementation decomposition inputs. · `.propel/context/docs/epics.md`
- [AI workflow agents](https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/.propel/orchestrators/build-feature-agent.md): agent playbooks · Multi-stage discovery, build, and DevOps coordinators. · `.propel/orchestrators/build-feature-agent.md`
- [Engineering standards](https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/.propel/rules/aspnet-webapi-standards.md): rules · ASP.NET, Angular, security, database, and deployment guidance. · `.propel/rules/aspnet-webapi-standards.md`

### ASP.NET Core backend

Intended Clean Architecture solution layers.

- [API host](https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/src/AiSmartReminder.Api/Program.cs): ASP.NET Core entry point · HTTP composition root. · `src/AiSmartReminder.Api/Program.cs`
- [HTTP delivery](https://github.com/saran-nambirajan-kanini/ai-smart-reminder/tree/main/src/AiSmartReminder.Api/Controllers): controllers middleware filters · Planned endpoint and cross-cutting boundary. · `src/AiSmartReminder.Api/Controllers`
- [Application layer](https://github.com/saran-nambirajan-kanini/ai-smart-reminder/tree/main/src/AiSmartReminder.Application/Services): use cases DTOs validation · Planned orchestration and application contracts. · `src/AiSmartReminder.Application/Services`
- [Application composition](https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/src/AiSmartReminder.Application/DependencyInjection.cs): DI extension · `src/AiSmartReminder.Application/DependencyInjection.cs`
- [Domain layer](https://github.com/saran-nambirajan-kanini/ai-smart-reminder/tree/main/src/AiSmartReminder.Domain/Entities): entities value objects rules · Business model and domain-facing interfaces. · `src/AiSmartReminder.Domain/Entities`
- [Infrastructure layer](https://github.com/saran-nambirajan-kanini/ai-smart-reminder/tree/main/src/AiSmartReminder.Infrastructure/Persistence): persistence external services · Planned technical implementations. · `src/AiSmartReminder.Infrastructure/Persistence`
- [Infrastructure composition](https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/src/AiSmartReminder.Infrastructure/DependencyInjection.cs): DI extension · `src/AiSmartReminder.Infrastructure/DependencyInjection.cs`
- [Architecture rules](https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/tests/AiSmartReminder.Architecture.Tests/ArchitectureTests.cs): architecture tests · Verifies dependency constraints. · `tests/AiSmartReminder.Architecture.Tests/ArchitectureTests.cs`

### Angular client

Standalone browser application scaffold.

- [Browser bootstrap](https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/src/AiSmartReminder.Web/src/main.ts): Angular entry point · Starts the standalone Angular application. · `src/AiSmartReminder.Web/src/main.ts`
- [Root shell](https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/src/AiSmartReminder.Web/src/app/app.component.ts): Angular root component · Global presentation shell. · `src/AiSmartReminder.Web/src/app/app.component.ts`
- [Route boundary](https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/src/AiSmartReminder.Web/src/app/app.routes.ts): Angular routes · Feature expansion point for route-driven UI. · `src/AiSmartReminder.Web/src/app/app.routes.ts`
- [Environment boundary](https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/src/AiSmartReminder.Web/src/app/services/environment-validator.service.ts): configuration validation · Validates client environment configuration. · `src/AiSmartReminder.Web/src/app/services/environment-validator.service.ts`
- **API integration**: planned HTTP client boundary · No feature HTTP clients are implemented yet.

### Other components

- [Solution](https://github.com/saran-nambirajan-kanini/ai-smart-reminder/blob/main/AiSmartReminder.sln): solution · `AiSmartReminder.sln`

## Connections

- Product specifications → Epics and tasks: decomposed into
- Epics and tasks → AI workflow agents: drives
- Engineering standards → AI workflow agents: governs
- AI workflow agents → Solution: guides evolution
- Solution → API host: contains
- Solution → Browser bootstrap: contains
- API host → HTTP delivery: hosts
- API host → Application composition: integrates
- API host → Infrastructure composition: integrates
- HTTP delivery → Application layer: invokes
- Application composition → Application layer: registers
- Application layer → Domain layer: applies rules from
- Infrastructure composition → Infrastructure layer: registers
- Infrastructure layer → Domain layer: implements interfaces for
- Architecture rules → Application layer: enforces dependencies
- Architecture rules → Infrastructure layer: enforces dependencies
- Browser bootstrap → Root shell: bootstraps
- Root shell → Route boundary: renders route outlet
- Browser bootstrap → Environment boundary: validates configuration
- Route boundary → API integration: planned feature calls
- API integration → HTTP delivery: planned HTTP requests
