{"id":19449581,"url":"https://github.com/nihadamirov/user-management-system","last_synced_at":"2026-04-14T04:31:49.663Z","repository":{"id":234871629,"uuid":"787580747","full_name":"nihadamirov/User-Management-System","owner":"nihadamirov","description":"Project implements JWT (JSON Web Token) token-based authentication in a Spring Boot application. It provides user registration, login, password reset functionality, and role-based access control.","archived":false,"fork":false,"pushed_at":"2024-06-07T13:30:13.000Z","size":102,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-25T09:19:29.717Z","etag":null,"topics":["docker-compose","java","jwt-authentication","jwt-token","lombok","mysql","spring-boot","spring-data-jpa","spring-security"],"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/nihadamirov.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-04-16T19:47:31.000Z","updated_at":"2024-12-03T13:33:05.000Z","dependencies_parsed_at":"2024-05-07T21:23:09.567Z","dependency_job_id":"761d23d7-fb3b-458c-ac03-bf296607de03","html_url":"https://github.com/nihadamirov/User-Management-System","commit_stats":null,"previous_names":["nihadamirov/spring_security","nihadamirov/user-management-system"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nihadamirov/User-Management-System","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nihadamirov%2FUser-Management-System","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nihadamirov%2FUser-Management-System/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nihadamirov%2FUser-Management-System/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nihadamirov%2FUser-Management-System/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nihadamirov","download_url":"https://codeload.github.com/nihadamirov/User-Management-System/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nihadamirov%2FUser-Management-System/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31782736,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"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":["docker-compose","java","jwt-authentication","jwt-token","lombok","mysql","spring-boot","spring-data-jpa","spring-security"],"created_at":"2024-11-10T16:33:01.198Z","updated_at":"2026-04-14T04:31:49.647Z","avatar_url":"https://github.com/nihadamirov.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# User Management System\n\nThis project implements JWT (JSON Web Token) token-based authentication in a Spring Boot application. It provides user registration, login, password reset functionality, and role-based access control.\n\n## Installation\n\nTo run this project locally, you need to have Docker installed on your machine. Then, clone the repository and navigate to its directory. Use Docker Compose to start the MySQL database container:\n\n```bash\ndocker-compose up -d\n```\n\nAfter that, you can build and run the Spring Boot application using Maven:\n\n```bash\nmvn spring-boot:run\n```\n\nThe application will be accessible at `http://localhost:8080`.\n\n## Features\n\n- User registration and authentication\n- Role-based access control (USER and ADMIN roles)\n- Password reset functionality via OTP (One-Time Password) verification\n- JWT token generation and validation\n- Secure password storage using bcrypt encryption\n\n## Usage\n\n### User Registration\n\nTo register a new user, send a POST request to `/auth/registration` with the following JSON payload:\n\n```json\n{\n  \"name\": \"John Doe\",\n  \"username\": \"johndoe\",\n  \"email\": \"johndoe@example.com\",\n  \"password\": \"password123\",\n  \"authorities\": [\"ROLE_USER\"]\n}\n```\n\n### User Login\n\nTo authenticate a user and generate a JWT token, send a POST request to `/auth/login` with the following JSON payload:\n\n```json\n{\n  \"username\": \"johndoe\",\n  \"password\": \"password123\"\n}\n```\n\n### Password Reset\n\nTo reset a user's password, the user must request a verification code via email. Send a POST request to `/api/password/verifyMail/{email}` to initiate the process. Then, verify the OTP (One-Time Password) by sending a POST request to `/api/password/verifyOtp/{otp}/{email}`. Finally, change the password by sending a POST request to `/api/password/change/{email}` with the new password in the request body.\n\n## Dependencies\n\n- Spring Boot\n- Spring Security\n- Spring Data JPA\n- MySQL database\n- JWT (JSON Web Token) library\n- Lombok for reducing boilerplate code\n- Maven for dependency management\n\n## Configuration\n\n- `application.properties`: Configuration for Spring Data JPA and database connection.\n- `SecurityConfig`: Configuration for Spring Security and JWT authentication.\n- `JwtService`: Service class for JWT token generation and validation.\n- `UserService`: Service class for user management and authentication.\n\n## Docker Compose\n\nThe `docker-compose.yml` file is provided to set up a MySQL database container for development purposes.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnihadamirov%2Fuser-management-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnihadamirov%2Fuser-management-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnihadamirov%2Fuser-management-system/lists"}