Bu proje, müşteri ilişkileri yönetimini (CRM) sağlamak için mikroservis mimarisiyle geliştirilmiş bir sistemdir. Kullanıcı yönetimi, müşteri takibi, satış işlemleri ve notlama özelliklerini içerir.
| Servis Adı | Açıklama | Port |
|---|---|---|
| user-service | Kullanıcı yönetimi, kayıt, giriş, roller | 8081 |
| customer-service | Müşteri CRUD işlemleri ve not ekleme | 8082 |
| sales-service | Satış işlemleri ve satış notları | 8083 |
| api-gateway | Tüm servislerin yönlendirme noktası | 8080 |
- Kullanıcı girişi sonrası JWT token alınır.
- Role-based authorization: Sadece
ADMINrolü bazı işlemleri yapabilir.
- Java 21
- Spring Boot 3.4.4
- Spring Security + JWT
- PostgreSQL
- Spring Data JPA
- Spring Cloud Gateway
- Feign Client
- Lombok & MapStruct
- Swagger (springdoc-openapi)
Servisler çalıştıktan sonra Swagger arayüzlerine aşağıdaki bağlantılardan erişebilirsiniz:
- User Service → http://localhost:8081/swagger-ui.html
- Customer Service → http://localhost:8082/swagger-ui.html
- Sales Service → http://localhost:8083/swagger-ui.html
🔐 Token Kullanımı:
JWT ile korunan endpoint'lere erişmek için Swagger arayüzünde sağ üstteki "Authorize" butonuna tıklayın ve token'ı aşağıdaki formatta girin:
Bearer <JWT_TOKEN>
Yetkili işlemleri gerçekleştirebilmek için kullanıcı girişi yaparak token almalısınız. Giriş işlemi sonrası dönen accessToken değerini bu alanda kullanabilirsiniz.
- Her servisin kendi veritabanı mevcuttur.
- Servisler arası haberleşme Feign Client ile yapılır.
- Swagger her servis için ayrı ayrı yapılandırılmıştır.
- API Gateway sayesinde servis endpoint'leri merkezi olarak yönlendirilir.