feature/refactor-architecture #1

Merged
twerner merged 30 commits from feature/refactor-architecture into main 2026-02-20 17:19:33 +00:00
Owner
No description provided.
Feature/update dependencies
Feature/update dependencies
# Conflicts:
#	.gitignore
Add IF NOT EXISTS clause to CREATE DATABASE statement to prevent
errors when running the script multiple times.
Complete the refactoring of the data access and business logic layers by:
- Adding properties to Account, Alias, and Domain data classes
- Implementing repository interfaces with Query, Insert, Update, Delete methods
- Implementing manager interfaces with business logic methods
- Fixing interface declarations (was incorrectly using class keyword)
- Configuring Entity Framework DbContext with proper entity mappings
- Setting up dependency injection for all repositories and managers
- Adding new projects to solution file

This establishes a clean layered architecture with proper separation of concerns between data, business logic, and presentation layers.
Add full CRUD functionality for domain management including:
- Implement GetById, UpdateDomain, and DeleteDomain methods in DomainManager
- Implement Insert, Update, and Delete in DomainRepository (was throwing NotImplementedException)
- Change AddDomain/Insert to return the created Domain
- Add DomainsController with full REST API endpoints (GET, POST, PUT, DELETE)
- Update IDomainManager and IDomainRepository interfaces to match implementations
Implement full account management functionality including:
- Add GetById, Add, Update, Remove methods to AccountManager and controller
- Implement Insert, Update, Delete in AccountRepository (previously stubbed)
- Create AccountsController with GET endpoints for listing and retrieving accounts
- Update interfaces to match new method signatures

Also standardizes method naming across all managers (GetAll, GetById, Add, Update, Remove) and fixes DomainViewModel initialization syntax.
- Removes Postix.Api and Postix.Blazor projects from solution
- Removes all integration and unit test projects
- Simplifies .gitignore by consolidating IDE file patterns
- Changes repomix output file extension from .txt to .md
docs(architecture): add CoCo architecture guidelines and CI workflow
All checks were successful
/ print-content (push) Successful in 2s
d6be6285b0
Add GEMINI.md documenting Composite Components (CoCo) architecture principles based on David Tielke's approach, including component structure, dependency rules, and naming conventions. Also add Forgejo CI workflow for basic build validation.
- Renamed `VmailDataStoring.Contracts` to `VmailDataStoring.Contract` for consistency.
- Moved `AccountManagement`, `AliasManagement`, and `DomainManagement` under a new `Domain` folder and updated their namespaces to `TWerner.Postix.Logic.Domain.*`.
- Introduced a `Business` folder to house workflows, with `Workflows` and `Workflows.Contract` projects for business process orchestration.
- Updated project references and solution structure to reflect these changes.
- Adjusted controller and service dependencies to align with the new namespace structure.
- Removed redundant `Workflows.Contracts` project and consolidated its contents into `Workflows.Contract`.
- Standardized interface naming conventions and removed unnecessary using directives.
- Updated `GEMINI.md` to reflect the new project structure and coding guidelines.
Implement password change functionality by adding a new POST endpoint at `/accounts/{id}/change-password`, creating the ChangePasswordWorkflow class, and registering it in the DI container. The workflow retrieves the account, updates the password, and persists the changes.
Migrated all UI components from Tailwind CSS to Bootstrap 5 across the web client application. Updated App.razor to use local Bootstrap CSS/JS instead of CDN, redesigned MainLayout with Bootstrap navbar/nav components, and converted all pages (Home, Accounts, Aliases, Domains) to use Bootstrap utility classes, cards, tables, alerts, modals, and grid system. This change improves maintainability and leverages Bootstrap's builtged components.
feat(domains): add domain add and edit modal functionality
All checks were successful
/ print-content (push) Successful in 2s
8bfa5d58e3
Implement interactive server render mode and add domain management modals with add and update capabilities in the web client UI
- Removed Bootstrap CSS and JS from App.razor and libman.json
- Added Tailwind CSS import to app.css
- Updated all components (Home, Accounts, Aliases, Domains pages, MainLayout) to use Tailwind utility classes instead of Bootstrap
- Added Tailwind build step to WebClient.csproj
Switch font-awesome CSS reference to use cdnjs CDN instead of local lib
to improve loading performance and reduce bundle size.
Adds a delete domain feature including the DeleteDomain method in DomainViewModel, a confirmation modal in the domains index page, and necessary Tailwind CSS utilities for the modal styling.
feat(accounts): add account creation modal with form validation
All checks were successful
/ print-content (push) Successful in 1s
57121dfc14
feat(ui): add modal-based alias management interface
All checks were successful
/ print-content (push) Successful in 1s
5f1db1bd91
twerner referenced this pull request from a commit 2026-02-20 17:19:34 +00:00
twerner deleted branch feature/refactor-architecture 2026-02-20 17:19:46 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
twerner/Postix!1
No description provided.