{"id":15856922,"url":"https://github.com/ebenjs/spring-boot-user-management-workflow","last_synced_at":"2025-10-20T02:09:18.699Z","repository":{"id":245462548,"uuid":"818256474","full_name":"ebenjs/spring-boot-user-management-workflow","owner":"ebenjs","description":null,"archived":false,"fork":false,"pushed_at":"2024-06-22T21:13:28.000Z","size":33,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-05T02:02:00.656Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/ebenjs.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-21T12:45:27.000Z","updated_at":"2024-06-21T15:35:26.000Z","dependencies_parsed_at":"2024-10-27T03:00:50.603Z","dependency_job_id":"32e23839-7c91-4f19-8531-4f063dcfa179","html_url":"https://github.com/ebenjs/spring-boot-user-management-workflow","commit_stats":{"total_commits":2,"total_committers":1,"mean_commits":2.0,"dds":0.0,"last_synced_commit":"b5708d96fe2904496fa48ac810234aaca133d6de"},"previous_names":["ebenjs/spring-boot-user-management-workflow"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebenjs%2Fspring-boot-user-management-workflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebenjs%2Fspring-boot-user-management-workflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebenjs%2Fspring-boot-user-management-workflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebenjs%2Fspring-boot-user-management-workflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ebenjs","download_url":"https://codeload.github.com/ebenjs/spring-boot-user-management-workflow/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246699148,"owners_count":20819680,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-10-05T20:04:50.910Z","updated_at":"2025-10-20T02:09:13.653Z","avatar_url":"https://github.com/ebenjs.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# User management workflow\nA simple ready to use user management workflow for your spring boot application.\n\n## Features\n- User registration\n- User login (JWT, OAuth2)\n- User profile update\n- User password update\n- User password reset\n- User account verification\n- User account activation\n\n## Technologies\n- Spring Boot\n- Spring Security\n- Spring Data JPA\n- Spring Mail\n- Spring Web\n\n## Getting started\n1. Clone the repository\n\n```bash\ngit clone https://github.com/ebenjs/spring-boot-user-management-workflow.git\n```\n2. Open the project in your favorite IDE\n\n    You can import the project as a maven project in your favorite IDE. The best way of\nusing this library is to add it as a dependency in your main project.\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.ebenj\u003c/groupId\u003e\n    \u003cartifactId\u003euser-management-workflow\u003c/artifactId\u003e\n    \u003cversion\u003e1.0.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\nCopy values from `application.properties` to your `application.properties` file and adjust them to your needs.\n\n```properties\nspring.application.name=application\napp.jwt.secret=9c3791c32879fa20b91587cae1855ea171f23c0b6d1c0cg83f2a432a553b6174\napp.base.url=http://localhost:8080/\napp.base.front.url=http://localhost:5173/\napp.api.prefix=api/v1\n\nspring.data.mongodb.uri=mongodb://localhost:27017\nspring.data.mongodb.database=dbname\n\nspring.jpa.hibernate.ddl-auto=update\nspring.data.mongodb.auto-index-creation=true\n\nspring.profiles.active=dev\n\nspring.security.oauth2.client.registration.github.client-id=\nspring.security.oauth2.client.registration.github.client-secret=\nspring.security.oauth2.client.registration.github.scope=user:email,read:user\nspring.security.oauth2.client.registration.github.client-name=GitHub\n\n#spring.security.oauth2.client.provider.github.authorization-uri=https://github.com/login/oauth/authorize\n#spring.security.oauth2.client.provider.github.token-uri=https://github.com/login/oauth/access_token\n#spring.security.oauth2.client.provider.github.user-info-uri=https://api.github.com/user\n\nspring.security.oauth2.client.registration.google.client-id=\nspring.security.oauth2.client.registration.google.client-secret=\nspring.security.oauth2.client.registration.google.scope=profile,email\nspring.security.oauth2.client.registration.google.client-name=Google\n\nspring.security.oauth2.client.registration.linkedin.client-id=\nspring.security.oauth2.client.registration.linkedin.client-secret=\nspring.security.oauth2.client.registration.linkedin.scope=profile,email\nspring.security.oauth2.client.registration.linkedin.client-name=LinkedIn\nspring.security.oauth2.client.registration.linkedin.authorization-grant-type=authorization_code\nspring.security.oauth2.client.registration.linkedin.redirect-uri=http://localhost:8080/login/oauth2/code/linkedin\n\nspring.security.oauth2.client.provider.linkedin.authorization-uri=https://www.linkedin.com/oauth/v2/authorization\nspring.security.oauth2.client.provider.linkedin.token-uri=https://www.linkedin.com/oauth/v2/accessToken\nspring.security.oauth2.client.provider.linkedin.user-info-uri=https://api.linkedin.com/v2/me\nspring.security.oauth2.client.provider.linkedin.user-name-attribute=id\n\n\n```\nAnnotate your main class with `@SpringBootApplication` and `@EnableMongoRepositories` annotation.\n\n```java\n@SpringBootApplication\n@EnableMongoRepositories(basePackages = {\"com.ebenjs\"})\npublic class Application {\n    public static void main(String[] args) {\n        SpringApplication.run(Application.class, args);\n    }\n}\n```\n3. Run the project\n\n    Now you can run the project by executing the main class.\n\n\n4. Open your browser and navigate to `http://localhost:8080`. All endpoints are prefixed with `api/v1`.\nYou can customize anythig you want by editing the source code directly as you want.\nYou have access to :\n- Controllers\n- Services\n- Repositories\n- Models\n- Entities\n- Enums\n- SecurityConfigurations\n- ... and more\n\nNote that by default the persistence layer is MongoDB. You can change it to any other database of your choice.\nIf you have any request or suggestion, feel free to open an issue or a pull request or contact me directly at `nikaboue10@gmail.com`.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febenjs%2Fspring-boot-user-management-workflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Febenjs%2Fspring-boot-user-management-workflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febenjs%2Fspring-boot-user-management-workflow/lists"}