Daryva
Desktop property management platform with financial exports and offline-first architecture
Daryva
Overview
Daryva is a desktop property management platform designed for offline operation with periodic synchronization. The system handles property records, tenant information, and financial data with export capabilities for accounting integration.
Problem
Property management workflows require reliable access to data even when network connectivity is intermittent. Users need to continue working during outages, with changes synchronized when connectivity is restored. Additionally, financial data must be exportable in formats compatible with external accounting systems.
Constraints
- Must function completely offline
- Data synchronization must handle conflicts gracefully
- Financial exports must match accounting software requirements
- Desktop application with responsive UI for large datasets
- Data integrity is critical—no loss of financial records
Architecture & Design Decisions
The system follows Clean Architecture principles with clear boundaries between domain logic, application services, and infrastructure. The domain layer contains business rules independent of frameworks, while the infrastructure layer handles database access and file I/O.
Data persistence uses EF Core with a local SQLite database for offline operation. Synchronization is implemented as a separate service layer that tracks changes and applies them when connectivity is available. Conflict resolution follows a last-write-wins strategy with manual intervention for financial records.
Technology Stack
- WPF/Avalonia: Cross-platform desktop UI framework
- EF Core: Object-relational mapping and local database
- Clean Architecture: Layered architecture with dependency inversion
- Dependency Injection: Framework-agnostic business logic
Key Challenges & Trade-offs
Offline-First Complexity: Maintaining data consistency across offline and online states requires careful change tracking. The system uses a change log approach, which adds storage overhead but simplifies conflict detection.
Financial Data Integrity: Financial records cannot be automatically merged. The system flags conflicts for manual review, which is acceptable given the low frequency of concurrent edits to financial data.
UI Responsiveness: Large property portfolios can slow down list rendering. The system implements virtualized lists and pagination, trading some UI complexity for better performance with large datasets.
Outcome / Current Status
The platform successfully operates offline and synchronizes changes when connectivity is restored. Financial exports integrate with external accounting systems as required. The Clean Architecture approach has made the codebase maintainable, with business logic isolated from framework concerns.
What I’d Improve Next
- Implement more sophisticated conflict resolution strategies for non-financial data
- Add background sync with progress indicators
- Optimize database queries for faster initial load times
- Consider implementing a more granular change tracking system to reduce sync payload sizes