update about text and elevate about button

This commit is contained in:
Theo Tappe
2026-05-20 14:04:24 +02:00
parent 517cbdc3d8
commit 59dc70f62f
2 changed files with 18 additions and 48 deletions
@@ -10,50 +10,16 @@ import win.tap_tap.papertrader.components.LanguageSelect
fun Texts.getAbout(): String { fun Texts.getAbout(): String {
return when (selectedLanguage()) { return when (selectedLanguage()) {
// Languages.ENGLISH -> """ Languages.ENGLISH ->
//#### The Vision """
//
//This paper trading platform was designed to bridge the gap between "responsible investing" and the fun of the market without the actual risk of losing capital.
//To do that you can compete against your friends in Challenges, to see who can generate the highest return with a given cash on the markets.
//The app supports Android, Web (via WebAssembly and JS) and Desktop.
//
//#### Motivation
//
// I am Theo Tappe, currently studying informatics and wanted to learn KMP and having some fun with friends using the app.
//
//#### Technologies Used
//
//- **Kotlin Multiplatform (KMP)**: an open-source technology that allows you to use a single codebase for all supported platforms including the server while still running natively
//- **K3S (Kubernetes)**: lightweight Kubernetes distribution for managing the docker server
//- **AlpacaAPI**: an trading API where the server gets all the stock data from
//- **Ktor**: asynchronous framework for datatransfer between server and client
//- **NixOS**: the operating system K3S runs on which is defined declaratively and therefore reproducable and reliable
//- **Proxmox**: type 1 hypervisor that allows to run multiple services on my personal server
//- **SqlDelight**: typsafe API to interact with a sqlight database
//
//#### Roll of Technologies
//
//- **KMP**:
// - Native Performance: KMP compiles to native binaries ensuring that the app stays responsive.
// - Shared Code: All of the frontend code is shared between the supportet platforms, so that the project can be implemented by a single developer.
// - Shared Data: All Data-Transfer-Objects are shared between the frontend and backend which reduces bugs.
//- **Server Managing**:
// - **Proxmox**: has multple virtual maschines and one runs NixOS with Kubernetes
// - **NixOS**: Operating System of the kubernetes (single-node) cluster, with high maintalibility and ... in mind
// - **K3S**: Manages multliple servers with this backend, nextcloud and vaultwarden among other things
//- **Backend**:
// - **Ktor**: handles all the network traffic and data serialisation
// - **SqlDelight**: Typesafe API which is used to store all data
//- **Frontend / KMP**:
// - **Jetpack Compose**: UI implementation which is shared accross all supportet
//"""
Languages.ENGLISH -> """
#### Motivation #### Motivation
This application was developed by Theo Tappe as a comprehensive technical showcase for my application and to have some fun with friends. 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. It demonstrates a full-stack approach, combining cross-platform development with a robust, automated infrastructure.
#### Links
All code can be found on my gitlab instance: https://gitlab.tap-tap.win/root/taptappapertrader
#### Frontend Architecture #### Frontend Architecture
@@ -102,13 +68,17 @@ This minimizes "it works on my machine" issues and ensures a stable production e
The entire stack is hosted on a Proxmox VE cluster. 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. This allows me to manage an internal network including TrueNAS for storage, OPNsense for networking and NixOS for deploying.
""" """
Languages.GERMAN ->
Languages.GERMAN -> """ """
#### Motivation #### Motivation
Diese Anwendung wurde von Theo Tappe als umfassendes technisches Showcase für meine Bewerbung sowie als Freizeitprojekt für Freunde entwickelt. Diese Anwendung wurde von Theo Tappe als umfassendes technisches Showcase für meine Bewerbung sowie als Freizeitprojekt für Freunde entwickelt.
Sie demonstriert einen Full-Stack-Ansatz, der moderne plattformübergreifende Entwicklung mit einer robusten, automatisierten Infrastruktur kombiniert. Sie demonstriert einen Full-Stack-Ansatz, der moderne plattformübergreifende Entwicklung mit einer robusten, automatisierten Infrastruktur kombiniert.
#### Links
Der gesamt Code kann auf meiner Gitlab Instanz und kann hier gefunden werden: https://gitlab.tap-tap.win/root/taptappapertrader
#### Frontend-Architektur #### Frontend-Architektur
- **Native Performance via KMP**: - **Native Performance via KMP**:
@@ -6,16 +6,14 @@ import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.rounded.ChevronLeft import androidx.compose.material.icons.rounded.ChevronLeft
import androidx.compose.material.icons.rounded.Refresh import androidx.compose.material.icons.rounded.Refresh
import androidx.compose.material3.FilledIconButton import androidx.compose.material3.*
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import io.ktor.util.reflect.* import io.ktor.util.reflect.*
import win.tap_tap.papertrader.LocalBackStack import win.tap_tap.papertrader.LocalBackStack
import win.tap_tap.papertrader.components.AppText
import win.tap_tap.papertrader.components.AppTextLink import win.tap_tap.papertrader.components.AppTextLink
import win.tap_tap.papertrader.components.ButtonSpacer import win.tap_tap.papertrader.components.ButtonSpacer
import win.tap_tap.papertrader.routes.Routes import win.tap_tap.papertrader.routes.Routes
@@ -77,10 +75,12 @@ fun Page(
ButtonSpacer() ButtonSpacer()
} }
if (!curNavKey.instanceOf(Routes.About::class)) { if (!curNavKey.instanceOf(Routes.About::class)) {
AppTextLink("About", onClick = { ElevatedButton(onClick = {
backStack.add(Routes.About) backStack.add(Routes.About)
viewModel?.reset() viewModel?.reset()
}) }) {
AppText("About")
}
ButtonSpacer() ButtonSpacer()
} }
if (!curNavKey.instanceOf(Routes.PrivacyPolicy::class)) { if (!curNavKey.instanceOf(Routes.PrivacyPolicy::class)) {