mirror of
https://github.com/ijug-ev/registration.git
synced 2026-06-27 20:40:19 +02:00
Serverless registration app for ijug events
- Java 69.4%
- HTML 30.6%
Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.5.4 to 3.5.6. - [Release notes](https://github.com/apache/maven-surefire/releases) - [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.5.4...surefire-3.5.6) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-surefire-plugin dependency-version: 3.5.6 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> |
||
|---|---|---|
| .forgejo/workflows | ||
| .github | ||
| .mvn/wrapper | ||
| .run | ||
| misc | ||
| src | ||
| .editorconfig | ||
| .gitignore | ||
| CLAUDE.md | ||
| docker-compose.yml | ||
| mvnw | ||
| mvnw.cmd | ||
| pom.xml | ||
| README.adoc | ||
= JUG Registration App
:icons: font
https://quarkus.io[Quarkus]-based application.
== Usage / Integration Configuration
Should be embedded in an `<iframe>` on the page.
Root page is `/registration/{tenant}?eventId=...`.
=== Query Params
|===
|Param name |default |Note
|eventId
|-
|The eventId as `yyyy-mm-dd` (date in ISO format). Required.
|limit
|60
|Participant limit
|showPub
|false
|If `true`, the checkbox for pub participation will be shown, otherwise not.
|hideVideoRecording
|false
|If `true`, the checkbox for accepting video recording will be hidden, otherwise not.
|hybrid
|false
|If `true`, the checkbox for remote participation will be shown, otherwise not.
|deadline
|Date of eventId, 18:00:00+02:00
|ISO timestamp. Registration closes after given deadline.
|opensBeforeInMonths
|1
|Months before an event takes place the registration is available/opened
|===
== Development
=== Prerequisites
* JDK 21+
* IDE
* Maven 3.9+ _(Maven wrapper is included)_
* Docker (for local development using the Quarkus DevServices)
=== Development with default `dev` profile
For local development, simply power up the Quarkus application
* either by using the link:.run/ijug-registration.run.xml[provided IntelliJ run configuration]
* or by executing https://quarkus.io/guides/maven-tooling#development-mode[Quarkus Development Mode] on the command line (terminal): `mvn compile quarkus:dev`
This starts Quarkus in `dev` profile mode and also starts up all required external systems as devservices, like the PostgreSQL database, Mailpit smtp dev server, Keycloak for authentication.
* (Optional) Build application: `mvn clean package`
TIP: You can now change classes, configurations and other resources on the fly, and Quarkus will automatically reload on the next call.
=== Run HTTP requests to test registration
* Registration: http://localhost:8080/registration/test?eventId=2026-12-31&opensBeforeInMonths=8
* Admin: http://localhost:8080/admin/test/events (User: alice/alice)
* Mailpit: http://localhost:8080/q/dev-ui/quarkus-mailpit/mailpit-ui
For runnint http requests manually, see link:misc/run-http-requests-manually.adoc[here].
== Build
There is a link:.github/workflows/docker.yml[GH action] to build and push a (multi-platform arm64/amd64) Docker image to `ghcr.io/ijug-ev/registration:<version>`.
This action runs either
* on pushs to `main` branch, then the image version tag will be `latest`
* on git tag pushes in format `v.1.2.3`, then the image version tag will be `1.2.3`
== Deployment
An example Docker Compose file is provided link:docker-compose.yml[here]:
[source,yaml]
----
include::docker-compose.yml[]
----
TIP: The production app should be available directly under https://registration.ijug.eu