#### Motivation This application was developed by Theo Tappe as a comprehensive technical showcase for my application and to have some fun with friends. It demonstrates a full-stack approach, combining cross-platform development with a robust, automated infrastructure. #### Frontend Architecture - **Native Performance via KMP**: By leveraging Kotlin Multiplatform, the app compiles to native binaries. This ensures the UI remains fluid and responsive, meeting the high performance standards of modern applications. - **Maximum Code Reuse with Compose Multiplatform**: The entire UI layer is built using Compose Multiplatform, sharing code across all supported platforms. This ensures feature parity and allows a single developer to maintain a multi-platform ecosystem efficiently. - **End-to-End Type Safety**: To eliminate integration errors, Data Transfer Objects (DTOs) are shared between the frontend and backend. This creates a "Single Source of Truth," ensuring the app and server are always in sync and reducing bugs during API communication. #### Backend Setup - **Zero-Trust Validation**: While the client provides instant feedback for a smooth UX, all data is strictly validated on the backend. This ensures the system remains secure and resilient against manipulated client-side requests. - **Financial Data Integrity**: To avoid the precision errors common with floating-point math, money is handled via a dedicated Cash class using Long values for both major and minor units, which ensures accuracy for all financial calculations. - **Real-World Data Integration**: The application integrates with the Alpaca API to fetch market data. #### Infrastructure & DevOps The application is deployed on a self-managed production environment that I have maintained for several years, hosting services like Nextcloud, GitLab, Homeassistant or Vaultwarden (Bitwarden server). This project follows Infrastructure as Code principles: - **Orchestration with Kubernetes via K3S**: Backend services are containerized and managed within a K3S cluster. This setup ensures high availability, automated rollouts, and efficient resource management. - **Reproducible Systems via NixOS**: K3S runs on NixOS, allowing for entirely declarative and reproducible system configurations. This minimizes "it works on my machine" issues and ensures a stable production environment. - **Virtualization with Proxmox**: The entire stack is hosted on a Proxmox VE cluster. This allows me to manage an internal network including TrueNAS for storage, OPNsense for networking and NixOS for deploying.