Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
7f89711
Update development guidelines and clarify testing requirements
antonrademaker Jan 4, 2026
9288195
Refactor code structure for improved readability and maintainability
antonrademaker Jan 4, 2026
14608a0
Remove unnecessary blank lines in service interface files
antonrademaker Jan 4, 2026
3fb9e72
T001: Create EventManagement service structure
antonrademaker Jan 4, 2026
5aefeab
T002: Create PrivateApi controller structure
antonrademaker Jan 4, 2026
17262bc
T003: Create Angular module structure
antonrademaker Jan 4, 2026
089172b
T004, T005: Register DbContext in AppHost and Configure OpenTelemetry
antonrademaker Jan 4, 2026
4c73526
T006: Implement Location and Room entities
antonrademaker Jan 4, 2026
dfd5daa
T007: Implement Tag entity
antonrademaker Jan 4, 2026
1bec2ac
T008: Implement Person entity
antonrademaker Jan 4, 2026
f89caf8
T009: Create EF Core migrations for foundational entities
antonrademaker Jan 4, 2026
2c8b80a
T010: Implement BaseEventService
antonrademaker Jan 4, 2026
0affb12
T011: Implement Event and EventSeries entities
antonrademaker Jan 5, 2026
d69a0b6
T012: Implement CreateEvent and GetEvent endpoints
antonrademaker Jan 5, 2026
ef3eda7
T013: Create Event List component
antonrademaker Jan 5, 2026
fa64950
T013: Create Event List component
antonrademaker Jan 5, 2026
6143ea4
T014: Create Event Create/Edit Form
antonrademaker Jan 5, 2026
ccf5ebd
T014: Create Event Create/Edit Form
antonrademaker Jan 5, 2026
3579287
T015: Implement multi-day date picker validation
antonrademaker Jan 5, 2026
70da144
T016: Write integration tests for Event creation
antonrademaker Jan 5, 2026
c466bb9
Fix build errors in tests caused by Event entity refactoring
antonrademaker Jan 5, 2026
ac0d16c
T017: Implement Track entity in EventManagement
antonrademaker Jan 5, 2026
46b7b6a
T018: Implement Track management endpoints
antonrademaker Jan 5, 2026
69dec36
Fix Track ambiguity in SessionServiceTests
antonrademaker Jan 5, 2026
6addd79
T019: Create Track Management UI component
antonrademaker Jan 5, 2026
61af765
feat: implement drag-and-drop reordering for tracks
antonrademaker Jan 5, 2026
202f0a7
feat: Add TimeSlot functionality to Event Management
antonrademaker Jan 5, 2026
c78dd66
fix: Remove unnecessary blank lines and ensure proper file endings in…
antonrademaker Jan 5, 2026
66048ea
feat: implement session assignment (entities, api, ui)
antonrademaker Jan 5, 2026
2dfab42
feat: implement swap sessions api endpoint
antonrademaker Jan 5, 2026
881e851
feat: implement swap sessions ui support
antonrademaker Jan 5, 2026
a61947a
docs: add and mark swap sessions task as complete
antonrademaker Jan 5, 2026
ab1dd5b
feat: Implement file upload validation middleware with size, extensio…
antonrademaker Jan 5, 2026
ac5e737
style: Clean up whitespace in multiple files for consistency
antonrademaker Jan 5, 2026
d2a91b5
Refactor Event Management and Session Management Code
antonrademaker Jan 5, 2026
69c539d
Fix PR review comments: logic error, unused import, log injection
antonrademaker Jan 5, 2026
706ca8b
Fix PrivateApp build: add missing ngrx dependencies and fix effects c…
antonrademaker Jan 5, 2026
899e73f
feat: Sanitize search text input in SearchEventsAsync method
antonrademaker Jan 13, 2026
366a88b
fix: Sanitize search text input in SearchEventsAsync method logging
antonrademaker Jan 13, 2026
ccd07ea
Fix PR review comments: cleanup duplicates, sync Enums, sanitize addi…
antonrademaker Jan 13, 2026
9638894
Fix log sanitization in SearchEventsAsync
antonrademaker Jan 13, 2026
e183d3b
Fix event list status handling and remove unused spec file
antonrademaker Jan 13, 2026
2f7c9b3
Fix lint and formatting issues
antonrademaker Jan 13, 2026
4f547f7
Address remaining PR comments (drag-drop, queries, types)
antonrademaker Jan 13, 2026
f115086
Fix remaining explicit any types in drag drop service
antonrademaker Jan 13, 2026
14e9c91
Add .gitattributes to enforce consistent line endings
antonrademaker Jan 13, 2026
cc4083a
Apply extensive formatting fixes via Prettier and dotnet format
antonrademaker Jan 13, 2026
3c10352
Update .editorconfig to enforce LF line endings and reformat
antonrademaker Jan 13, 2026
f56c1d2
Remove end_of_line enforcement from .editorconfig to allow native git…
antonrademaker Jan 13, 2026
87f38f6
Add zone.js polyfills and update component tests with HTTP client pro…
antonrademaker Jan 13, 2026
a5b22b6
Add CodeQL analysis workflow for automated code scanning
antonrademaker Jan 13, 2026
9568886
Remove unnecessary blank line in CodeQL workflow configuration
antonrademaker Jan 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ root = true
[*]
indent_style = space
indent_size = 4
end_of_line = crlf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
Expand Down
51 changes: 51 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Help git determine what is a text file and what is binary
# http://git-scm.com/docs/gitattributes

