Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
353a0e0
Added a new Template type: DynamicHTMLTemplate
Schlaumeier5 Mar 31, 2026
75a58a9
Merge branch 'modularization' of https://github.com/Learn-Monitor/stu…
Schlaumeier5 Mar 31, 2026
fa49f6c
Added the first dynamic field type: student_header
Schlaumeier5 Mar 31, 2026
1b13862
Added new dynamic templates
Schlaumeier5 Mar 31, 2026
ca64da1
Moved rooms to external plugin
Schlaumeier5 Mar 31, 2026
7bb3473
Also removed rooms from javascript
Schlaumeier5 Mar 31, 2026
2367ff3
Added SQLRequestHandler + Registry so plugins can also define sql req…
Schlaumeier5 Mar 31, 2026
9b1d531
bumped version to v1.1.0-SNAPSHOT-1
Schlaumeier5 Mar 31, 2026
65743a0
Little updates
Schlaumeier5 Apr 28, 2026
cf45fab
Merge pull request #198 from Learn-Monitor/documentation-improvements
Schlaumeier5 Apr 28, 2026
c149dbe
Add GNU GPL v3 license file
Schlaumeier5 Apr 28, 2026
8a4a5a9
Merge pull request #199 from Learn-Monitor/license
Schlaumeier5 Apr 28, 2026
b2b555d
Merge pull request #201 from Learn-Monitor/documentation-improvements
Schlaumeier5 May 3, 2026
a0d88f3
Bumped version to v2.0.0-SNAPSHOT-0 to reflect great changes
Schlaumeier5 May 12, 2026
67c1acd
Merge branch 'main' into modularization
Schlaumeier5 May 12, 2026
6087945
Merge pull request #202 from Learn-Monitor/modularization
Schlaumeier5 May 12, 2026
3e29789
Added slf4j as logging library
Schlaumeier5 May 13, 2026
9e9cc5a
Replaced error and debug prints in api with logging
Schlaumeier5 May 13, 2026
df2b115
Replaced error prints and command prints with logging
Schlaumeier5 May 14, 2026
08215a9
Added ANSI colors to console logs
Schlaumeier5 May 14, 2026
eddc18e
Bumped version to v2.0.0-SNAPSHOT-1
Schlaumeier5 May 14, 2026
0f8d3da
Merge pull request #203 from Learn-Monitor/101-add-logging
Schlaumeier5 Jun 6, 2026
044fb7e
Merge pull request #204 from Learn-Monitor/main
Schlaumeier5 Jun 7, 2026
a70db49
Changed loadAllPlugins() to loadAllPreloadedPlugins() in PluginLoader…
Schlaumeier5 Jun 7, 2026
c3fbe8b
Added built-in plugins
Schlaumeier5 Jun 7, 2026
3f86956
Added new input types: IntSetting and ShortAnswerSetting
Schlaumeier5 Jun 18, 2026
5d85abc
Added new input types to config load and save functionality
Schlaumeier5 Jun 18, 2026
8749971
Moved plugin loader into builtin plugin
Schlaumeier5 Jun 18, 2026
e3623b9
Now registering plugin-loader as builtin plugin
Schlaumeier5 Jun 18, 2026
08f0269
Little bug fix
Schlaumeier5 Jun 28, 2026
4542415
Merge pull request #206 from Learn-Monitor/modularization
Schlaumeier5 Jul 1, 2026
46f6e86
Updated gradle wrapper to 9.6.0
Schlaumeier5 Jul 1, 2026
a771e30
Added maven publish functionality
Schlaumeier5 Jul 1, 2026
88affc3
Changed to GradleUp shadow for integration with Gradle 9
Schlaumeier5 Jul 1, 2026
0537d27
Bumped version to v2.0.0-SNAPSHOT-3
Schlaumeier5 Jul 1, 2026
d47d6c0
Merge pull request #207 from Learn-Monitor/maven-publish-improvements
Schlaumeier5 Jul 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# .github/workflows/publish.yml

name: Publish
on:
release:
types: [released, prereleased]
jobs:
publish:
name: Release build and publish
runs-on: macOS-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 21
- name: Publish to MavenCentral
run: ./gradlew publishToMavenCentral --no-configuration-cache
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.SIGNING_KEY_ID }}
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_PASSWORD }}
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.GPG_KEY_CONTENTS }}

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
Comment on lines +9 to +26

3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ bin
.gradle
build
/modules
/plugins
/plugins
logs
674 changes: 674 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

60 changes: 39 additions & 21 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
plugins {
java
application
id("com.github.johnrengelman.shadow") version "8.1.1"
id("maven-publish")
id("com.gradleup.shadow") version "9.4.3"
id("com.vanniktech.maven.publish") version "0.37.0"
}

group = "igs-landstuhl"
group = "io.github.learn-monitor"

version = "v1.1.0-SNAPSHOT-0"
version = "v2.0.0-SNAPSHOT-3"

application {
mainClass.set("de.igslandstuhl.database.Application")
Expand All @@ -23,7 +23,13 @@ dependencies {
implementation("commons-codec:commons-codec:1.19.0")
implementation("com.googlecode.owasp-java-html-sanitizer:owasp-java-html-sanitizer:20260101.1")
implementation("org.jline:jline:3.30.6") // for better console input handling
implementation("org.yaml:snakeyaml:2.2") // plugin imports

// Logging
implementation("org.slf4j:slf4j-api:2.0.13")
implementation("ch.qos.logback:logback-classic:1.5.6")

// built-in plugins
implementation("io.github.learn-monitor:plugin-loader:v1.0.5")

testImplementation("org.junit.jupiter:junit-jupiter:5.13.4") // using JUnit 5 (latest)
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
Expand Down Expand Up @@ -53,26 +59,38 @@ java {
}
}

publishing {
publications {
create<MavenPublication>("mavenJava") {
from(components["java"])
mavenPublishing {
publishToMavenCentral()

groupId = "igs-landstuhl"
artifactId = "student-database"
version = project.version.toString()
}
}
signAllPublications()

coordinates(group.toString(), "student-database", version.toString())

repositories {
maven {
name = "GitHubPackages"
url = uri("https://maven.pkg.github.com/Learn-Monitor/student-database/")
pom {
name = "Student database"
description = "A Java-based application designed to manage and store student information efficiently. It allows admins to perform CRUD (Create, Read, Update, Delete) operations on student records, classes, subjects, and other school-related data, making it a valuable tool for educational institutions. Students can view their progress, and teachers can assign them topics, based on subjects."
url = "https://github.com/Learn-Monitor/student-database"

credentials {
username = System.getenv("GITHUB_ACTOR")
password = System.getenv("GITHUB_TOKEN")
licenses {
license {
name = "GNU General Public License v3.0"
url = "http://www.gnu.org/licenses/gpl-3.0.txt"
}
}
developers {
developer {
id = "schlaumeier5"
name = "Lukas Morgenstern"
url = "https://github.com/schlaumeier5"
}
}
scm {
url = "https://github.com/Learn-Monitor/student-database"
connection = "scm:git:https://github.com/Learn-Monitor/student-database.git"
developerConnection = "scm:git:ssh://[email protected]/Learn-Monitor/student-database.git"
}
}
}
tasks.withType<AbstractPublishToMaven>().configureEach {
dependsOn(tasks.withType<Sign>())
}
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.0-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
184 changes: 92 additions & 92 deletions gradlew.bat

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading