@@ -60,3 +60,86 @@ The API returns standard HTTP status codes and follows the RFC 7807 Problem Deta
6060Full API documentation is available in OpenAPI format:
6161- Synchronous API: [ api.yaml] ( ./docs/api.yaml )
6262- Asynchronous API: [ async_api.json] ( ./docs/async_api.json )
63+
64+ ## Building and Running
65+
66+ ### Prerequisites
67+ - Java 21+
68+ - Maven 3.8+
69+
70+ ### Development
71+
72+ Run in development mode:
73+ ``` bash
74+ ./mvnw compile quarkus:dev
75+ ```
76+
77+ ### Testing
78+
79+ Run tests:
80+ ``` bash
81+ ./mvnw test
82+ ```
83+
84+ Run integration tests:
85+ ``` bash
86+ ./mvnw verify
87+ ```
88+
89+ ## Code Quality
90+
91+ This project enforces high code quality through multiple static analysis tools:
92+
93+ ### Error Prone
94+
95+ This project uses Error Prone to catch common Java programming mistakes at compile time.
96+
97+ ** Error Prone Integration:**
98+ - Runs automatically during compilation (` ./mvnw compile ` )
99+ - Catches bugs like incorrect Date usage, unused variables, and charset issues
100+ - Configured in the Maven compiler plugin
101+ - Uses Error Prone version 2.38.0
102+
103+ ** Common Error Prone checks include:**
104+ - ` JavaUtilDate ` - Flags usage of legacy ` java.util.Date ` API
105+ - ` UnusedVariable ` - Detects unused fields and variables
106+ - ` DefaultCharset ` - Warns about implicit charset usage in string operations
107+
108+ ### Checkstyle
109+
110+ This project uses Checkstyle to enforce coding standards based on the Google Java Style Guide.
111+
112+ ** Run Checkstyle validation:**
113+ ``` bash
114+ # Check code style (runs automatically during build)
115+ ./mvnw validate
116+
117+ # Run only Checkstyle check
118+ ./mvnw checkstyle:check
119+
120+ # Generate Checkstyle report (creates HTML report at target/reports/checkstyle.html)
121+ ./mvnw checkstyle:checkstyle
122+ ```
123+
124+ ### Spotless (Code Formatting)
125+
126+ This project uses Spotless with Google Java Format to automatically fix code style issues.
127+
128+ ** Format your code:**
129+ ``` bash
130+ # Check if code formatting is correct
131+ ./mvnw spotless:check
132+
133+ # Automatically fix code formatting issues
134+ ./mvnw spotless:apply
135+
136+ # Format and then validate with Checkstyle
137+ ./mvnw spotless:apply validate
138+ ```
139+
140+ ** Checkstyle Configuration:**
141+ - Configuration file: ` checkstyle.xml `
142+ - Suppressions file: ` checkstyle-suppressions.xml `
143+ - Based on Google Java Style Guide (modified for 4-space indentation)
144+ - Enforces 4-space indentation, 100-character line limit
145+ - Checks import ordering, Javadoc completeness, and naming conventions
0 commit comments