# Force all text files to be normalized to LF in the repo,
# and use the native EOL on checkout (CRLF on Windows, LF on Linux)
* text=auto

# Text files that should always strictly use LF (e.g. for shell scripts)
*.sh text eol=lf

# Explicitly declare code files as text
*.cs text
*.cshtml text
*.fs text
*.vb text
*.ts text
*.js text
*.json text
*.html text
*.css text
*.scss text
*.less text
*.razor text
*.xml text
*.xaml text
*.csproj text
*.sln text
*.md text
*.yaml text
*.yml text
*.config text
*.props text
*.targets text
*.editorconfig text
*.gitignore text
*.dockerignore text
*.ps1 text

# Binary files
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.svg binary
# Fonts
*.ttf binary
*.eot binary
*.otf binary
*.woff binary
*.woff2 binary
7 changes: 5 additions & 2 deletions .github/agents/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ Auto-generated from all feature plans. Last updated: 2025-12-30
- Testing: xUnit (.NET), Vitest (Angular), Playwright (E2E) (001-event-management)
- .NET 10, Angular 21, TypeScript 5.9, Node.js 22+ + Aspire 10, Entity Framework Core, FluentValidation, NSwag, SignalR, OpenTelemetry (001-event-management)
- PostgreSQL (primary with JSON columns), Redis (caching), Azure Blob Storage (files) (001-event-management)
- [e.g., .NET 10, Angular 21, TypeScript 5.9, or NEEDS CLARIFICATION] + [e.g., Aspire 10, gRPC, Entity Framework, OpenTelemetry, or NEEDS CLARIFICATION] (003-event-admin-ui)
- [if applicable, e.g., SQL Server, PostgreSQL, Redis, or N/A] (003-event-admin-ui)
- .NET 10, Angular 21, TypeScript 5.9 + Aspire, gRPC, Entity Framework Core, OpenTelemetry (003-event-admin-ui)

## Project Structure

Expand Down Expand Up @@ -77,9 +80,9 @@ dotnet build # .NET compilation with NSwag SDK generation
**Architecture**: IDesign service boundaries, business capabilities not technical layers

## Recent Changes
- 003-event-admin-ui: Added .NET 10, Angular 17+, TypeScript 5.x + Aspire, gRPC, Entity Framework Core, OpenTelemetry
- 003-event-admin-ui: Added [e.g., .NET 10, Angular 21, TypeScript 5.9, or NEEDS CLARIFICATION] + [e.g., Aspire 10, gRPC, Entity Framework, OpenTelemetry, or NEEDS CLARIFICATION]
- 001-event-management: Added .NET 10, Angular 21, TypeScript 5.9, Node.js 22+ + Aspire 10, Entity Framework Core, FluentValidation, NSwag, SignalR, OpenTelemetry
- 001-event-management: Implemented Angular dev servers as Aspire JavaScript apps with proxy-based service discovery
- 001-event-management: Added NSwag complete Angular SDK generation from C# APIs


