Logo Lanfrica

Hyguette07/RwandaPay-ERP

Domain:

socioeconomicdigital infrastructure

Record type:

software
Creator:
Hyg
Host:
Secure Payroll & HR System built with Java Spring Boot for Rwanda Government. Handles employee data, automated payroll, deductions, JWT security, payslips, and notification messages. # ERP Payroll & Employee Management System Spring Boot 3 backend for employee management, JWT authentication, payroll processing, payslip generation, and payroll messaging for the Government of Rwanda. ## Features - Employee management with validation and unique email/employee ID rules - JWT authentication with 8-hour expiry - Role-based authorization for manager, admin, and employee flows - Payroll processing with configurable deductions and allowances - Payslip approval, PDF download, payroll messages, and audit logging - Swagger UI at `/swagger-ui.html` - Pagination and sorting on employee listing ## Tech Stack - Java 17 - Spring Boot 3 - Spring Security + JWT - Spring Data JPA - PostgreSQL/MySQL-ready persistence - OpenAPI / Swagger - iText PDF - JUnit 5 + Mockito - Docker Compose ## ERD ```mermaid erDiagram EMPLOYEE ||--|| USERS : has USERS }o--o{ ROLES : assigned EMPLOYEE ||--o{ PAYSLIP : receives EMPLOYEE ||--o{ PAYROLL_MESSAGE : receives PAYROLL_AUDIT_LOG { bigint id string action string details datetime created_at } EMPLOYEE { bigint id string employee_id string email decimal base_salary string status } USERS { bigint id bigint employee_id string password string status } ROLES { bigint id string name } DEDUCTIONS { bigint id string name decimal percentage string type } PAYSLIP { bigint id bigint employee_id string month_year decimal gross_salary decimal net_salary string status } PAYROLL_MESSAGE { bigint id bigint employee_id string message_text string month_year } ``` ## Spring Boot Flow ```mermaid flowchart LR Client --> Controller Controller --> Service Service --> Repository Repository --> Database Database --> Repository Repository --> Service Service --> Controller Controller --> Client ``` ## Setup 1. Configure environment variables or edit application.yml. 2. Create the database and optionally run schema-postgresql.sql, data.sql, and routines-postgresql.sql. 3. Run `mvn spring-boot:run`. 4. Open `localhost`. # …