-
Notifications
You must be signed in to change notification settings - Fork 26
Feature/add aspire #31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- Created 01-init-db.sh to initialize the contacts database if it doesn't exist. - Added 02-seed-data.sql to create necessary tables and insert initial data including users, roles, permissions, and sample contacts. - Implemented foreign key constraints and unique constraints for data integrity. - Seeded initial roles (Admin, Reader, Editor) and assigned permissions accordingly.
…image to 17-alpine and add pgAdmin service to docker-compose.
…mponents - Bump Angular and related dependencies to version 21.0.1 - Update Express to version 4.21.0 - Update TypeScript to version 5.9.0 - Update Tailwind CSS and PostCSS dependencies - Refactor HostListener decorators in HeaderComponent and LayoutComponent to remove unused event parameters - Add Fluent 2 Design System tokens and utility classes to Tailwind CSS for consistent styling
…odels and validators; update frontend technology descriptions
- Refactor role-permission mapping component to use ChangeDetectionStrategy.OnPush for better performance. - Update roles component to include loading indicators and improved error handling. - Revamp user roles management UI with a new layout and enhanced user experience. - Implement confirmation dialogs for user and role deletions to prevent accidental actions. - Improve user management interface with better form validation and user feedback. - Add skeleton loading states for better UX during data fetching.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request adds .NET Aspire support to enable cloud-ready orchestration for local development, along with significant technology stack updates and UI enhancements.
Key Changes
- Aspire Integration: Added .NET Aspire 9.5 for service orchestration, discovery, and observability with an integrated dashboard
- Version Upgrades: Updated to Angular 21, .NET 10, PostgreSQL 17, and TailwindCSS v4
- Design System: Integrated Microsoft Fluent Design System 2 tokens and styling
Reviewed changes
Copilot reviewed 67 out of 224 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
scripts/02-seed-data.sql |
Comprehensive database seed script with tables, permissions, roles, and sample data |
scripts/01-init-db.sh |
PostgreSQL database initialization script for Docker |
frontend/src/app/styles/tailwind.css |
Added Fluent Design System tokens (colors, shadows, typography, motion) |
frontend/src/app/feature/user/home/home.component.ts |
Updated technology descriptions to reflect version changes |
frontend/src/app/feature/admin/*/ |
Enhanced admin components with Material 3, OnPush detection, and new reusable components |
frontend/src/app/@core/components/*/ |
New reusable components (PageHeader, EmptyState, Skeleton, ConfirmDialog) |
frontend/proxy.conf.js |
New Aspire-aware proxy configuration with environment variable support |
frontend/package.json |
Updated to Angular 21.0.1, Material 21, and supporting dependencies |
backend/Contact.Domain/Entities/ContactPerson.cs |
Changed DateOfBirth from DateTime to DateOnly |
backend/Contact.Infrastructure/*/ |
Complete repository implementations with Dapper and PostgreSQL |
backend/*/Contact.*.csproj |
Updated target framework to net10.0 |
docker-compose.yml |
Added pgAdmin service and updated PostgreSQL to version 17 |
docs/* |
Updated documentation for Aspire, Angular 21, .NET 10, and new features |
Comments suppressed due to low confidence (1)
backend/Contact.Domain/Entities/ContactPerson.cs:7
- Changing
DateOfBirthfromDateTimetoDateOnlyis a breaking API change. WhileDateOnlyis more appropriate for birth dates (as it doesn't include time information), this will break existing clients expecting aDateTime. Consider providing a migration path or documenting this breaking change clearly.
| target: process.env['services__contact-api__https__0'] || | ||
| process.env['services__contact-api__http__0'] || | ||
| 'http://localhost:5217', |
Copilot
AI
Dec 10, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The proxy configuration reads Aspire-injected environment variables (services__contact-api__https__0, services__contact-api__http__0) with a fallback to localhost. However, the environment variable names use double underscores which might be transformed differently by different shells. Consider documenting this Aspire-specific configuration or using a more robust environment variable naming strategy.
| var frontend = builder.AddNpmApp("frontend", "../../frontend", "serve") | ||
| .WithReference(api) | ||
| .WaitFor(api) | ||
| .WithHttpEndpoint(targetPort: 4200, env: "PORT") | ||
| .WithExternalHttpEndpoints() | ||
| .PublishAsDockerFile(); |
Copilot
AI
Dec 10, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This assignment to frontend is useless, since its value is never read.
| import { | ||
| Component, | ||
| ChangeDetectionStrategy, | ||
| input, | ||
| output, | ||
| } from '@angular/core'; |
Copilot
AI
Dec 10, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unused import output.
| @@ -1,13 +1,16 @@ | |||
| import { Component, ViewChild, AfterViewInit, signal, computed, effect, inject, OnInit } from '@angular/core'; | |||
| import { Component, ViewChild, AfterViewInit, signal, computed, effect, inject, OnInit, ChangeDetectionStrategy } from '@angular/core'; | |||
Copilot
AI
Dec 10, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unused import computed.
| import { MatButtonModule } from '@angular/material/button'; | ||
| import { MatIconModule } from '@angular/material/icon'; | ||
| import { MatCardModule } from '@angular/material/card'; | ||
| import { DatePipe, NgFor, NgIf, CommonModule } from '@angular/common'; |
Copilot
AI
Dec 10, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unused imports NgFor, NgIf.
No description provided.