{"id":29152883,"url":"https://github.com/abdularahman1243/springboot-employee-management-system-api","last_synced_at":"2026-05-04T22:42:17.090Z","repository":{"id":301141258,"uuid":"1008277165","full_name":"abdularahman1243/springboot-employee-management-system-api","owner":"abdularahman1243","description":"A secure and scalable employee management system built with Spring Boot, Spring Security, JWT authentication, JPA, and MySQL.","archived":false,"fork":false,"pushed_at":"2025-06-25T11:09:40.000Z","size":32,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-04T22:42:10.430Z","etag":null,"topics":["authentication-backend","authorization","backend","employee-management","java","jwt-authentication","mysql","restapi","security","spring-batch","spring-security","springboot","springboot-rest-api-employee-management"],"latest_commit_sha":null,"homepage":"https://www.youtube.com/@NextGenJava","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/abdularahman1243.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,"zenodo":null}},"created_at":"2025-06-25T09:47:20.000Z","updated_at":"2025-06-30T14:42:14.000Z","dependencies_parsed_at":"2025-06-25T11:39:19.430Z","dependency_job_id":null,"html_url":"https://github.com/abdularahman1243/springboot-employee-management-system-api","commit_stats":null,"previous_names":["abdularahman1243/employee-management-system"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/abdularahman1243/springboot-employee-management-system-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdularahman1243%2Fspringboot-employee-management-system-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdularahman1243%2Fspringboot-employee-management-system-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdularahman1243%2Fspringboot-employee-management-system-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdularahman1243%2Fspringboot-employee-management-system-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abdularahman1243","download_url":"https://codeload.github.com/abdularahman1243/springboot-employee-management-system-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdularahman1243%2Fspringboot-employee-management-system-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32628211,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"ssl_error","status_checked_at":"2026-05-04T10:08:02.005Z","response_time":58,"last_error":"SSL_read: 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":["authentication-backend","authorization","backend","employee-management","java","jwt-authentication","mysql","restapi","security","spring-batch","spring-security","springboot","springboot-rest-api-employee-management"],"created_at":"2025-07-01T01:03:22.670Z","updated_at":"2026-05-04T22:42:17.063Z","avatar_url":"https://github.com/abdularahman1243.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Spring Boot Employee Management API\r\n\r\nA comprehensive employee and user management system built with modern Java technologies.\r\n\r\n---\r\n\r\n## Overview\r\n\r\nThis project is a **Spring Boot** based web application for managing employees and users. It supports secure user authentication and authorization with **JWT tokens** and **Spring Security**. The system provides CRUD operations for employees and user management features such as registration, password change, and role-based access control.\r\n\r\n---\r\n\r\n## Technologies Used\r\n\r\n- **Spring Boot** - Framework for building Java web applications.\r\n- **Spring Security** - Provides authentication and authorization.\r\n- **JWT (JSON Web Token)** - For stateless secure user authentication.\r\n- **Spring Data JPA** - Simplifies data access with ORM.\r\n- **Hibernate** - JPA implementation.\r\n- **MySQL** - Relational database for data storage.\r\n- **BCrypt** - Password hashing.\r\n- **Maven** - Dependency management and build automation.\r\n- **Java 17** (or specify your Java version)\r\n- **REST API** - For communication with frontend or API clients like Postman.\r\n\r\n---\r\n\r\n## Features\r\n\r\n- User registration and login with JWT authentication.\r\n- Role-based access control: ADMIN and USER roles.\r\n- CRUD operations for employees (Add, Update, Delete, List).\r\n- Secure password storage with BCrypt.\r\n- Password change functionality for users and admins.\r\n- Token-based stateless authentication with JWT.\r\n- CORS configuration for cross-origin requests.\r\n- Validation of user inputs.\r\n- Clear and meaningful error handling.\r\n- Swagger UI integration for API documentation (if added).\r\n\r\n---\r\n\r\n## Project Structure\r\n\r\n- **controller** - REST API controllers for handling HTTP requests.\r\n- **service** - Business logic layer.\r\n- **repository** - Database access layer using Spring Data JPA.\r\n- **model** - Entity classes representing database tables.\r\n- **dto** - Data Transfer Objects to shape API responses.\r\n- **security** - JWT utilities and Spring Security configuration.\r\n- **exception** - Custom exception handling (optional).\r\n\r\n---\r\n\r\n## Getting Started\r\n\r\n### Prerequisites\r\n\r\n- Java JDK 17 or higher installed\r\n- MySQL database up and running\r\n- Maven installed\r\n\r\n### Setup\r\n\r\n1. Clone the repository:\r\n\r\n```bash\r\ngit clone https://github.com/abdularahman1243/springboot-employee-management-system-api.git\r\ncd springboot-employee-management-system-api\r\n---\r\n```\r\n\r\n2. Configure your database connection in src/main/resources/application.properties:\r\n\r\nspring.datasource.url=jdbc:mysql://localhost:3306/ems\r\nspring.datasource.username=root\r\nspring.datasource.password=abc@123\r\nspring.jpa.hibernate.ddl-auto=update\r\nspring.jpa.show-sql=true\r\n\r\n3. Build and run the application\r\n\r\nmvn clean install\r\nmvn spring-boot:run\r\n\r\n4. Access API endpoints via http://localhost:8080/api using tools like Postman.\r\n\r\nAPI Endpoints (examples)\r\nPOST /api/auth/login - User login, returns JWT token.\r\n\r\nPOST /api/auth/register - Register new users (ADMIN only).\r\n\r\nGET /api/admin/allEmployees - List all employees (ADMIN only).\r\n\r\nPOST /api/admin/addEmployee - Add new employee (ADMIN only).\r\n\r\nPUT /api/admin/updateEmployee - Update employee info (ADMIN only).\r\n\r\nDELETE /api/admin/deleteEmployee/{id} - Delete employee by ID (ADMIN only).\r\n\r\nPOST /api/admin/changeUserPassword - Admin changes user password.\r\n\r\nPOST /api/users/changeOwnPassword - Users change their own password.\r\n\r\nGET /api/admin/getAllUsers - Get All Users.\r\n\r\nDELETE /api/admin/deleteUser/{id} - Delete Users with Id.\r\n\r\nGET /api/admin/adminDashboard - Show Dashboard Content.\r\n\r\n.....\r\n\r\n\r\n\r\n\r\n\r\n\r\nNote :\r\nEmployee Management System, Spring Boot Employee Management, Spring Security, JWT Authentication, Role-Based Access Control, User Management, Employee CRUD, MySQL Database, Hibernate ORM, JPA, BCrypt Password Hashing, RESTful API, Java Backend, Secure User Login, Password Encryption, Admin Panel, User Roles, API Security, Spring Data JPA, Token-Based Authentication, Java Spring Project, Backend Development, Open Source Employee System, Employee Records Management, Secure REST API, User Registration, Password Reset, Access Control, CORS Configuration, Software Development, Full Stack Java Application\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabdularahman1243%2Fspringboot-employee-management-system-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabdularahman1243%2Fspringboot-employee-management-system-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabdularahman1243%2Fspringboot-employee-management-system-api/lists"}