Bu proje, Spring Boot framework kullanılarak geliştirilmiş bir web uygulamasıdır. Kullanıcı yönetimi, rol tabanlı erişim kontrolü (RBAC) ve çerez yönetimi gibi işlevleri içermekte olup, kullanıcıları etkin bir şekilde yönetmek ve güçlü güvenlik mekanizmaları sağlamak amacıyla tasarlanmıştır. Modern UI framework'ler kullanarak responsive bir kullanıcı arayüzü sunar ve Spring Security ile güçlendirilmiş yetkilendirme sağlar.
Proje, çeşitli modern teknolojiler ve araçlar kullanılarak geliştirilmiştir:
- Spring Boot
- Spring Security
- Spring Framework
- React
- MongoDB
- Lombok
- Docker
- Postman
- Maven
- JWT
- Presentation Layer: React kullanılarak geliştirilmiş kullanıcı arayüzü. Kullanıcılar bu arayüz üzerinden giriş yapabilir, kayıt olabilir ve yetkilerine bağlı olarak çeşitli sayfalara erişebilir.
- Business Layer: OOP prensiplerini kullanarak tasarlanmış servisler, managerlar, entityler, controllerlar, configler ve repositoryler.
- Data Layer: Entity framework kullanılarak oluşturulan veritabanı tasarımı ve etkileşimi.
- Web Service Implementation: RESTful API'ler kullanılarak gerçekleştirilen CRUD işlemleri.
- RBAC Implementation: Kullanıcılara atanmış roller üzerinden erişim kontrolü sağlanması.
- Authorization Implementation: Spring Security ile gerçekleştirilen yetkilendirme, belirli uç noktalara sadece yetkilendirilmiş kullanıcıların erişimine izin verir.
- Session / Cookie Management: Kullanıcı oturumlarını yönetmek ve kullanıcıya özgü verileri saklamak için kullanılan çerez yönetimi.
- Extension / Third Party Library Using: Kod tekrarını azaltmak ve daha temiz bir kod yapısı sağlamak için Lombok kütüphanesi kullanılmıştır.
- Web Security Implementation: CORS yapılandırması, parola şifreleme ve güvenli kimlik doğrulama protokollerini içerir.
Projeyi yerel geliştirme ortamınızda başlatmak ve çalıştırmak için aşağıdaki adımları izleyin:
-
Docker Desktop'ı Açın:
- Bilgisayarınızda Docker Desktop uygulamasını açarak Docker'ın çalışır durumda olduğundan emin olun. Docker Desktop, projenin konteynerlerini çalıştırmak için gereklidir.
-
Projeyi GitHub'dan Çekin:
- Terminal veya komut istemcisini açın ve projeyi GitHub reposundan yerel makinenize klonlamak için aşağıdaki komutu girin:
git clone https://github.com/lupsi12/webProjesi.git
- Terminal veya komut istemcisini açın ve projeyi GitHub reposundan yerel makinenize klonlamak için aşağıdaki komutu girin:
-
Docker Compose ile Projeyi Başlatın:
- İndirilen proje dizinine gidin ve projeyi Docker kullanarak başlatmak için aşağıdaki Docker Compose komutunu terminalde çalıştırın:
docker-compose up --build
- Bu komut, gerekli Docker imajlarını inşa eder ve projenin bağımlılıklarını otomatik olarak kurarak servisleri başlatır.
- İndirilen proje dizinine gidin ve projeyi Docker kullanarak başlatmak için aşağıdaki Docker Compose komutunu terminalde çalıştırın:
-
Uygulamaya Tarayıcı Üzerinden Erişin:
- Projeye ait frontend uygulamasına erişmek için web tarayıcınızı açın ve
http://localhost:3000/
adresine gidin.
- Projeye ait frontend uygulamasına erişmek için web tarayıcınızı açın ve
-
Backend API'ye Erişin:
- Backend servislerine erişmek için, tarayıcınızda
http://localhost:8080/user
adresini ziyaret edin. Bu adres, backend API'lerinin çalıştığı endpoint'tir.
- Backend servislerine erişmek için, tarayıcınızda
Kullanıcılar bu ekrandan sisteme kayıt olabilirler. Kullanıcı adı, e-posta, şifre ve rol bilgileri girilerek yeni bir kullanıcı hesabı oluşturulabilir.
Kullanıcılar, sistemde kayıtlı bilgileri ile bu ekrandan giriş yapabilirler.
Sistem yöneticilerinin kayıtlı tüm kullanıcıların bilgilerini görüntülemesine ve yönetmesine olanak tanır.
Çerezler, kullanıcı tercihlerini kaydetmek ve oturum bilgilerini güvenli bir şekilde yönetmek için kullanılmıştır.
Kullanıcı, e-posta adresi kullanılarak sorgulanır ve kullanıcı bilgileri başarılı bir şekilde döndürülür.
Kullanıcı ID'si kullanılarak yapılan sorgu sonucu, belirtilen kullanıcının detayları başarıyla getirilir.
Belirli bir kullanıcının yorum bilgileri güncellenir ve işlem başarılı bir şekilde tamamlanır.