An open API service indexing awesome lists of open source software.

https://github.com/furkankayam/spring-boot-email-verification

✅ 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.
https://github.com/furkankayam/spring-boot-email-verification

docker docker-compose email-verification gradle java mysql postgresql rabbitmq spring-boot

Last synced: 3 months ago
JSON representation

✅ 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.

Awesome Lists containing this project

README

          

# ✉️ Mail Verification


⚡ Architecture Schema


architecture schema


👤 Create Account
save


✅ Verify Account
verify
verify-1


📧 Email Notification
email


❌ Unverified
non-verify


⚠️ Invalid OTP
invalid


🔄 Re-verify
reverify


🐳 Docker
docker


📚 Swagger UI
swagger-ui


## 📖 About

- ✅ 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.


## 🛠️ Technologies Used

[![Java](https://img.shields.io/badge/Java-17-000?style=for-the-badge&logo=openjdk&logoColor=white&color=FF9A00)](https://www.oracle.com/java/)
[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.5.5-000?style=for-the-badge&logo=springboot&logoColor=white&color=6DB33F)](https://spring.io/projects/spring-boot)
[![MySQL](https://img.shields.io/badge/MySQL-8.0-000?style=for-the-badge&logo=mysql&logoColor=white&color=4479A1)](https://www.mysql.com/)
[![PostgreSQL](https://img.shields.io/badge/PostgreSQL-15.2-000?style=for-the-badge&logo=postgresql&logoColor=white&color=4169E1)](https://www.postgresql.org/)
[![Adminer](https://img.shields.io/badge/Adminer-4.8-000?style=for-the-badge&logo=adminer&logoColor=white&color=34567C)](https://www.adminer.org)
[![Gradle](https://img.shields.io/badge/Gradle-9.0-000?style=for-the-badge&logo=gradle&logoColor=white&color=02303A)](https://gradle.org/)
[![RabbitMQ](https://img.shields.io/badge/RabbitMQ-3.0-000?style=for-the-badge&logo=rabbitmq&logoColor=white&color=FF6600)](https://www.docker.com/)
[![Docker](https://img.shields.io/badge/Docker-28.3-000?style=for-the-badge&logo=docker&logoColor=white&color=2496ED)](https://www.docker.com/)


### 🚀 Quick Start
#### Prerequisites
- Java 17+
- MySQL 8.0
- PostgreSQL 15.2
- Docker & Docker Compose

#### Database Configuration

- **MySQL**
- **URL:** `http://localhost:9090` (Adminer)
- **Database:** `email_db`
- **Username:** `mysql`
- **Password:** `mysql`


- **PostgreSQL**
- **URL:** `http://localhost:9090` (Adminer)
- **Database:** `email_db`
- **Username:** `postgres`
- **Password:** `postgres`

### Installation

```shell
git clone https://github.com/furkankayam/spring-boot-email-verification.git
cd spring-boot-email-verification
```


### Usage

```shell
docker-compose up
```

```shell
./gradlew build
```

```shell
./gradlew :mail-service:bootRun
./gradlew :account-service:bootRun
```

#### 3. Access endpoints

- Database UI: `http://localhost:9090`
- Mail Service `http://localhost:8082/swagger-ui/index.html`
- Account Service: `http://localhost:8081/swagger-ui/index.html`


# License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details

**Created by** [Mehmet Furkan KAYA](https://www.linkedin.com/in/mehmet-furkan-kaya/)