Groeiplein: Unleash Your Project's Full Potential
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.
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. |
└── 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
.
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. |
This project uses Quarkus, the Supersonic Subatomic Java Framework.
If you want to learn more about Quarkus, please visit its website: https://quarkus.io/ .
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/.
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
.
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.
mvn quarkus:dev -Dquarkus.debug.generated-sources-dir=dump_zig -Dquarkus.debug.generated-classes-dir=dump_classes -Dquarkus.debug.transformed-classes-dir=dump_transformed
- 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
Easily start your Reactive RESTful Web Services