Jenga Backend
Jenga backend using Quarkus, the Supersonic Subatomic Java Framework.
Configuration and Setup
Before running the application, you must configure security keys and API credentials.
1. JWT Keypair Setup
For JWT authentication, you must generate a keypair.
Note: These files are not needed in
devmode but are required for production builds.
Generate the keypair using openssl:
1 2 3 4 5 | |
Place the generated files in the src/main/resources/ directory:
src/main/resources/privateKey.pemsrc/main/resources/publicKey.pem
2. Environment Configuration
The application requires API keys for AI and search functionality. These are managed in two files:
.env: (At the project root) Used to store your secret keys.application.properties: (Insrc/main/resources) Used to configure the application and read the keys from the environment.
Gemini (Langchain4j)
.env
1 | |
application.properties
1 2 3 | |
Google Web Search Tool
This enables the AI's WebSearchTool via the Google Custom Search Engine (CSE) API.
Get Credentials:
- API Key: Get from Google Cloud Console. Enable the "Custom Search API".
- Search Engine ID: Get from the Programmable Search Engine panel. Create a new engine, select "Search the entire web", and copy the "Search engine ID" from the Setup tab.
.env
1 2 3 | |
application.properties
1 2 3 4 | |
Running and Building
Development Mode
Run your application in dev mode, which enables live coding:
1 | |
- Dev UI: http://localhost:8080/q/dev/
- Swagger: http://localhost:8080/swagger
Packaging the Application
Package the application using:
1 | |
This produces a quarkus-run.jar file in target/quarkus-app/.
Run the application using:
1 | |
To build an über-jar (a single executable file), run:
1./mvnw package -Dquarkus.package.jar.type=uber-jarYou can then run it using:
java -jar target/*-runner.jar
Creating a Native Executable
You can create a native executable using:
1 | |
If you don't have GraalVM installed, run the build in a container:
1 | |
You can then execute your native executable with: ./target/jenga-0.0.1-SNAPSHOT-runner
docs/export-issues.md
How to Export GitHub Issues
This guide covers the steps to export all issues from a GitHub repository to a JSON file using the official GitHub CLI.
See also: Ticket #56
Step 1: Install the GitHub CLI
If you are on a Mac, you can use Homebrew. For other systems, see the official installation guide.
1 | |
Step 2: Log In
You must authenticate with your GitHub account. This command specifically requests the read:project scope needed to access project information.
1 | |
Step 3: Export All Issues
Run the command below to fetch all issues (both open and closed) from the Jenga-PMS/Jenga repository. The data will be saved to a file named all-issues.json.
1 2 3 4 5 | |
Note: Custom fields like "Size," "Estimate," and "Priority" (which may exist in your project's board) cannot be extracted using this basic
gh issue listcommand.