{"id":26864134,"url":"https://github.com/olooce/mwm_pms_springbootapi","last_synced_at":"2026-04-27T21:31:16.899Z","repository":{"id":253053502,"uuid":"821811445","full_name":"Olooce/MWM_PMS_SpringBootAPI","owner":"Olooce","description":"A demonstartion of a backend built using springboot.","archived":false,"fork":false,"pushed_at":"2024-10-16T07:27:17.000Z","size":472,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-31T03:37:58.351Z","etag":null,"topics":["java17-spring-boot","jbdc","maven","restful-api"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Olooce.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-29T13:57:59.000Z","updated_at":"2024-10-16T07:27:20.000Z","dependencies_parsed_at":"2024-10-17T19:24:06.209Z","dependency_job_id":null,"html_url":"https://github.com/Olooce/MWM_PMS_SpringBootAPI","commit_stats":null,"previous_names":["olooce/mwm_pms_springbootapi"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Olooce/MWM_PMS_SpringBootAPI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Olooce%2FMWM_PMS_SpringBootAPI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Olooce%2FMWM_PMS_SpringBootAPI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Olooce%2FMWM_PMS_SpringBootAPI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Olooce%2FMWM_PMS_SpringBootAPI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Olooce","download_url":"https://codeload.github.com/Olooce/MWM_PMS_SpringBootAPI/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Olooce%2FMWM_PMS_SpringBootAPI/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32356596,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"ssl_error","status_checked_at":"2026-04-27T20:07:00.910Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java17-spring-boot","jbdc","maven","restful-api"],"created_at":"2025-03-31T03:38:01.492Z","updated_at":"2026-04-27T21:31:16.884Z","avatar_url":"https://github.com/Olooce.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build and Dockerize](https://github.com/Olooce/MWM_PMS_SpringBootAPI/actions/workflows/maven.yml/badge.svg)](https://github.com/Olooce/MWM_PMS_SpringBootAPI/actions/workflows/maven.yml)\n\n## Introduction\n\nThis API provides endpoints for managing various entities within a Payroll Management System (PMS). The entities include Allowances, Bank Details, Branches, Contact Information, Deductions, Departments, Employees, Exports, Notifications, Salaries, System Users, and Taxes. Each controller corresponds to a specific entity and provides RESTful endpoints for CRUD operations and other specific actions.\n\n## Related Repositories\n\nThis project also includes a [React client application](https://github.com/Olooce/MWM_PMS_WEbReactUI) that interacts with the API.\n\n## Controllers and Endpoints\n\n### 1. **AllowanceController**\n- **Base URL:** `/allowances`\n- **Endpoints:**\n  - `GET /allowances`: Retrieves a paginated list of all allowances.\n    - **Parameters:**\n      - `page` (default: `0`)\n      - `size` (default: `10`)\n\n### 2. **BankDetailsController**\n- **Base URL:** `/bankdetails`\n- **Endpoints:**\n  - `GET /bankdetails`: Retrieves a paginated list of all bank details.\n    - **Parameters:**\n      - `page` (default: `1`)\n      - `size` (default: `10`)\n\n### 3. **BranchController**\n- **Base URL:** `/branches`\n- **Endpoints:**\n  - `GET /branches`: Retrieves a paginated list of all branches.\n    - **Parameters:**\n      - `page` (default: `1`)\n      - `size` (default: `10`)\n\n### 4. **ContactInfoController**\n- **Base URL:** `/contactinfo`\n- **Endpoints:**\n  - `GET /contactinfo`: Retrieves a paginated list of all contact information.\n    - **Parameters:**\n      - `page` (default: `1`)\n      - `size` (default: `10`)\n\n### 5. **DeductionController**\n- **Base URL:** `/deductions`\n- **Endpoints:**\n  - `GET /deductions`: Retrieves a paginated list of all deductions.\n    - **Parameters:**\n      - `page` (default: `1`)\n      - `size` (default: `10`)\n\n### 6. **DepartmentController**\n- **Base URL:** `/departments`\n- **Endpoints:**\n  - `GET /departments`: Retrieves a paginated list of all departments.\n    - **Parameters:**\n      - `page` (default: `1`)\n      - `size` (default: `10`)\n\n### 7. **EmployeeController**\n- **Base URL:** `/employees`\n- **Endpoints:**\n  - `GET /employees`: Retrieves a paginated list of all employees.\n    - **Parameters:**\n      - `page` (default: `1`)\n      - `size` (default: `10`)\n  - `GET /employees/new-by-department`: Retrieves new employees grouped by department within a specific date range.\n    - **Parameters:**\n      - `startDate` (optional, default: first day of the previous month)\n      - `endDate` (optional, default: today)\n      - `page` (default: `1`)\n      - `size` (default: `10`)\n  - `GET /employees/count-active/{departmentId}`: Counts the active employees in a specific department.\n  - `POST /employees/add-employee`: Adds a new employee.\n  - `PUT /employees/{employeeId}`: Updates an existing employee.\n  - `DELETE /employees/{employeeId}`: Deletes an employee.\n  - `POST /employees/search`: Searches for employees by a search term.\n    - **Parameters:**\n      - `searchTerm`\n      - `page`\n      - `size`\n\n### 8. **ExportController**\n- **Base URL:** `/api/export`\n- **Endpoints:**\n  - `POST /api/export/{tableName}`: Initiates an export job for a specific table.\n  - `POST /api/exportSearch/{tableName}`: Initiates an export job for search results within a table.\n    - **Parameters:**\n      - `searchTerm`\n  - `GET /api/download/{fileId}`: Downloads an exported file.\n  - `GET /api/listExports`: Lists all export jobs.\n    - **Parameters:**\n      - `page`\n      - `size`\n\n### 9. **NotificationController**\n- **Base URL:** `/api/notifications`\n- **Endpoints:**\n  - `GET /api/notifications`: Establishes a connection to receive real-time notifications via Server-Sent Events (SSE).\n    - **Parameters:**\n      - `clientId`: Unique identifier for the client connection.\n\n### 10. **SalaryController**\n- **Base URL:** `/salaries`\n- **Endpoints:**\n  - `GET /salaries/earnings-deductions/{employeeId}`: Retrieves earnings and deductions for a specific employee.\n  - `GET /salaries/allowances-net-salaries/{departmentId}`: Retrieves total allowances and net salaries by department.\n  - `GET /salaries/total-net-salary`: Retrieves the total net salary to be paid.\n  - `GET /salaries/payment-history/{employeeId}`: Retrieves the payment history of a specific employee.\n  - `GET /salaries`: Retrieves a paginated list of all salaries.\n    - **Parameters:**\n      - `page` (default: `1`)\n      - `size` (default: `10`)\n  - `GET /salaries/count`: Counts the total number of salaries.\n\n### 11. **SystemUserController**\n- **Base URL:** `/systemusers`\n- **Endpoints:**\n  - `GET /systemusers`: Retrieves a paginated list of all system users.\n    - **Parameters:**\n      - `page` (default: `1`)\n      - `size` (default: `10`)\n  - `POST /systemusers/auth`: Authenticates a system user and generates a JWT token.\n\n### 12. **TaxController**\n- **Base URL:** `/taxes`\n- **Endpoints:**\n  - `GET /taxes`: Retrieves a paginated list of all taxes.\n    - **Parameters:**\n      - `page` (default: `1`)\n      - `size` (default: `10`)\n\n## Usage\n\n- Each endpoint follows RESTful conventions.\n- Data is returned in JSON format, and pagination is managed via query parameters.\n- Authentication and security measures should be applied where necessary.\n\n## Authentication\n\n- The `/systemusers/auth` endpoint provides a method to authenticate users using a JWT-based mechanism.\n\n## Error Handling\n\n- Standard HTTP status codes are used to indicate the success or failure of API requests.\n- Detailed error messages are provided in the response body in case of failures.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folooce%2Fmwm_pms_springbootapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Folooce%2Fmwm_pms_springbootapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folooce%2Fmwm_pms_springbootapi/lists"}