2026-02-05 18:09:30 +00:00
2026-02-04 01:06:17 +00:00
2026-02-05 18:09:30 +00:00
2026-02-05 18:09:30 +00:00
2026-02-05 18:09:30 +00:00
2024-08-30 00:19:32 +00:00
2026-01-31 16:54:46 +00:00
2026-02-05 18:09:30 +00:00
2026-01-31 16:54:46 +00:00
2026-01-31 16:54:46 +00:00
2026-02-04 01:06:17 +00:00
2026-01-31 16:54:46 +00:00

mic-after-work-server-impl-quarkus-main

This project uses Quarkus, the Supersonic Subatomic Java Framework.

If you want to learn more about Quarkus, please visit its website: https://quarkus.io/.

Running the application in dev mode

You can run your application in dev mode that enables live coding using:

./mvnw compile quarkus:dev

NOTE: Quarkus now ships with a Dev UI, which is available in dev mode only at http://localhost:8080/q/dev/.

Packaging and running the application

The application can be packaged using:

./mvnw package

It produces the quarkus-run.jar file in the target/quarkus-app/ directory. Be aware that its not an über-jar as the dependencies are copied into the target/quarkus-app/lib/ directory.

The application is now runnable using java -jar target/quarkus-app/quarkus-run.jar.

If you want to build an über-jar, execute the following command:

./mvnw package -Dquarkus.package.jar.type=uber-jar

The application, packaged as an über-jar, is now runnable using java -jar target/*-runner.jar.

Creating a native executable

You can create a native executable using:

./mvnw package -Dnative

Or, if you don't have GraalVM installed, you can run the native executable build in a container using:

./mvnw package -Dnative -Dquarkus.native.container-build=true

You can then execute your native executable with: ./target/mic-after-work-server-impl-quarkus-main-1.0.0-SNAPSHOT-runner

If you want to learn more about building native executables, please consult https://quarkus.io/guides/maven-tooling.

Fonctionnalités métier (AfterWork)

Notifications

  • Service : NotificationService — création, lecture, pagination, marquage lu/suppression des notifications en base.
  • Déclencheurs : Notifications créées automatiquement pour les demandes damitié (destinataire), les likes/commentaires sur les posts (auteur du post), les nouvelles notes détablissement (manager).
  • API : GET/POST /notifications/user/{userId}, pagination, marquer lu, supprimer. Voir SECURITY.md pour lusage en production (userId issu de lauth).

Jobs planifiés (Quarkus Scheduler)

  • Stories : Désactivation des stories expirées (cron : toutes les heures).
  • Tokens : Suppression des tokens de réinitialisation de mot de passe expirés (tous les jours à 3h).
  • Abonnements : Expiration des abonnements établissements et désactivation des établissements non payés (toutes les heures).
  • Rappels événements : Notifications en base pour les participants (J-1 et H-1), exécution toutes les 15 minutes.
  • Avertissement abonnement : Envoi demails J-3 avant expiration aux managers (tous les jours à 9h).

Configuration : quarkus.scheduler.enabled=true (désactivé en test via %test.quarkus.scheduler.enabled=false).

Emails transactionnels

  • EmailService : Réinitialisation mot de passe, bienvenue, confirmation de paiement Wave, rappel événement, avertissement expiration abonnement, confirmation de réservation, échec de paiement Wave.
  • Configuration SMTP via variables denvironnement (MAILER_HOST, MAILER_USERNAME, MAILER_PASSWORD, etc.) ; en test le mailer peut être en mode mock.

Paiement Wave (établissements)

  • Initiation de paiement (abonnement mensuel/annuel), webhook POST /webhooks/wave pour payment.completed, payment.refunded, payment.failed, etc.
  • Vérification optionnelle de la signature du webhook (header X-Wave-Signature, HMAC-SHA256) si wave.webhook.secret est configuré. Voir SECURITY.md.

  • Hibernate ORM (guide): Define your persistent model with Hibernate ORM and Jakarta Persistence
  • SmallRye OpenAPI (guide): Document your REST APIs with OpenAPI - comes with Swagger UI
  • RESTEasy Classic (guide): REST endpoint framework implementing Jakarta REST and more
  • Logging JSON (guide): Add JSON formatter for console logging
  • JDBC Driver - PostgreSQL (guide): Connect to the PostgreSQL database via JDBC

Sécurité et déploiement

  • Sécurité : Voir SECURITY.md (auth, webhook Wave, secrets, validation).
  • Docker : Voir docker/README.md pour lancer lapp et les dépendances (PostgreSQL, etc.).

Provided Code

Hibernate ORM

Create your first JPA entity

Related guide section...

RESTEasy JAX-RS

Easily start your RESTful Web Services

Related guide section...

Description
No description provided
Readme 1.5 MiB
Languages
Java 96.9%
PLpgSQL 2%
PowerShell 1%
Dockerfile 0.1%