Skip to content

simonbosman/groeiplein

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GROEIPLEIN

Groeiplein: Unleash Your Project's Full Potential

license last-commit repo-top-language repo-language-count


Quick Links


Overview

Groeiplein is a project aimed at managing and fostering growth in a community-driven platform. It provides a comprehensive solution for organizing and coordinating various activities related to community growth. Users can create and join groups, participate in events, share resources, and engage in discussions. The project's value proposition lies in its ability to bring people together, facilitate collaboration, and empower individuals to contribute and learn within their community. With Groeiplein, users can easily connect with like-minded individuals, access a wealth of knowledge and resources, and actively contribute to the growth and development of their community.


Features

Feature Description
⚙️ Architecture The project is built using the Quarkus framework, which is a Kubernetes-native Java framework for building microservices. It follows a reactive architecture and uses reactive programming principles for efficient and scalable performance. The project incorporates RESTful APIs and uses a PostgreSQL database for data persistence. It also utilizes other technologies like Hibernate and Vert.x for enhanced functionality.
🔩 Code Quality The codebase follows good coding practices and style. It leverages the power of Java and Quarkus to ensure high-quality code. The code is well-organized, modular, and easy to maintain.
📄 Documentation The project has comprehensive documentation to guide developers through its setup, usage, and implementation. It includes explanations of the project's architecture, APIs, and important concepts. The documentation also provides examples and code snippets for better understanding.
🔌 Integrations The project integrates with various external dependencies such as Quarkus extensions like quarkus-reactive-pg-client, quarkus-hibernate-validator, and quarkus-resteasy-reactive-jackson. These dependencies enable features like reactive database access, data validation, and RESTful API serialization/deserialization.
🧩 Modularity The codebase follows a modular structure, which promotes reusability and maintainability. It utilizes Quarkus extensions and follows the principles of domain-driven design to separate concerns and keep the codebase clean and organized. Modules like Hibernate Reactive Rest Data Panache simplify database operations and enhance code modularity.
🧪 Testing The project uses testing frameworks like AssertJ and Quarkus Test to ensure code reliability and correctness. It incorporates unit tests, integration tests, and end-to-end tests to cover different aspects of functionality. The testing approach follows best practices and ensures proper code coverage.
⚡️ Performance The project leverages Quarkus's reactive architecture and reactive programming principles to achieve high performance and efficiency. It utilizes reactive database access and asynchronous programming to optimize resource usage. Quarkus's native compilation capability allows for fast startup times and low memory footprint.
🛡️ Security The project follows security best practices to protect data and control access. It incorporates measures like data encryption, authentication, and authorization. The use of frameworks like Quarkus ensures well-tested security features and reduces the risk of vulnerabilities.
📦 Dependencies Key external libraries and dependencies utilized in the project include Quarkus, Hibernate, Vert.x, and PostgreSQL. These dependencies provide additional features and functionalities that enhance the project's capabilities.

Repository Structure

└── groeiplein/
    ├── .dir-locals.el
    ├── .mvn
    │   └── wrapper
    │       └── MavenWrapperDownloader.java
    ├── DATABASE:groeiplein.uml
    ├── QUARKUS_PATCH.html
    ├── greenfield_inserts.sql
    ├── mvnw
    ├── mvnw.cmd
    ├── rest-data-panache.patch
    └── src
        ├── main
        │   ├── docker
        │   ├── java
        │   └── resources
        └── test
            └── java

Modules