<!-- MANUAL ADDITIONS START -->
Expand Down
8 changes: 5 additions & 3 deletions .github/agents/speckit.clarify.agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,8 @@ Execution steps:
- Information is better deferred to planning phase (note internally)

3. Generate (internally) a prioritized queue of candidate clarification questions (maximum 5). Do NOT output them all at once. Apply these constraints:
- Maximum of 10 total questions across the whole session.
- Show highest impact questions first (based on category importance and uncertainty).
- Maximum of 50 total questions across the whole session.
- Each question must be answerable with EITHER:
- A short multiple‑choice selection (2–5 distinct, mutually exclusive options), OR
- A one-word / short‑phrase answer (explicitly constrain: "Answer in <=5 words").
Expand All @@ -95,6 +96,7 @@ Execution steps:
- Exclude questions already answered, trivial stylistic preferences, or plan-level execution details (unless blocking correctness).
- Favor clarifications that reduce downstream rework risk or prevent misaligned acceptance tests.
- If more than 5 categories remain unresolved, select the top 5 by (Impact * Uncertainty) heuristic.
- If the user requests another run later do not count against the 50-question lifetime quota.

4. Sequential questioning loop (interactive):
- Present EXACTLY ONE question at a time.
Expand Down Expand Up @@ -123,7 +125,7 @@ Execution steps:
- After the user answers:
- If the user replies with "yes", "recommended", or "suggested", use your previously stated recommendation/suggestion as the answer.
- Otherwise, validate the answer maps to one option or fits the <=5 word constraint.
- If ambiguous, ask for a quick disambiguation (count still belongs to same question; do not advance).
- If ambiguous or if the answer raises new questions, ask for a quick disambiguation (count still belongs to same question; do not advance). Make sure to clarify only the ambiguity, do not re-ask the full question.
- Once satisfactory, record it in working memory (do not yet write to disk) and move to the next queued question.
- Stop asking further questions when:
- All critical ambiguities resolved early (remaining queued items become unnecessary), OR
Expand Down Expand Up @@ -152,7 +154,7 @@ Execution steps:

6. Validation (performed after EACH write plus final pass):
- Clarifications session contains exactly one bullet per accepted answer (no duplicates).
- Total asked (accepted) questions ≤ 5.
- Total asked (accepted) questions ≤ 50.
- Updated sections contain no lingering vague placeholders the new answer was meant to resolve.
- No contradictory earlier statement remains (scan for now-invalid alternative choices removed).
- Markdown structure valid; only allowed new headings: `## Clarifications`, `### Session YYYY-MM-DD`.
Expand Down
61 changes: 61 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: "CodeQL"

on:
push:
branches: [ "main" ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ "main" ]
schedule:
- cron: '25 10 * * 5'

env:
DOTNET_VERSION: '10.0.x'

jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write

strategy:
fail-fast: false
matrix:
language: [ 'csharp', 'javascript-typescript' ]

steps:
- name: Checkout repository
uses: actions/checkout@v4

# Java 21 is required for the latest CodeQL Action, but usually available on ubuntu-latest.
# explicit setup is good if we run into issues, but standard action implies it handles deps.
# However, we DO need to setup .NET for the C# build.

- name: Setup .NET
if: matrix.language == 'csharp'
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNET_VERSION }}

- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}

- name: Build .NET
if: matrix.language == 'csharp'
run: |
dotnet restore EventManagement.sln
dotnet build EventManagement.sln --configuration Release --no-restore

- name: Autobuild JS/TS
if: matrix.language == 'javascript-typescript'
uses: github/codeql-action/autobuild@v3

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"
33 changes: 26 additions & 7 deletions .specify/memory/constitution.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
<!--
Sync Impact Report:
- Version change: 2.7.0 → 2.8.0 (MINOR: Enhanced SDK generation requirements)
- Enhanced principle: VIII. Code Generation and Type Safety - Comprehensive Angular SDK generation with NSwag integration
- New requirements: Complete TypeScript SDK including models, HTTP services, validation, testing utilities, and Observable patterns
- Technical implementation: NSwag SDK generation, Angular service factories, type-safe HTTP clients with dependency injection
- Templates requiring updates: ✅ Plan template updated / ✅ Plan.md constitution check completed
- Follow-up TODOs: None - comprehensive Angular SDK generation fully specified
- Version change: 2.8.0 → 2.9.0 (MINOR: Added Test Verification principle)
- New principle: IX. Test Verification After Changes - Mandatory test execution after code modifications
- Templates requiring updates: ✅ None required
- Follow-up TODOs: None
-->

