Files
2026-05-13 14:29:13 +02:00

53 lines
2.5 KiB
Markdown

#### 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.