Modern Microservices mimarisi kullanılarak geliştirilmiş, uçtan uca (Full Stack) bir fitness takip uygulamasıdır.
Kullanıcıların antrenman verilerini kaydetmelerine olanak tanır ve Google Gemini AI entegrasyonu sayesinde yapılan aktivitelere özel kişiselleştirilmiş sağlık ve antrenman tavsiyeleri sunar.
Bu proje;
- Senkron ve asenkron servis iletişimi
- Güvenlik (OAuth2 & Keycloak)
- Olay güdümlü mimari (Event-Driven Architecture)
gibi modern backend yaklaşımlarını içeren kapsamlı bir örnek uygulamadır.
Proje, tek bir monolitik yapı yerine her biri kendi sorumluluğuna sahip bağımsız servislerden oluşur.
Servisler arası iletişim:
- REST API (Senkron iletişim)
- RabbitMQ (Asenkron iletişim)
Spring Cloud Gateway
- Tüm dış isteklerin karşılandığı tek giriş noktasıdır.
- İstekleri ilgili mikroservislere yönlendirir.
PostgreSQL
- Kullanıcı profil verilerini yönetir.
- Keycloak ile senkronize çalışır.
MongoDB
- Kullanıcı aktivitelerini kaydeder.
- Süre, kalori ve aktivite türü gibi verileri saklar.
MongoDB + Google Gemini API
- RabbitMQ üzerinden gelen aktivite mesajlarını dinler.
- Aktivite verilerini analiz ederek kişiselleştirilmiş öneriler üretir.
Eureka Server
- Mikroservislerin birbirini dinamik olarak bulmasını sağlar.
- Servis konfigürasyonlarını merkezi olarak yönetir.
React + Vite
- Kullanıcıların veri girdiği ve AI önerilerini görüntülediği modern arayüz.
- Java 21
- Spring Boot 3
- Spring Cloud (Gateway, Eureka, Config Server, OpenFeign)
- Spring Security & OAuth2
- Hibernate & JPA
- Google Gemini API
- PostgreSQL
- MongoDB
- RabbitMQ
- React (Vite)
- Redux Toolkit
- Material UI
- Axios
- Docker
- Keycloak
- Postman
- Keycloak ile güvenli giriş ve kullanıcı yönetimi
- Koşu, yürüyüş, bisiklet vb. aktivitelerin kaydedilmesi
- Süre ve kalori bilgisi desteği
- Aktivite kaydedildiğinde RabbitMQ üzerinden event gönderilir
- Kullanıcı bekletilmeden analiz arka planda yapılır
- Google Gemini aktivite verisini analiz eder
- Yapılandırılmış JSON formatında öneriler üretir
- Tüm servisler tek bir port üzerinden erişilebilir
- Kullanıcı frontend üzerinden aktivite girer.
- API Gateway isteği Activity Service’e yönlendirir.
- Aktivite kaydedilir.
- RabbitMQ üzerinden AI Service’e event gönderilir.
- AI Service Gemini API ile analiz yapar.
- Üretilen öneriler veritabanına kaydedilir.
- Frontend önerileri kullanıcıya gösterir.