# AngularAspire Constitution
Expand Down Expand Up @@ -132,6 +130,27 @@ Requirements:
**Projects affected**: All projects - Angular applications consume generated SDK instead of manual HTTP calls
**Rationale**: SDK generation eliminates manual API client coding, ensures type consistency, reduces integration errors, and provides enterprise-grade client libraries with minimal maintenance overhead.

### IX. Test Verification After Changes (NON-NEGOTIABLE)
All code modifications MUST be validated by running the relevant test suites before considering the change complete.
Requirements:
- **Immediate Test Execution**: After any code change, run affected unit tests to verify correctness
- **Build Verification**: Ensure the solution builds successfully before running tests
- **Format Compliance**: Verify code formatting passes (`dotnet format --verify-no-changes`) before test execution
- **Scope-Appropriate Testing**: Run unit tests for isolated changes, integration tests for cross-service changes
- **CI/CD Parity**: Local test execution should mirror CI/CD pipeline behavior
- **No Untested Changes**: Never commit or consider work complete without passing tests
- **Test Failure Resolution**: If tests fail, fix the issue immediately before proceeding to other tasks

**Test Execution Guidelines**:
- **Single File Change**: Run tests in the affected test project
- **Cross-Project Change**: Run tests across all affected projects
- **API Contract Change**: Run integration tests and contract tests
- **Database Schema Change**: Run full test suite including integration tests
- **Angular Component Change**: Run component tests and affected E2E tests

**Projects affected**: All projects - applies to .NET, Angular, and any other codebase changes
**Rationale**: Running tests immediately after changes catches regressions early, reduces debugging time, and ensures code quality is maintained throughout the development process.

## Code Quality Standards

All projects must maintain enterprise-grade code quality:
Expand Down Expand Up @@ -241,4 +260,4 @@ This constitution supersedes all other development practices and standards.
- Cross-cutting changes require approval from both .NET and Angular team leads
- Use `.specify/` templates and workflows for consistent multi-project development practices

