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 {
return when (selectedLanguage()) {
// 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 -> """
Languages.ENGLISH ->
"""
#### 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.
#### Links
All code can be found on my gitlab instance: https://gitlab.tap-tap.win/root/taptappapertrader
#### 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.
This allows me to manage an internal network including TrueNAS for storage, OPNsense for networking and NixOS for deploying.
"""
Languages.GERMAN -> """
Languages.GERMAN ->
"""
#### Motivation
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.
#### Links
Der gesamt Code kann auf meiner Gitlab Instanz und kann hier gefunden werden: https://gitlab.tap-tap.win/root/taptappapertrader
#### Frontend-Architektur
- **Native Performance via KMP**:
@@ -162,4 +132,4 @@ fun About() {
LanguageSelect()
ButtonSpacer()
Markdown(texts.getAbout())
}
}
@@ -6,16 +6,14 @@ import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.rounded.ChevronLeft
import androidx.compose.material.icons.rounded.Refresh
import androidx.compose.material3.FilledIconButton
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.material3.*
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import io.ktor.util.reflect.*
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.ButtonSpacer
import win.tap_tap.papertrader.routes.Routes
@@ -77,10 +75,12 @@ fun Page(
ButtonSpacer()
}
if (!curNavKey.instanceOf(Routes.About::class)) {
AppTextLink("About", onClick = {
ElevatedButton(onClick = {
backStack.add(Routes.About)
viewModel?.reset()
})
}) {
AppText("About")
}
ButtonSpacer()
}
if (!curNavKey.instanceOf(Routes.PrivacyPolicy::class)) {