Commit Graph
78 Commits
Author SHA1 Message Date
nessar 1bf6a3449c feat: finalize lease documents and IRL revisions 2026-08-17 14:18:16 +02:00
nessar f127c69a28 rules for new version of lease 2026-08-17 14:18:15 +02:00
nessar e1d734d79a update gitignore 2026-08-17 14:18:15 +02:00
nessar 3bbbf773f4 feat: enhance date formatting in rental documents and receipts 2026-08-17 14:18:15 +02:00
nessar d7a7aff3ee feat: add time zone support for rent payment and refund processes
- Updated API requests and responses to include time zone information.
- Modified backend services to handle time zone for received and refunded dates.
- Adjusted frontend components to use local date formatting based on the user's time zone.
- Enhanced tests to validate time zone handling in rent payment and refund scenarios.
2026-08-17 14:18:15 +02:00
nessar b9e99348f7 feat: add rent payment history and reversal dialogs
- Implemented RentPaymentHistoryServiceTest to validate payment retrieval with refunds and reversals.
- Created ReverseRentPaymentServiceTest to ensure correct handling of payment reversals and allocation releases.
- Developed rent-payment-allocation-dialog component with form for surplus allocation.
- Added rent-payment-refund-dialog component for processing refunds with validation.
- Introduced rent-payment-reversal-dialog component for reversing payments with reason input.
- Implemented utility functions for formatting Euro values and handling date formatting.
- Enhanced rent-payment-dialogs.spec.ts to cover new dialog functionalities and error handling.
2026-08-17 14:18:15 +02:00
nessar e02ad54bcb feat: add unit and integration tests for rental management domain
- Introduced RentPaymentCorrectionTest and RentPaymentTest to validate payment and refund logic.
- Added PhoneNumberTest to ensure proper normalization of phone numbers.
- Created TenantTest to verify attachment management and tenant referencing.
- Implemented ReplacementRentalApiJourneyIT for end-to-end testing of rental and payment workflows.
- Documented architectural decisions in ADR-0014, emphasizing strict DDD boundaries and transaction management.
2026-08-17 14:18:15 +02:00
nessar 6ce0719a20 refactor: simplify lease card and rent payments page logic 2026-08-17 14:18:15 +02:00
nessar a039243d03 fix: use rent dues in rent schedule (#28) 2026-08-17 14:18:15 +02:00
nessar c2afe515c0 feat: activate draft leases into rent dues (#28) 2026-08-17 14:18:15 +02:00
nessar 971ffd6feb feat: protect referenced rental resources (#27) 2026-08-17 14:18:15 +02:00
nessar fca199dfdf feat: isolate tenants and attachments by landlord (#26) 2026-08-17 14:18:15 +02:00
nessar f4acbffc9d feat: isolate apartment portfolios by landlord (#25) 2026-08-17 14:18:15 +02:00
nessar e8f98a0b3f Add comprehensive documentation on Domain-Driven Design patterns
- Introduced new references for Repositories and Factories, detailing their roles in separating domain logic from persistence and object creation.
- Added a section on Strategic Design and Distillation, outlining the classification of subdomains and investment strategies.
- Created a guide on Ubiquitous Language, emphasizing the importance of shared vocabulary between developers and domain experts to enhance communication and reduce misunderstandings.
2026-08-17 14:18:15 +02:00
nessar 752733af11 feat: update Playwright config for CI environment and enhance sign-in page styles 2026-08-17 14:18:15 +02:00
nessar 668680e844 feat(#23): use landlord profiles in PDFs 2026-08-17 14:18:15 +02:00
nessar ac5a7942c9 feat: refactor forms to use reactive forms with signals for improved state management 2026-08-17 14:18:15 +02:00
nessar 5d2abf4184 feat: refactor settings page to use reactive forms for landlord profile 2026-08-17 14:18:15 +02:00
nessar b76dd27431 fix: remove obsolete landlord profile indexes migration 2026-08-17 14:18:15 +02:00
nessar ecacab0b9f feat(#22): manage landlord profile from OIDC 2026-08-17 14:18:15 +02:00
nessar f02e8a9ba5 fix: update budget limits for initial and component styles 2026-08-17 14:18:15 +02:00
nessar 990792c8c2 feat(#21): show current rent schedule 2026-08-17 14:18:15 +02:00
nessar 9cfb55d79c feat: enhance lease and rent payment management
- Added methods in LeaseRepository to find leases by apartment ID and exclude a specific lease ID.
- Introduced a method in RentPaymentRepository to delete all payments by lease ID.
- Updated LeaseService to handle overlapping leases and generate rent payments upon lease creation.
- Implemented rent payment deletion in LeaseService when a lease is deleted.
- Enhanced RentPaymentService to generate rent payments with pro-rata calculations for partial months.
- Modified RentPaymentController to accept rent and charges when marking payments as paid.
- Created RentPaymentPaidRequest DTO for validating rent payment requests.
- Added a RentPaymentValidationDialog for confirming payment amounts before processing.
- Updated frontend components to support new rent payment features, including validation and date filtering for leases.
- Adjusted tests to cover new functionalities and ensure proper integration of rent payment management.
2026-08-17 14:18:15 +02:00
nessar 479012d661 fix(#20): use inclusive query for rent payment month range 2026-08-17 14:18:15 +02:00
nessar df17f6e378 style: update workspace navigation grid to six columns 2026-08-17 14:18:15 +02:00
nessar 5db268bec7 fix: enforce unique chronological rent payments 2026-08-17 14:18:15 +02:00
nessar df6904e85d feat: update landlord profile management to link with OIDC subjects 2026-08-17 14:18:15 +02:00
nessar 47cb4bcdaf feat: add rent payment schedules and receipts 2026-08-17 14:18:15 +02:00
nessar f876639c02 feat: add integration tests for ApartmentRepository using Testcontainers with MongoDB 2026-08-17 14:18:15 +02:00
nessar 01fa812089 feat: add frontend end-to-end testing stage in CI pipeline 2026-08-17 14:18:15 +02:00
nessar 3dca10b56f feat: update Dockerfiles to use explicit image paths and enhance localStorage handling in ThemeService 2026-08-17 14:18:15 +02:00
nessar 030d00ef67 test: refactor ThemeService tests to use a mock localStorage implementation 2026-08-17 14:18:15 +02:00
nessar 38414e8656 fix: handle localStorage availability in ThemeService and update tests accordingly 2026-08-17 14:18:15 +02:00
nessar c10a79d5fb feat: inject ThemeService into App component and enhance responsive styles for navigation items 2026-08-17 14:18:15 +02:00
nessar 561c6619a1 Refactor CSS styles across multiple components for improved consistency and maintainability
- Removed redundant styles and consolidated common styles in styles.scss
- Updated layout and spacing variables for better responsiveness
- Simplified component-specific styles in apartment, lease, tenant, and dashboard components
- Enhanced readability and organization of CSS by utilizing CSS layers
- Ensured consistent use of design tokens for colors, spacing, and borders
2026-08-17 14:18:15 +02:00
nessar 713ab3b2d9 feat: integrate FontAwesome icons across various components
- Updated apartment-list component to use FontAwesome icons for better visual representation.
- Refactored brand-mark component to utilize FontAwesome for the brand icon.
- Enhanced dashboard-page with FontAwesome icons for improved navigation.
- Replaced SVG icons with FontAwesome in settings-page for consistency and better performance.
- Updated sign-in-page to use FontAwesome for the sign-in action icon.
- Refactored tenant-card to incorporate FontAwesome icons for attachments.
- Enhanced workspace-navigation with FontAwesome icons for all navigation items.
- Applied consistent styling for fa-icon elements across components.
2026-08-17 14:18:15 +02:00
nessar ba695e2426 feat: enhance attachment actions with Font Awesome icons and improve layout 2026-08-17 14:18:15 +02:00
nessar 5c19f244fc Replace browser confirmations with confirmation dialog 2026-08-17 14:18:15 +02:00
nessar a8a3d7a747 fix: complete loading review coverage (#18) 2026-08-17 14:18:15 +02:00
nessar 0f68a91c5d refactor: address loading review findings (#18) 2026-08-17 14:18:15 +02:00
nessar ec3319494b feat: add comprehensive loading feedback (#18) 2026-08-17 14:18:15 +02:00
nessar 45de0cebcc feat: update theme preference handling in ThemeService and index.html 2026-08-17 14:18:15 +02:00
nessar c8020c489e Refactor backend services and controllers to use DTOs for Tenant, Lease, and Apartment
- Updated TenantController to utilize TenantService and DTOs for tenant operations.
- Refactored UserController to return UserResponse DTO.
- Introduced LeaseService and ApartmentService to handle business logic and data mapping.
- Created DTOs for Apartment, Lease, Tenant, and User to standardize data transfer.
- Implemented mappers for converting between entities and DTOs using MapStruct.
- Removed landlordId from Apartment and Lease entities and adjusted related tests.
- Added validation and normalization logic for tenant and guarantor data.
- Enhanced unit tests to ensure proper mapping and data integrity during updates.
2026-08-17 14:18:15 +02:00
nessar 181410e28f feat: add unit tests for tenant, guarantor, lease card, dashboard, session, theme, and workspace services 2026-08-17 14:18:15 +02:00
nessar 74a77f2d2b feat: add coverage dependencies for Vitest and update js-tokens version 2026-08-17 14:18:15 +02:00
nessar 2b80266f78 fix: format package.json for consistent indentation 2026-08-17 14:18:15 +02:00
nessar 74dad8f079 feat: enhance CI/CD pipeline with publish stage and image handling 2026-08-17 14:18:15 +02:00
nessar cfd7807234 fix front 2026-08-17 14:18:15 +02:00
nessar f9c89759e5 fix: update Maven image to use alpine variant for backend tests 2026-08-17 14:18:15 +02:00
nessar 82f339e209 Refactor application structure to use WorkspaceService for state management
- Removed direct state management from components and centralized it in WorkspaceService.
- Updated ApartmentsPage, TenantsPage, LeasesPage, and DashboardPage to utilize WorkspaceService for data handling.
- Introduced SessionService to manage user session state and authentication.
- Simplified component templates to reflect new service-based architecture.
- Removed unused ConfigService and its tests.
- Added lease.html template for lease document generation.
- Created app.routes.spec.ts for route mapping tests.
2026-08-17 14:18:15 +02:00
nessar be1f680a62 fix: add angularCompilerOptions for strict template checking 2026-08-17 14:18:15 +02:00
nessar b23f081799 fix: update HTTP status codes for attachment size exceptions 2026-08-17 14:18:15 +02:00
nessar 3ca8514231 refactor: split tenant and lease page modules 2026-08-17 14:18:14 +02:00
nessar ebfc62a5e2 fix: update links in AGENTS.md for consistency 2026-08-17 14:18:14 +02:00
nessar bf6d8e6bb6 fix: validate tenant and lease contact details 2026-08-17 14:18:14 +02:00
nessar 8603b98714 feat: manage tenants and leases (#4) 2026-08-17 14:18:14 +02:00
nessar 26ab037084 feat: add brand mark component and dashboard page
- Introduced a new `BrandMark` component for branding purposes.
- Created a `DashboardPage` component with a responsive layout, including sections for user profile, apartment management, and API demo.
- Added styles for the dashboard page to enhance user experience.
- Implemented a settings page with theme preferences and session management features.
- Developed a sign-in page with branding and user-friendly design.
- Established a workspace navigation component for easy access to different sections of the application.
- Implemented an `ApartmentService` for managing apartment data with corresponding unit tests.
- Created a `ConfigService` for loading application configuration.
- Added a `ThemeService` to manage user theme preferences dynamically.
2026-08-17 14:18:14 +02:00
nessar 3e552cad90 feat: add launch and task configurations for debugging Spring Boot and Angular applications 2026-08-17 14:18:14 +02:00
nessar 1a70bcd126 feat(frontend): add mobile-first Material redesign (#17) 2026-08-17 14:18:14 +02:00
nessar fd3fc0123a feat: add ADR for Angular Material with user-selectable themes 2026-08-17 14:18:14 +02:00
nessar f94b961403 refactor: simplify OIDC provider configuration by using issuer-uri for auto-discovery 2026-08-17 14:18:14 +02:00
nessar 18ee6a963f fix: correct OIDC provider endpoint paths for voidAuth and add test properties
The hardcoded /protocol/openid-connect/* paths are Keycloak-specific.
voidAuth uses different OIDC endpoint paths discovered via .well-known.

- Add src/test/resources/application.properties with stub OIDC config so
  Spring context starts without hitting a real OIDC provider during tests
- Document in main application.properties that endpoint path suffixes must
  match the actual provider's URL structure
2026-08-17 14:18:14 +02:00
nessar 92d16eb2c1 fix: proxy OAuth2/login/logout paths through nginx to Spring BFF
nginx was only forwarding /api/* to the backend.
Added proxy locations for:
  - /oauth2/  (Spring Security login initiation)
  - /login/oauth2/  (OAuth2 authorization code callback)
  - /logout  (Spring Security logout + RP-initiated end-session)

Also revert incorrect /api prefix on the login redirect URL.
2026-08-17 14:18:14 +02:00
nessar be80422c99 fix: remove OAuthService from ApartmentService - cookies handle auth in BFF pattern 2026-08-17 14:18:14 +02:00
nessar bbe8916e82 feat: rework OIDC to BFF (Backend-For-Frontend) cookie-session pattern
- backend: switch from OAuth2 Resource Server to OAuth2 Client (spring-boot-starter-oauth2-client)
- backend: configure Spring Security oauth2Login() with session cookie (JSESSIONID HttpOnly)
- backend: add UserController exposing /api/user to report authenticated user info
- backend: configure GET /logout with RP-initiated end-session support
- backend: update HelloController to use @AuthenticationPrincipal OAuth2User
- backend: update all tests to use .with(oidcLogin()) mock
- backend: explicitly configure OIDC provider endpoints to bypass discovery at test time
- frontend: remove angular-oauth2-oidc and @ngx-env/builder dependencies
- frontend: revert angular.json builders to standard @angular/build:*
- frontend: replace client-side OIDC flow with /api/user check + window.location redirects
- frontend: update app.config.ts and config.service.ts to remove OIDC configuration
- frontend: rewrite all unit tests to mock /api/user endpoint instead of OAuthService
- compose: move OIDC_CLIENT_ID and OIDC_CLIENT_SECRET to backend environment variables
- compose/dockerfile: remove frontend build-time OIDC ARG/ENV secrets
2026-08-17 14:18:14 +02:00
nessar fce17a1c31 feat: add OIDC_CLIENT_SECRET configuration to frontend environment and OIDC provider settings 2026-08-17 14:18:14 +02:00
nessar 53d0c886a6 Fix backend database connectivity in compose.yml by renaming to spring.mongodb.uri, adding credentials, and introducing healthcheck 2026-08-17 14:18:14 +02:00
nessar e69cc1a49f Remove config.json, install @ngx-env/builder to load OIDC configuration from env variables/files 2026-08-17 14:18:14 +02:00
nessar 62a0bd5db3 Implement Landlord and Apartment CRUD features with secure endpoints, coverage tests, and responsive UI 2026-08-17 14:18:14 +02:00
nessar 60f0377f97 build: migrate frontend Dockerfile to Node 26 base image and update build artifact paths 2026-08-17 14:18:14 +02:00
nessar 336ac1dfc3 chore: update container images, increase Angular budget thresholds, and reformat configuration files 2026-08-17 14:18:14 +02:00
nessar 6a73b469e4 Add mobile-first responsiveness constraint to specs and CSS styling 2026-08-17 14:18:14 +02:00
nessar fd2019e3cd Configure ESLint with deprecation checking and fix all lint violations 2026-08-17 14:18:14 +02:00
nessar bdc2e1bc57 Scaffold backend/frontend services, OIDC auth, and compose.yml 2026-08-17 14:18:14 +02:00
nessar 71a2b3081f update domain 2026-08-17 14:18:14 +02:00
nessar 447529a8a4 docs: initialize project documentation with context glossary, PRD, and core ADRs 2026-08-17 14:18:14 +02:00
nessar 134a2da599 feat: initialize agent skills library with comprehensive documentation, configurations, and specialized workflows 2026-08-17 14:18:14 +02:00
nessar 63b04c33c5 Initial commit 2026-08-17 14:18:12 +02:00