**Version**: 2.8.0 | **Ratified**: 2025-12-30 | **Last Amended**: 2025-12-30
**Version**: 2.9.0 | **Ratified**: 2025-12-30 | **Last Amended**: 2026-01-04
31 changes: 31 additions & 0 deletions build_output.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
Determining projects to restore...
All projects are up-to-date for restore.
E:\repos\angularaspire\src\Shared\SessionManagement\TrackService.cs(30,50): error CS0246: The type or namespace name 'Event' could not be found (are you missing a using directive or an assembly reference?) [E:\repos\angularaspire\src\Shared\Shared.csproj]
E:\repos\angularaspire\src\Shared\Registration\QueueService.cs(329,13): warning CS4014: Because this call is not awaited, execution of the current method continues before the call is completed. Consider applying the 'await' operator to the result of the call. [E:\repos\angularaspire\src\Shared\Shared.csproj]
E:\repos\angularaspire\src\Shared\Registration\QueueService.cs(332,13): warning CS4014: Because this call is not awaited, execution of the current method continues before the call is completed. Consider applying the 'await' operator to the result of the call. [E:\repos\angularaspire\src\Shared\Shared.csproj]
E:\repos\angularaspire\src\Shared\SessionManagement\SessionDbContext.cs(133,13): warning CS0618: 'RelationalEntityTypeBuilderExtensions.HasCheckConstraint<TEntity>(EntityTypeBuilder<TEntity>, string, string?)' is obsolete: 'Configure this using ToTable(t => t.HasCheckConstraint()) instead.' [E:\repos\angularaspire\src\Shared\Shared.csproj]
E:\repos\angularaspire\src\Shared\SessionManagement\SessionDbContext.cs(135,13): warning CS0618: 'RelationalEntityTypeBuilderExtensions.HasCheckConstraint<TEntity>(EntityTypeBuilder<TEntity>, string, string?)' is obsolete: 'Configure this using ToTable(t => t.HasCheckConstraint()) instead.' [E:\repos\angularaspire\src\Shared\Shared.csproj]
E:\repos\angularaspire\src\Shared\SessionManagement\SessionDbContext.cs(137,13): warning CS0618: 'RelationalEntityTypeBuilderExtensions.HasCheckConstraint<TEntity>(EntityTypeBuilder<TEntity>, string, string?)' is obsolete: 'Configure this using ToTable(t => t.HasCheckConstraint()) instead.' [E:\repos\angularaspire\src\Shared\Shared.csproj]
E:\repos\angularaspire\src\Shared\Registration\RegistrationDbContext.cs(276,9): warning CS0618: 'RelationalEntityTypeBuilderExtensions.HasCheckConstraint<TEntity>(EntityTypeBuilder<TEntity>, string, string?)' is obsolete: 'Configure this using ToTable(t => t.HasCheckConstraint()) instead.' [E:\repos\angularaspire\src\Shared\Shared.csproj]
E:\repos\angularaspire\src\Shared\Registration\RegistrationDbContext.cs(280,9): warning CS0618: 'RelationalEntityTypeBuilderExtensions.HasCheckConstraint<TEntity>(EntityTypeBuilder<TEntity>, string, string?)' is obsolete: 'Configure this using ToTable(t => t.HasCheckConstraint()) instead.' [E:\repos\angularaspire\src\Shared\Shared.csproj]
E:\repos\angularaspire\src\Shared\Registration\RegistrationDbContext.cs(284,9): warning CS0618: 'RelationalEntityTypeBuilderExtensions.HasCheckConstraint<TEntity>(EntityTypeBuilder<TEntity>, string, string?)' is obsolete: 'Configure this using ToTable(t => t.HasCheckConstraint()) instead.' [E:\repos\angularaspire\src\Shared\Shared.csproj]
E:\repos\angularaspire\src\Shared\Registration\RegistrationDbContext.cs(290,9): warning CS0618: 'RelationalEntityTypeBuilderExtensions.HasCheckConstraint<TEntity>(EntityTypeBuilder<TEntity>, string, string?)' is obsolete: 'Configure this using ToTable(t => t.HasCheckConstraint()) instead.' [E:\repos\angularaspire\src\Shared\Shared.csproj]
E:\repos\angularaspire\src\Shared\Registration\RegistrationDbContext.cs(296,9): warning CS0618: 'RelationalEntityTypeBuilderExtensions.HasCheckConstraint<TEntity>(EntityTypeBuilder<TEntity>, string, string?)' is obsolete: 'Configure this using ToTable(t => t.HasCheckConstraint()) instead.' [E:\repos\angularaspire\src\Shared\Shared.csproj]

Build FAILED.