.
File Summary
.dir-locals.el The code snippet in the.dir-locals.el file configures local variables for Emacs users working on the groeiplein repository. It enhances the development experience by setting specific behaviors and settings within the Emacs environment.
greenfield_inserts.sql The greenfield_inserts.sql file in the repository contains a PostgreSQL database dump. It is generated by pg_dump and includes data inserts for a greenfield project. The file is used for populating the database with initial data.
mvnw.cmd The mvnw.cmd file is a batch script used to start the Maven Wrapper tool. It validates the environment variables, sets up the project directory, and executes the Maven command with the appropriate Java executable and classpath. It also supports additional configurations and downloading the Maven wrapper if it's not found.
DATABASE:groeiplein.uml This code snippet plays a critical role in the parent repository's architecture. It achieves certain features within the codebase while maintaining a concise and succinct structure. The main purpose of the code is to deliver specific functionalities without going into technical implementation details.
pom.xml This code snippet is part of the groeiplein repository and is located in the pom.xml file. It manages the dependencies and plugins for the project, including Quarkus and its various extensions. The pom.xml file plays a critical role in defining the project's build configuration and managing its dependencies.
.dockerignore The code snippet in the .dockerignore file specifies the files and directories to be excluded when building a Docker image for the groeiplein repository. This ensures that only the necessary files related to the Quarkus application are included in the image.
.gitignore This code snippet, located in the.gitignore file, ensures that certain files and directories are not tracked by version control systems. It includes various file types and directories specific to Maven, Eclipse, IntelliJ, NetBeans, Visual Studio Code, OSX, Vim, patch files, local environment files, Quarkus plugin directories, debug directories, and certificates.
rest-data-panache.patch This code snippet modifies the implementation of several methods in the JaxRsResourceImplementor class. It adds annotations for rate limiting and caching to the resource classes, as well as implements various HTTP methods (GET, POST, PUT, DELETE) for CRUD operations. These changes enhance the functionality of the REST API by providing rate limiting and caching capabilities for improved performance and efficiency.
QUARKUS_PATCH.html The code snippet in QUARKUS_PATCH.html provides a summary of modifications made to Quarkus Panache REST Data extension. It adds rate limiting to resources and introduces caching mechanisms at the RESTful endpoint level for improved performance and reduced redundant processing. Additionally, there is a small change to maintain file format standards by adding a newline at the end of pom.xml.
mvnw The code snippet is the Maven Wrapper startup script. Its main role is to set up the environment variables and launch the Maven Wrapper for the project. It handles the downloading of the Maven Wrapper JAR file if it is not found, and then executes the wrapper.
.mvn.wrapper
File Summary
MavenWrapperDownloader.java This code snippet is a Java class called MavenWrapperDownloader. It is responsible for downloading the Apache Maven Wrapper, a tool used for building and managing Java projects. The class takes in a wrapper URL and a wrapper JAR file path as parameters and downloads the JAR file from the URL to the specified path. It also supports authentication for downloading if username and password environment variables are provided. This code plays a crucial role in setting up the development environment for the parent repository by ensuring the presence of the Maven Wrapper.
.gitignore The code snippet in the file.mvn/wrapper/.gitignore is responsible for ignoring the maven-wrapper.jar file in the repository's architecture. It ensures that the file is not tracked or included in version control.
src.test.java.nl.speyk.inlevermoment
File Summary
InleverMomentResourceTest.java The code snippet in the file InleverMomentResourceTest.java is responsible for testing the REST API endpoints related to the InleverMoment resource. It includes tests for listing, getting, creating, updating, and deleting inlever moments. The tests verify various aspects like status codes, response bodies, and authentication roles. The code ensures that the REST APIs used by the frontend are functioning correctly.
src.test.java.nl.speyk.leerling
File Summary
LeerlingResourceTest.java This code snippet tests the REST API endpoints for the Leerling resource in the groeiplein repository. It verifies the functionality of listing, creating, updating, and deleting Leerling objects based on different user roles.
src.test.java.nl.speyk.coupledbestand
File Summary
CoupledBestandResourceTest.java This code snippet contains tests for the REST API endpoints related to the CoupledBestand resource. It includes tests for listing, creating, updating, and deleting coupled bestanden. The tests are performed with different user roles and verify the expected HTTP status codes and responses.
src.test.java.nl.speyk.vakleergebied
File Summary
VakleergebiedResourceTest.java The code snippet is a test class for the VakleergebiedResource, which tests various REST API endpoints. It verifies the functionality of listing, creating, getting, updating, and deleting Vakleergebied objects. The tests are run with different user roles and check the expected HTTP status codes and response bodies.
src.test.java.nl.speyk.tijdlijnitem
File Summary
TijdlijnItemResourceTest.java This code snippet is a test class for the TijdlijnItemResource. It tests the functionality of creating, reading, updating, and deleting time-line items. It also tests the authorization of these operations based on user roles.
src.test.java.nl.speyk.opdracht
File Summary
OpdrachtResourceTest.java The code snippet is a test suite for the OpdrachtResource class in the Groeiplein repository. It verifies the functionality of the REST API endpoints for listing, creating, updating, and deleting opdracht objects. The tests cover different scenarios based on user roles and expected HTTP responses.
src.test.java.nl.speyk.doel
File Summary
DoelResourceTest.java This code snippet is a test class for the DoelResource in a Quarkus-based REST API. It tests various CRUD operations, authentication, and endpoint responses.
src.test.java.nl.speyk.groepopdracht
File Summary
GroepOpdrachtResourceTest.java This code snippet contains test cases for the GroepOpdrachtResource class. It tests various API endpoints for listing, retrieving, creating, updating, and deleting GroepOpdracht objects. The tests are performed with different user roles to ensure proper authorization.
src.test.java.nl.speyk.feedback
File Summary
FeedbackResourceTest.java This code snippet is a test class for the FeedbackResource, which is part of the larger groeiplein repository. It contains tests for listing, creating, getting, updating, and deleting feedback. The tests cover different user roles and validate the expected responses and behavior of the API.
src.test.java.nl.speyk.score
File Summary
ScoreResourceTest.java The ScoreResourceTest code snippet is a set of tests that verify the functionality of the score resource in the parent repository. It tests various operations such as listing scores, creating scores, updating scores, and deleting scores. The tests ensure that the expected responses and status codes are received for each operation.
src.test.java.nl.speyk.niveau
File Summary
NiveauResourceTest.java The code snippet in NiveauResourceTest.java tests the REST API endpoints for managing Niveau resources. It verifies the functionality of listing, creating, getting, updating, and deleting Niveau objects. Tests are performed with both user and admin roles.
src.test.java.nl.speyk.groepdoel
File Summary
GroepDoelResourceTest.java This code snippet is a test class for the GroepDoelResource, which is part of the Groeiplein repository. It tests various REST APIs used by the frontend, including listing group goals, retrieving goals by group UUID, retrieving groups by goal ID, creating, updating, and deleting group goals. It also tests the authorization roles for each operation.
src.test.java.nl.speyk.kerndoel
File Summary
KerndoelResourceTest.java This code snippet is a test suite for the KerndoelResource class in the parent repository. It tests various REST API endpoints used by the frontend, such as listing, creating, updating, and deleting kerndoel objects. The tests cover different user roles, authentication, and expected responses.
src.test.java.nl.speyk.domein
File Summary
DomeinResourceTest.java The DomeinResourceTest class in the nl.speyk.domein package is responsible for testing the REST API endpoints related to the Domein resource. It includes tests for listing, creating, updating, and deleting domeins. The tests check the authentication and authorization of different user roles, such as user and admin.
src.test.java.nl.speyk.scorevalue
File Summary
ScoreValueResourceTest.java This code snippet is a test class that verifies the functionality of the ScoreValue resource in the parent repository. It tests various CRUD operations and ensures that the correct status codes and responses are returned. The tests cover different user roles and permissions.
src.main.docker
File Summary
Dockerfile.native The code snippet is a Dockerfile used to build a container for running the Quarkus application in native mode. It sets up the working directory, copies the application files, exposes the required port, and specifies the command to run the application.
Dockerfile.native-micro This code snippet contains a Dockerfile that builds a container to run the Quarkus application in native mode. It uses a micro base image and reduces the resulting container size. The Dockerfile also specifies the application's port and command to run.
Dockerfile.legacy-jar The code snippet is a Dockerfile used to build a container for running a Quarkus application in JVM mode. It copies the necessary files, exposes the required port, sets environment variables, and specifies the Java application's JAR file.
Dockerfile.jvm The code snippet is a Dockerfile in the src/main/docker directory. It builds a container image that runs a Quarkus application in JVM mode. The image includes memory/GC tuning and exposes port 8080. The application JAR and related files are copied to the container.
src.main.resources
File Summary
application-prod.yml This code snippet, located in src/main/resources/application-prod.yml, contains configurations for the production environment of the parent repository. It defines the database connection, SSL settings, CORS origins, and other important parameters.
application-test.yml This code snippet, located in the src/main/resources/application-test.yml file, defines various configuration settings for the groeiplein repository. It includes details such as JWT tokens, database settings, and CORS origins.
import.sql This code snippet, located in the import.sql file, inserts test data into various tables of the parent repository's database. It populates tables such as vakleergebied, opdracht, leerling, and others with example values. This script is essential for seeding the database with initial data for testing and development purposes.
application-dev.yml This code snippet, located in the application-dev.yml file, provides configuration details for the parent repository's architecture. It includes settings for JWT authentication, database connection, CORS policy, and SSL certificates.
application.yml This code snippet defines the configuration settings for the parent repository. It includes settings for JWT verification, OpenAPI scanning, caching, logging, package type, and rate limiting. The configuration is specified in the application.yml file under the src/main/resources directory.
src.main.java.nl.speyk
File Summary
CategorieType.java The code snippet in CategorieType.java defines an enum called CategorieType in the nl.speyk package. It contains five categories: WAT_KAN_IK, WIE_BEN_IK, WAT_WIL_IK, COL, and LO. This enum likely represents different types of categories in the parent repository's architecture.
ApiMain.java This code snippet, located in src/main/java/nl/speyk/ApiMain.java, serves as the entry point for the API application. It uses Quarkus to run the ApiCli class, enabling the execution and control of the API functionality.
AuthorType.java This code snippet defines an enumeration called AuthorType in the nl.speyk package. It includes two values: DOCENT and LEERLING. This enum is likely used to distinguish between different types of authors in the parent repository's architecture.
ApiCli.java This code snippet, located at src/main/java/nl/speyk/ApiCli.java, is a class that implements the QuarkusApplication interface. Its main role is to run the Quarkus application and wait for it to exit. It does not take any arguments and returns an integer value of 0.
src.main.java.nl.speyk.inlevermoment
File Summary
InleverMomentResource.java This code snippet represents the InleverMomentResource interface in the parent repository. It defines several methods for retrieving and manipulating InleverMoment instances, including caching and role-based access control.
InleverMoment.java The code snippet is part of the groeiplein repository and represents a class called InleverMoment. It is responsible for defining and managing the properties and relationships of an InleverMoment entity. The class includes annotations for mapping to a database table and defining named queries for retrieving specific data from the table. It also provides methods for retrieving InleverMoment instances based on the associated Opdracht (task) and Leerling (student) entities.
src.main.java.nl.speyk.leerling
File Summary
LeerlingResource.java The LeerlingResource interface is part of the groeiplein repository. It extends PanacheRepositoryResource and provides methods to update and delete a Leerling entity. Roles are checked for authorization.
LeerlingService.java The LeerlingService class in the nl.speyk.leerling package is responsible for retrieving Leerling objects. It uses the LeerlingRepository to find and return a single Leerling by UUID or a list of Leerling objects by a list of UUIDs.
Leerling.java This code defines the Leerling entity in the nl.speyk.leerling package. It represents a student in the database and includes attributes like ID and student UUID. It also provides methods for getting and setting these attributes. The entity is annotated with JPA annotations for mapping to the database table and includes custom named queries.
LeerlingCustomResource.java The LeerlingCustomResource class in the codebase is responsible for handling REST API requests related to leerling (student) resources. It provides endpoints to find a leerling by its UUID and to find multiple leerlingen by a list of UUIDs. It utilizes caching for improved performance and supports role-based access control.
LeerlingRepository.java The code snippet defines the LeerlingRepository class, which is responsible for managing data access and operations related to Leerling entities in the parent repository's architecture. It implements the PanacheRepository interface and is annotated with ApplicationScoped and WithSession.
src.main.java.nl.speyk.coupledbestand
File Summary
CoupledBestandResource.java This code snippet represents the CoupledBestandResource interface in the CoupledBestand module of the groeiplein repository. It extends the PanacheEntityResource interface and defines methods for finding, updating, and deleting CoupledBestand entities. It also includes caching functionality and role-based access control.
CoupledBestand.java This code snippet defines the CoupledBestand entity class in the nl.speyk.coupledbestand package. It represents a coupled file with attributes like filename, fileurl, and a ManyToOne relationship with the InleverMoment entity. It also includes a static method for retrieving a list of CoupledBestand objects based on an inleverMomentId.
src.main.java.nl.speyk.vakleergebied
File Summary
VakleergebiedResource.java The code snippet represents the VakleergebiedResource interface in the nl.speyk.vakleergebied package. It extends PanacheRepositoryResource and provides methods for adding, updating, and deleting Vakleergebied entities, with role-based access control.
VakleergebiedRepository.java The code snippet represents the VakleergebiedRepository class in the parent repository's architecture. It is an application-scoped Panache repository that handles caching and data persistence for Vakleergebied entities.
Vakleergebied.java This code snippet defines the Vakleergebied class, which represents a domain entity in the repository. It includes fields for the entity's ID, prefix, title, and description, along with corresponding getter and setter methods. The class also overrides the hashCode() and equals() methods for object comparison.
src.main.java.nl.speyk.tijdlijnitem
File Summary
TijdlijnItem.java This code snippet defines the TijdlijnItem class, which represents a timeline item in the application. It includes properties such as title, content, category, timestamp, update timestamp, and a reference to a student. It also provides a method to retrieve timeline items by student ID.
TijdlijnItemResource.java This code snippet is a resource interface for managing TijdlijnItem entities in a Quarkus-based application. It provides methods for retrieving TijdlijnItems by leerlingId and deleting TijdlijnItems by id. The interface is annotated with rolesAllowed to control access to these operations. Caching is implemented using the CacheResult annotation, with a custom cache key generator.
src.main.java.nl.speyk.opdracht
File Summary
OpdrachtRepository.java The OpdrachtRepository code snippet in OpdrachtRepository.java is an application-scoped, Panache repository implementing a reactive Hibernate session. It provides access to CRUD operations for the Opdracht entity in the nl.speyk.opdracht package.
Opdracht.java The code snippet represents the Opdracht class in the nl.speyk.opdracht package. It is an entity class that maps to a database table called opdracht. The class defines the structure and properties of an Opdracht object, including its title, content, category, period, year, deadlines, and related Vakleergebied object.
OpdrachtService.java This code snippet represents the OpdrachtService class in the groeiplein repository. It is responsible for retrieving a list of opdrachten (tasks) without any associated groepen (groups) from the opdrachtRepository. The class is annotated as ApplicationScoped, WithSessionOnDemand, and RateLimited.
OpdrachtCustomResource.java This code snippet is a Java class in the repository that serves as a custom resource for retrieving a list of Opdracht objects without a group. It uses Quarkus cache to optimize performance by caching the results. The resource is protected and can only be accessed by users with the roles docent or leerling.
OpdrachtResource.java The code snippet defines the OpdrachtResource interface, which extends PanacheRepositoryResource. It provides methods for adding, updating, and deleting Opdracht entities, with role-based access control.
src.main.java.nl.speyk.doel
File Summary
DoelResource.java The code snippet in DoelResource.java is an interface that extends PanacheRepositoryResource. It provides REST endpoints for CRUD operations on the Doel entity. The interface includes methods for adding, updating, and deleting Doel entities, with role-based access control using annotations.
DoelRepository.java The DoelRepository class is a critical component of the groeiplein repository. It is an application-scoped, reactive Hibernate Panache repository that handles data access and persistence for the Doel entity. It implements common CRUD operations and is integrated with the Quarkus framework.
DoelService.java The DoelService class is a crucial component in the groeiplein repository. It provides methods for retrieving different types of goals based on specific criteria. This code snippet is responsible for interacting with the DoelRepository to fetch lists of goals by their niveau ID, goals without groups, and goals by vakleergebied ID.
DoelCustomResource.java This code snippet represents the DoelCustomResource class in the parent repository's architecture. It is responsible for handling HTTP requests related to goals. The code utilizes caching and security annotations, interacting with the DoelService class to retrieve and return lists of goals based on different criteria.
Doel.java The code snippet represents the Doel class in the parent repository. It is an entity class that maps to the doel table in the database. The class defines various properties and their respective annotations for validation and relationships with other entities. It also contains methods for getting and setting the values of these properties.
src.main.java.nl.speyk.groepopdracht
File Summary
GroepOpdrachtResource.java This code snippet represents the GroepOpdrachtResource interface in the nl.speyk.groepopdracht package. It extends the PanacheEntityResource class and provides methods for finding, adding, updating, and deleting GroepOpdracht objects. It also includes caching and security annotations.
GroepOpdracht.java The code snippet represents the GroepOpdracht entity class in the nl.speyk.groepopdracht package. It defines the structure and behavior of a group assignment, including its relationship with an Opdracht (assignment) entity. The class provides methods to retrieve and delete group assignments based on the group UUID and assignment ID.
src.main.java.nl.speyk.utils
File Summary
UserResolver.java Summary:The code snippet, located at src/main/java/nl/speyk/utils/UserResolver.java, is a part of the groeiplein repository. It provides functionality to resolve the identity of a user by leveraging the JsonWebToken class. It is used within the architecture to handle user authentication and authorization.
GenerateToken.java The code snippet in GenerateToken.java generates a JWT token using the SmallRye library. It includes the issuer, preferred username, and groups in the token, and prints it to the console. It is a utility class used for token generation in the parent repository's architecture.
CustomCacheKeyGenerator.java This code snippet is a Custom Cache Key Generator. It is part of the groeiplein repository and is located in the nl.speyk.utils package. The role of this code is to generate a cache key for caching purposes based on the method name and its parameters. It is implemented as a Quarkus application-scoped component.
JwtGenerator.java The code snippet is a utility class called JwtGenerator that generates valid JWT tokens. It uses the Jwt class from the io.smallrye.jwt.build package to build the tokens. The class has two methods, generateValidAdminToken() and generateValidUserToken(), each generating a token with different user roles. The tokens are generated with an issuer URL and specific user information.
src.main.java.nl.speyk.feedback
File Summary
Feedback.java This code snippet represents the Feedback entity class in the groeiplein repository. It defines the structure and properties of a feedback object, including its timestamp, update timestamp, author UUID, title, content, and author type. The class also includes methods for getting and setting these properties, as well as overriding the hashCode() and equals() methods for object comparison.
FeedbackResource.java The FeedbackResource code snippet is a Java interface that extends PanacheRepositoryResource from the Quarkus Hibernate framework. It includes methods for updating and deleting feedback entities, with role-based access control. Its role is to provide a RESTful API for managing feedback data.
FeedbackRepository.java The code snippet represents the FeedbackRepository class, which is a Panache Repository for the feedback entity in the groeiplein repository. It is responsible for handling the caching of feedback data.
src.main.java.nl.speyk.score
File Summary
ScoreResource.java This code snippet represents the ScoreResource interface, which is part of the groeiplein repository. It provides methods for retrieving and manipulating scores. It includes caching and role-based access control features.
Score.java The Score class is a Hibernate entity in the nl.speyk.score package. It represents a score given to a Doel (goal) by a Leerling (student), with additional properties such as authorUuid, timestamp, value, feedback, and author. It provides static methods to retrieve scores by doelId, leerlingId, and a list of leerlingIds. It is part of the larger groeiplein repository structure.
src.main.java.nl.speyk.niveau
File Summary
NiveauRepository.java This code snippet represents the NiveauRepository class in the groeiplein repository. It is an application-scoped, cache-enabled repository for managing Niveau entities using the Panache ORM pattern.
Niveau.java The code in Niveau.java defines the Niveau entity, which represents a level in the application. It has properties like id, title, description, type, and prefix. It also includes methods for getting and setting these properties, as well as methods for calculating the hash code and checking equality.
NiveauResource.java The code snippet in NiveauResource.java is a resource interface that handles CRUD operations for the Niveau entity in the parent repository. It uses Quarkus, Hibernate Reactive, and Panache to provide reactive database access. The interface includes methods to add, update, and delete Niveau entities, with role-based access control.
src.main.java.nl.speyk.groepdoel
File Summary
GroepDoelResource.java This code snippet is a Java interface called GroepDoelResource that extends PanacheEntityResource. It provides methods to interact with the GroepDoel entity, such as finding doelen by group UUID, finding groepen by doel ID, and deleting groepdoel records. The interface also includes methods for adding, updating, and deleting GroepDoel entities. The code uses annotations to specify roles allowed to access the methods and enables caching using a custom cache key generator.
GroepDoel.java The GroepDoel class in the nl.speyk.groepdoel package is an entity that represents the relationship between a group and a goal in the parent repository's architecture. It provides methods for finding and deleting group-goal relationships based on the group UUID and the goal ID.
src.main.java.nl.speyk.kerndoel
File Summary
KerndoelRepository.java This code snippet is the implementation of the KerndoelRepository class in the nl.speyk.kerndoel package. It serves as a Panache repository for the Kerndoel entity, providing caching functionality through the cache object.
KerndoelResource.java This code snippet defines the KerndoelResource interface in the nl.speyk.kerndoel package. It extends PanacheRepositoryResource and specifies methods for adding, updating, and deleting Kerndoel entities. Access to these methods is restricted to users with the docent role.
Kerndoel.java The code snippet represents the Kerndoel class in the nl.speyk.kerndoel package. It defines a data model for a Kerndoel entity, including attributes such as prefix, title, description, and a ManyToOne relationship with the Domein entity. The class also includes generated Id, getters, setters, and methods for hashCode and equals.
src.main.java.nl.speyk.domein
File Summary
DomeinResource.java The code snippet represents a resource interface called DomeinResource in the parent repository. It extends PanacheRepositoryResource and defines methods for adding, updating, and deleting entities in the Domein repository. It also specifies the required roles for accessing these methods.
Domein.java This code snippet represents the Domein class in the nl.speyk.domein package. It is an entity class that maps to a database table called domein. The class has properties for id and title, along with getters, setters, and overridden methods for hashing and equality.
DomeinRepository.java The code snippet represents the DomeinRepository class in the groeiplein repository. It is responsible for caching Domein objects using Quarkus cache and implements PanacheRepository for Hibernate reactive operations.
src.main.java.nl.speyk.scorevalue
File Summary
ScoreValueRepository.java The ScoreValueRepository class is a Panache repository that manages operations related to the ScoreValue entity. It is responsible for caching and injecting dependencies.
ScoreValue.java The ScoreValue.java file in the nl.speyk.scorevalue package is an entity class that represents a score value in the system. It contains fields for the title, value, color, and icon of the score value. The class also includes methods for getting and setting these fields, as well as overriding the hashCode() and equals() methods for object comparison.
ScoreValueResource.java This code snippet defines the ScoreValueResource interface, which extends the PanacheRepositoryResource interface. It provides CRUD operations for the ScoreValue entity with authentication roles. It allows adding, updating, and deleting ScoreValue instances.

Getting Started

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 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.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 -Pnative

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

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

You can then execute your native executable with: ./target/digitaal-portfolio-1.0.0-SNAPSHOT-runner

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

Creating zig/transformed/ files

mvn quarkus:dev -Dquarkus.debug.generated-sources-dir=dump_zig -Dquarkus.debug.generated-classes-dir=dump_classes -Dquarkus.debug.transformed-classes-dir=dump_transformed

Related Guides

  • Flyway (guide): Handle your database schema migrations
  • Reactive PostgreSQL client (guide): Connect to the PostgreSQL database using the reactive pattern
  • JDBC Driver - PostgreSQL (guide): Connect to the PostgreSQL database via JDBC

Provided Code

RESTEasy Reactive

Easily start your Reactive RESTful Web Services

Related guide section...

About

Groeiplein: Unleash Your Project's Full Potential

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published