# Report Detection Backend Java-based backend system for automated report validation and comparison using OCR. ## Technology Stack - **Core**: Java 8 (Spring Boot 2.7.18) - **Security**: Sa-Token (RBAC, Session Management) - **OCR Engine**: PaddleOCR (via DJL - Deep Java Library) - **Database**: PostgreSQL (with Dynamic Datasource support) - **Build Tool**: Maven ## Features - **RBAC Implementation**: Multi-role support (ADMIN, AUDITOR, USER) with uppercase standardization. - **Sa-Token Security**: Annotation-based permission checks and secure login. - **Auditor Context Switch**: Specialized feature for Auditors to switch between institutional views. - **PDF Processing**: Automatic conversion of PDF reports to images for OCR analysis. - **Automated Verification**: Integration tests using H2 in-memory database. ## Getting Started ### Prerequisites - JDK 8 or 17 - Maven 3.6+ - PostgreSQL (optional for local dev if using H2 profile) ### Run the Application ```bash mvn clean package java -jar target/report-detect-backend-1.0.0.jar ``` ### Run Tests ```bash mvn test -Dtest=SecurityRBACVerificationTest ``` ## Security Configuration Default accounts created on initialization: - `admin` / `123456` (ADMIN) - `auditor` / `123456` (AUDITOR) - `user` / `123456` (USER)