Skip to content

Java Spring Boot Library REST API with PostgreSQL, Spring Security, JWT and Global Exception Handler

Notifications You must be signed in to change notification settings

samet-ozkan/Kutuphane-Spring-Boot-REST-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kutuphane-Spring-Boot-REST-API

Java Spring Boot (Layered Architecture) Kütüphane REST API

KOTLIN APP: https://github.com/samet-ozkan/Android-Kutuphane-App-Kotlin


Kullanılan Teknolojiler

  • PostgreSQL
  • Spring Security
  • JSON Web Token
  • Global Exception Handler

ER Diagram

kutuphane_veritabani


Veritabanı

  • Account: Kütüphaneler ve kullanıcılar için ortak oluşturulmuş bir tablodur. Sistemdeki hesapların e-posta, şifre ve hesap tiplerini içermektedir.
  • Kitap: Sistemdeki kitapların yer aldığı tablodur. Kitap adı, açıklaması, dili, isbn numarası, sayfa sayısı ve yayın tarihi bilgilerini içermektedir.
  • Kitap - Kullanıcı: Kitaplar ile kullanıcıların ilişkilendirildiği tablodur. Kitabın kullanıcı tarafından alındığı ve teslim edildiği tarihler, kitabın alınma isteğinin onaylanıp onaylanmadığı bilgisi ve kitabın iade durumu bu tabloda yer almaktadır.
  • Kitap - Kütüphane: Kitaplar ile kütüphanelerin ilişkilendirildiği tablodur. Bir kitap birden fazla kütüphanede yer alabilirken bir kütüphane de birden fazla kitaba sahip olabilir.
  • Kitap - Tür: Kitaplar ile kitap türlerinin ilişkilendirildiği tablodur. Bir kitap birden fazla kitap türüne sahip olabilir.
  • Kitap - Yazar: Kitaplar ile yazarların ilişkilendirildiği tablodur. Bir kitap birden fazla yazara sahip olabilir.
  • Kitap - Yorum: Kitaplara yapılan yorumların yer aldığı tablodur. Yorum yapılan kitap ile yorum yapan kullanıcının id bilgileri tutulur. Yorum metni ve bu metnin kitapla ilgili spoiler içerip içermediği bilgileri de bu tabloda bulunmaktadır.
  • Kullanıcı: Kullanıcıların ad, soyad ve hesap bilgilerinin tutulduğu tablodur.
  • Kütüphane: Kütüphanelerin ad, adres, şehir, teslim süresi ve hesap bilgilerinin tutulduğu tablodur.
  • Kütüphane - Yorum: Kütüphanelere yapılan yorumların bulunduğu tablodur. Yorum yapılan kütüphaneye ve yorum yapan kullanıcıya referans verilmektedir.
  • Tür: Kitap türlerinin yer aldığı tablodur.
  • Yazar: Yazarların ad ve soyad bilgisinin tutulduğu tablodur.
  • Refresh Token: JWT implementasyonu için refresh tokenlerin yer aldığı tablodur.

Account Types

  • Admin: 'admin'
  • Kütüphane: 'kutuphane'
  • Kullanıcı: 'kullanici'

application.properties

# Uygulama Ayarları
spring.application.name=Kutuphane Uygulamasi

# JWT Ayarları
jwt.token.validity=900000
jwt.refreshtoken.validity=86400000
jwt.signing.key=YOUR_SIGNING_KEY
jwt.authorities.key=roles
jwt.token.prefix=Bearer
jwt.header.string=Authorization

# PostgreSQL Veritabanı Ayarları
spring.datasource.url=jdbc:postgresql://localhost:5432/kutuphane
spring.datasource.username=YOUR_DB_USERNAME
spring.datasource.password=YOUR_DB_PASSWORD
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.hibernate.ddl-auto=update

# Kütüphane Kaydı İçin Doğrulama Kodu
verification.code=YOUR_VERIFICATION_CODE

İletişim

Email: [email protected]

About

Java Spring Boot Library REST API with PostgreSQL, Spring Security, JWT and Global Exception Handler

Topics

Resources

Stars

Watchers

Forks

Languages