{"id":31727125,"url":"https://github.com/furkankayam/spring-boot-email-verification","last_synced_at":"2026-04-12T15:03:41.214Z","repository":{"id":314003846,"uuid":"1053718529","full_name":"furkankayam/spring-boot-email-verification","owner":"furkankayam","description":"✅ This project provides a secure user registration system with email OTP verification, where users confirm their accounts using a time-limited code sent via email.","archived":false,"fork":false,"pushed_at":"2025-09-09T23:00:28.000Z","size":1609,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-09-10T02:25:45.534Z","etag":null,"topics":["docker","docker-compose","email-verification","gradle","java","mysql","postgresql","rabbitmq","spring-boot"],"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/furkankayam.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-09T20:40:00.000Z","updated_at":"2025-09-09T23:00:31.000Z","dependencies_parsed_at":"2025-09-10T02:28:17.007Z","dependency_job_id":"e6a906a3-0670-40e6-9aa1-3501ebbcdbab","html_url":"https://github.com/furkankayam/spring-boot-email-verification","commit_stats":null,"previous_names":["furkankayam/spring-boot-email-verification"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/furkankayam/spring-boot-email-verification","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furkankayam%2Fspring-boot-email-verification","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furkankayam%2Fspring-boot-email-verification/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furkankayam%2Fspring-boot-email-verification/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furkankayam%2Fspring-boot-email-verification/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/furkankayam","download_url":"https://codeload.github.com/furkankayam/spring-boot-email-verification/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furkankayam%2Fspring-boot-email-verification/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000853,"owners_count":26082950,"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","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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","docker-compose","email-verification","gradle","java","mysql","postgresql","rabbitmq","spring-boot"],"created_at":"2025-10-09T06:18:27.866Z","updated_at":"2025-10-09T06:18:30.644Z","avatar_url":"https://github.com/furkankayam.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ✉️ Mail Verification\n\n\u003cdiv align=\"center\"\u003e\n  \u003ch3\u003e⚡ Architecture Schema \u003c/h3\u003e\n  \u003cimg src=\"./images/schema-1.png\" alt=\"architecture schema\"\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e 👤 Create Account \u003c/summary\u003e\n\u003cimg src=\"./images/save.png\" alt=\"save\"\u003e\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e ✅ Verify Account \u003c/summary\u003e\n\u003cimg src=\"./images/verify.png\" alt=\"verify\"\u003e\n\u003cimg src=\"./images/verify-1.png\" alt=\"verify-1\"\u003e\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e 📧 Email Notification \u003c/summary\u003e\n\u003cimg src=\"./images/email.png\" alt=\"email\"\u003e\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e ❌ Unverified \u003c/summary\u003e\n\u003cimg src=\"./images/non-verify.png\" alt=\"non-verify\"\u003e\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e ⚠️ Invalid OTP \u003c/summary\u003e\n\u003cimg src=\"./images/invalid.png\" alt=\"invalid\"\u003e\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e 🔄 Re-verify \u003c/summary\u003e\n\u003cimg src=\"./images/reverify.png\" alt=\"reverify\"\u003e\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e🐳 Docker \u003c/summary\u003e\n\u003cimg src=\"./images/docker.png\" alt=\"docker\"\u003e\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e 📚 Swagger UI \u003c/summary\u003e\n\u003cimg src=\"./images/swagger-ui.png\" alt=\"swagger-ui\"\u003e\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n## 📖 About\n\n- ✅  This project demonstrates a secure user registration system with email-based OTP (One-Time Password) verification. Users can create accounts and verify their email addresses through a time-limited verification code sent via email.\n\n\u003cbr\u003e\n\n## 🛠️ Technologies Used\n\n[![Java](https://img.shields.io/badge/Java-17-000?style=for-the-badge\u0026logo=openjdk\u0026logoColor=white\u0026color=FF9A00)](https://www.oracle.com/java/)\n[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.5.5-000?style=for-the-badge\u0026logo=springboot\u0026logoColor=white\u0026color=6DB33F)](https://spring.io/projects/spring-boot)\n[![MySQL](https://img.shields.io/badge/MySQL-8.0-000?style=for-the-badge\u0026logo=mysql\u0026logoColor=white\u0026color=4479A1)](https://www.mysql.com/)\n[![PostgreSQL](https://img.shields.io/badge/PostgreSQL-15.2-000?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white\u0026color=4169E1)](https://www.postgresql.org/)\n[![Adminer](https://img.shields.io/badge/Adminer-4.8-000?style=for-the-badge\u0026logo=adminer\u0026logoColor=white\u0026color=34567C)](https://www.adminer.org)\n[![Gradle](https://img.shields.io/badge/Gradle-9.0-000?style=for-the-badge\u0026logo=gradle\u0026logoColor=white\u0026color=02303A)](https://gradle.org/)\n[![RabbitMQ](https://img.shields.io/badge/RabbitMQ-3.0-000?style=for-the-badge\u0026logo=rabbitmq\u0026logoColor=white\u0026color=FF6600)](https://www.docker.com/)\n[![Docker](https://img.shields.io/badge/Docker-28.3-000?style=for-the-badge\u0026logo=docker\u0026logoColor=white\u0026color=2496ED)](https://www.docker.com/)\n\n\u003cbr\u003e\n\n### 🚀 Quick Start\n#### Prerequisites\n- Java 17+\n- MySQL 8.0\n- PostgreSQL 15.2\n- Docker \u0026 Docker Compose\n\n#### Database Configuration\n\n- **MySQL**\n- **URL:** `http://localhost:9090` (Adminer)\n- **Database:** `email_db`\n- **Username:** `mysql`\n- **Password:** `mysql`\n\n\u003cbr\u003e\n\n- **PostgreSQL**\n- **URL:** `http://localhost:9090` (Adminer)\n- **Database:** `email_db`\n- **Username:** `postgres`\n- **Password:** `postgres`\n\n### Installation\n\n```shell\ngit clone https://github.com/furkankayam/spring-boot-email-verification.git\ncd spring-boot-email-verification\n```\n\n\u003cbr\u003e\n\n### Usage\n\n```shell\ndocker-compose up\n```\n\n```shell\n./gradlew build\n```\n\n```shell\n./gradlew :mail-service:bootRun\n./gradlew :account-service:bootRun\n```\n\n#### 3. Access endpoints\n\n- Database UI: `http://localhost:9090`\n- Mail Service `http://localhost:8082/swagger-ui/index.html`\n- Account Service: `http://localhost:8081/swagger-ui/index.html`\n\n\u003cbr\u003e\n\n# License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details\n\n**Created by** [Mehmet Furkan KAYA](https://www.linkedin.com/in/mehmet-furkan-kaya/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffurkankayam%2Fspring-boot-email-verification","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffurkankayam%2Fspring-boot-email-verification","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffurkankayam%2Fspring-boot-email-verification/lists"}