E:\repos\angularaspire\src\Shared\Registration\QueueService.cs(329,13): warning CS4014: Because this call is not awaited, execution of the current method continues before the call is completed. Consider applying the 'await' operator to the result of the call. [E:\repos\angularaspire\src\Shared\Shared.csproj]
E:\repos\angularaspire\src\Shared\Registration\QueueService.cs(332,13): warning CS4014: Because this call is not awaited, execution of the current method continues before the call is completed. Consider applying the 'await' operator to the result of the call. [E:\repos\angularaspire\src\Shared\Shared.csproj]
E:\repos\angularaspire\src\Shared\SessionManagement\SessionDbContext.cs(133,13): warning CS0618: 'RelationalEntityTypeBuilderExtensions.HasCheckConstraint<TEntity>(EntityTypeBuilder<TEntity>, string, string?)' is obsolete: 'Configure this using ToTable(t => t.HasCheckConstraint()) instead.' [E:\repos\angularaspire\src\Shared\Shared.csproj]
E:\repos\angularaspire\src\Shared\SessionManagement\SessionDbContext.cs(135,13): warning CS0618: 'RelationalEntityTypeBuilderExtensions.HasCheckConstraint<TEntity>(EntityTypeBuilder<TEntity>, string, string?)' is obsolete: 'Configure this using ToTable(t => t.HasCheckConstraint()) instead.' [E:\repos\angularaspire\src\Shared\Shared.csproj]
E:\repos\angularaspire\src\Shared\SessionManagement\SessionDbContext.cs(137,13): warning CS0618: 'RelationalEntityTypeBuilderExtensions.HasCheckConstraint<TEntity>(EntityTypeBuilder<TEntity>, string, string?)' is obsolete: 'Configure this using ToTable(t => t.HasCheckConstraint()) instead.' [E:\repos\angularaspire\src\Shared\Shared.csproj]
E:\repos\angularaspire\src\Shared\Registration\RegistrationDbContext.cs(276,9): warning CS0618: 'RelationalEntityTypeBuilderExtensions.HasCheckConstraint<TEntity>(EntityTypeBuilder<TEntity>, string, string?)' is obsolete: 'Configure this using ToTable(t => t.HasCheckConstraint()) instead.' [E:\repos\angularaspire\src\Shared\Shared.csproj]
E:\repos\angularaspire\src\Shared\Registration\RegistrationDbContext.cs(280,9): warning CS0618: 'RelationalEntityTypeBuilderExtensions.HasCheckConstraint<TEntity>(EntityTypeBuilder<TEntity>, string, string?)' is obsolete: 'Configure this using ToTable(t => t.HasCheckConstraint()) instead.' [E:\repos\angularaspire\src\Shared\Shared.csproj]
E:\repos\angularaspire\src\Shared\Registration\RegistrationDbContext.cs(284,9): warning CS0618: 'RelationalEntityTypeBuilderExtensions.HasCheckConstraint<TEntity>(EntityTypeBuilder<TEntity>, string, string?)' is obsolete: 'Configure this using ToTable(t => t.HasCheckConstraint()) instead.' [E:\repos\angularaspire\src\Shared\Shared.csproj]
E:\repos\angularaspire\src\Shared\Registration\RegistrationDbContext.cs(290,9): warning CS0618: 'RelationalEntityTypeBuilderExtensions.HasCheckConstraint<TEntity>(EntityTypeBuilder<TEntity>, string, string?)' is obsolete: 'Configure this using ToTable(t => t.HasCheckConstraint()) instead.' [E:\repos\angularaspire\src\Shared\Shared.csproj]
E:\repos\angularaspire\src\Shared\Registration\RegistrationDbContext.cs(296,9): warning CS0618: 'RelationalEntityTypeBuilderExtensions.HasCheckConstraint<TEntity>(EntityTypeBuilder<TEntity>, string, string?)' is obsolete: 'Configure this using ToTable(t => t.HasCheckConstraint()) instead.' [E:\repos\angularaspire\src\Shared\Shared.csproj]
E:\repos\angularaspire\src\Shared\SessionManagement\TrackService.cs(30,50): error CS0246: The type or namespace name 'Event' could not be found (are you missing a using directive or an assembly reference?) [E:\repos\angularaspire\src\Shared\Shared.csproj]
10 Warning(s)
1 Error(s)

Time Elapsed 00:00:09.11
3 changes: 2 additions & 1 deletion specs/001-event-management/tasks.md
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ Following the user stories from spec.md organized by priority (P1, P2, P3, P4) w
### Code Generation & SDK
- [x] T100 [P] Create NSwag configuration for Angular SDK generation in src/PublicApi/nswag.json
- [x] T101 [P] Generate TypeScript clients for Angular apps in src/PublicApp/src/app/shared/api/
- [ ] T102 [P] Configure gRPC proto generation from C# interfaces in src/Shared/ (OPTIONAL - Low priority)
- [x] T102 [P] Configure gRPC proto generation from C# interfaces in src/Shared/ (OPTIONAL - Low priority)

### Production Configuration
- [x] T103 [P] Configure production appsettings for all APIs in src/*/appsettings.Production.json
Expand All @@ -248,6 +248,7 @@ Following the user stories from spec.md organized by priority (P1, P2, P3, P4) w

### Final E2E Validation
- [x] T110 [P] Create comprehensive E2E test suite in tests/e2e/full-workflow.spec.ts
- [x] T112 [P] Implement Swap Sessions feature (User Story 5)
- [ ] T111 Run quickstart.md validation scenarios

---
Expand Down
Loading
Loading