Infrastructure: MinIO service added to docker-compose (prod + dev) with minio-init container that creates the avatars bucket with public read policy. Traefik routes minio.task.beetech.dev → port 9000. Backend: native MinIO SDK integration via MinioStorageService; UploadUserPhotoUseCase validates 5 MB limit and image content-type; new POST /auth/profile/photo endpoint (multipart). All hardcoded ui-avatars.com fallback URLs removed from 6 use cases — backend now returns null when user has no photo. Frontend: ProfilePage gains clickable avatar with camera overlay, file picker, preview, and photo upload on save. UserAvatar gains onError handler for broken URLs and xs size. OrganizationAdminPage replaces hardcoded ui-avatars.com with UserAvatar component. CI/CD: deploy-main.yml passes 5 new MinIO secrets to the server and writes them to .env.production. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| .mvn/wrapper | ||
| src/main | ||
| .env.example | ||
| .gitignore | ||
| Dockerfile | ||
| mvnw | ||
| mvnw.cmd | ||
| pom.xml | ||
| README.md | ||
backend
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 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 it’s 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/backend-1.0.0-SNAPSHOT-runner
If you want to learn more about building native executables, please consult https://quarkus.io/guides/maven-tooling.
Related Guides
- REST (guide): A Jakarta REST implementation utilizing build time processing and Vert.x. This extension is not compatible with the quarkus-resteasy extension, or any of the extensions that depend on it.
- Flyway (guide): Handle your database schema migrations
- Hibernate ORM with Panache (guide): Simplify your persistence code for Hibernate ORM via the active record or the repository pattern
- JDBC Driver - PostgreSQL (guide): Connect to the PostgreSQL database via JDBC
Provided Code
Hibernate ORM
Create your first JPA entity
Related Hibernate with Panache section...
REST
Easily start your REST Web Services