Add README

Update some stuff
This commit is contained in:
BuildTools
2024-06-04 16:19:11 +02:00
parent e9ca2d8704
commit 718fe65a75
4 changed files with 62 additions and 20 deletions

View File

@@ -1,2 +1,32 @@
# CleverClass
CleverClass ist eine Android-App, die Schülern hilft, ihre Schulnoten zu verwalten, ihren Durchschnitt zu berechnen, den Vertretungsplan von DSBmobile einzusehen, den Stundenplan zu speichern und anzuzeigen sowie ein Periodensystem zu nutzen.
## Funktionen und Verwendung
- **Notenverwaltung:** Trage deine Schulnoten ein und berechne deinen Durchschnitt. Perfekt, um alle Noten aus der Schule übersichtlich zu speichern.
- **Vertretungsplan:** Rufe den aktuellen Vertretungsplan von DSBmobile direkt in der App auf.
- **Stundenplan:** Trage deinen Stundenplan ein, speichere und verwalte ihn in der App, um immer den Überblick zu behalten.
- **Periodensystem:** Nutze das integrierte Periodensystem, um schnell Informationen zu chemischen Elementen nachzuschlagen.
## Installation
CleverClass kann einfach über den Play Store installiert werden oder durch das Herunterladen der APK-Datei:
Play Store:
- Öffne den Google Play Store auf deinem Android-Gerät
- Suche nach "CleverClass"
- Tippe auf "Installieren"
APK-Datei:
- Lade die APK-Datei von der [Website](https://google.com/) herunter
- Öffne die heruntergeladene APK-Datei auf deinem Android-Gerät
- Folge den Anweisungen auf dem Bildschirm, um die Installation abzuschließen
## Anforderungen
Betriebssystem: Android
## Autoren
- Paul Posch
- Matthias Meyer
- Jakub Szarko
- Emilian Bührer
## Lizenz
Dieses Projekt steht unter der [GNU General Public License](LICENSE) Version 3, 29 June 2007.
## Sonstiges
Dieses Projekt ist als Schulprojekt inerhalb von 3 Monaten entstanden.

View File

@@ -89,7 +89,6 @@ class FachActivity : ComponentActivity() {
CoroutineScope(Dispatchers.IO).launch {
getGrades(this@FachActivity, name).collect { savedGrades ->
grades = savedGrades.toMutableList()
println()
}
}
@@ -513,7 +512,7 @@ fun GradePrefab(
@Composable
fun Item(name : String, onItemClick: (String) -> Unit){
DropdownMenuItem(
text = { Text(text = name) },
text = { Text(text = name, style = MaterialTheme.typography.labelMedium) },
onClick = { onItemClick(name) }
)
}

View File

@@ -114,8 +114,11 @@ fun NotenContent(activity: ComponentActivity){
val editor = sharedPreferences.edit()
var allAverage by remember {
mutableStateOf(calculateAllAverage(loadAllAverages(sharedPreferences)))
mutableStateOf(0f)
}
allAverage = calculateAllAverage(sharedPreferences)
var showDeleteConfirmation by remember {
mutableStateOf(false)
}
@@ -189,7 +192,7 @@ fun NotenContent(activity: ComponentActivity){
saWeight = saWeights[i],
activity = activity,
sharedPreferences = sharedPreferences,
onAvgChange = { allAverage = calculateAllAverage(loadAllAverages(sharedPreferences)) }
onAvgChange = { allAverage = calculateAllAverage(sharedPreferences) }
)
}
@@ -201,7 +204,7 @@ fun NotenContent(activity: ComponentActivity){
saWeight = saWeights[i],
activity = activity,
sharedPreferences = sharedPreferences,
onAvgChange = { allAverage = calculateAllAverage(loadAllAverages(sharedPreferences)) }
onAvgChange = { allAverage = calculateAllAverage(sharedPreferences) }
)
}
@@ -213,7 +216,7 @@ fun NotenContent(activity: ComponentActivity){
saWeight = saWeights[i],
activity = activity,
sharedPreferences = sharedPreferences,
onAvgChange = { allAverage = calculateAllAverage(loadAllAverages(sharedPreferences)) }
onAvgChange = { allAverage = calculateAllAverage(sharedPreferences) }
)
}
@@ -225,7 +228,7 @@ fun NotenContent(activity: ComponentActivity){
saWeight = saWeights[i],
activity = activity,
sharedPreferences = sharedPreferences,
onAvgChange = { allAverage = calculateAllAverage(loadAllAverages(sharedPreferences)) }
onAvgChange = { allAverage = calculateAllAverage(sharedPreferences) }
)
}
@@ -237,7 +240,7 @@ fun NotenContent(activity: ComponentActivity){
saWeight = saWeights[i],
activity = activity,
sharedPreferences = sharedPreferences,
onAvgChange = { allAverage = calculateAllAverage(loadAllAverages(sharedPreferences)) }
onAvgChange = { allAverage = calculateAllAverage(sharedPreferences) }
)
}
@@ -343,9 +346,10 @@ fun GroopTitle(name: String, top: Boolean){
Spacer(modifier = Modifier.height(12.dp))
}
fun calculateAllAverage(avgs: List<Float>): Float{
fun calculateAllAverage(sharedPreferences: SharedPreferences): Float{
var total = 0.0f
var number = 0
val avgs = loadAllAverages(sharedPreferences)
avgs.forEach{ avg ->
if (avg != 0.0f && !avg.isNaN()){
@@ -353,6 +357,7 @@ fun calculateAllAverage(avgs: List<Float>): Float{
number += 1
}
}
return (total / number)
}

View File

@@ -19,6 +19,7 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.layout.wrapContentHeight
import androidx.compose.foundation.layout.wrapContentSize
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
@@ -129,17 +130,24 @@ fun SettingsContent(activity: ComponentActivity) {
horizontalAlignment = Alignment.CenterHorizontally
) {
Divider()
Spacer(modifier = Modifier.height(16.dp))
Text(
text = "About",
style = MaterialTheme.typography.bodySmall,
color = MaterialTheme.colorScheme.onBackground,
modifier = Modifier.clickable {
val intent = Intent(activity, AboutActivity::class.java)
activity.startActivity(intent)
}
)
Spacer(modifier = Modifier.height(16.dp))
Spacer(modifier = Modifier.height(8.dp))
Box(
contentAlignment = Alignment.Center,
modifier = Modifier
.wrapContentSize()
.clickable {
val intent = Intent(activity, AboutActivity::class.java)
activity.startActivity(intent)
}
) {
Text(
text = "About",
style = MaterialTheme.typography.bodySmall,
color = MaterialTheme.colorScheme.onBackground,
modifier = Modifier.padding(horizontal = 32.dp, vertical = 8.dp)
)
}
Spacer(modifier = Modifier.height(8.dp))
}
}
}