Temel Java Bilgisi ve bir bilgisayar
Merhaba arkadaşlar,Bu kursumuzda online-kitap-alışveriş gibi yeni bir proje oluşturacağız. Online-kitap-alışveriş uygulaması dediğimde, bir kitap listesi sayfamız olacak gibi düşünebiliriz. Bir şekilde kullanıcılar veya müşteriler bu kitap listelerini görecek ve bunlardan birini veya birkaçını satın alabilecekler. Tabii ki, sonunda bu satın alma saklanacak ve daha sonra ihtiyaç duyulunca görüntülenebilecektir. Bu projeyi Spring Boot, Angular ve PostgreSQL kullanarak uygulayacağız. Projemizde CRUD işlemlerini uygulayacağız. Bu CRUD işlemlerini kullanıcılar ve kitaplar için uygulayacağız. Oturum açma, kaydolma ve yetkilendirme işlemleri için kullanıcı CRUD işlemlerini kullanacağız. Kitap oluşturma, düzenleme, silme işlemleri için de kitap CRUD işlemlerini kullanacağız. Bu CRUD işlemleri Angular tarafından sorgulanacaktır. Yani backend’de bu CRUD işlemleri için bir altyapı oluşturacağız ve frontend de onlara kullanıcı arayüzü ile hizmet vereceğiz. Kullanıcı ve kitap işlemleri ile uygulamamızı oluşturucağız. Ana operasyonlarımız kullanıcı girişi, kayıt, kitap listesi, kitap oluştur, kitap sil vb. olacak. Ayrıca rol bazlı uygulama ile devam edeceğiz. Bu yüzden “admin”, “user” gibi farklı roller kullanacağız. Daha sonra bu kullanıcılara role göre farklı yetkiler vereceğiz. Ve tüm bunları hem Angular hem de Spring Boot'da güvenli bir şekilde sağlayacağız. Projemizi uygulamak için iki ana bileşenimiz olacak. Bunlar sunucu tarafı ve istemci tarafı olacak. Sunucu Tarafında:Ana kütüphanemiz Spring-boot olacak. Spring boot ile tüm altyapıyı backend üzerinde uygulayacağız. Spring-boot bize kolay ve hızlı konfigürasyon sağlayacak. Spring boot ile model view controller mimarisini projemizde uygulayacağız. Bir diğer önemli başlığımız Spring security olacak. Spring security’nin yanında JWT’de kullanıp projemizde güvenliği sağlayacağız. Spring Boot'da, Veriler istemciye bir API çağrısı olarak sunulacak ve bunun için Spring Rest Controller’u kullanacağız. Veritabanı olarak PostgreSQL kullanacağız. Diğer veritabanlarını da kullanabiliriz ama kursun sonunda kodlarımızı Heroku'ya dağıtacağız. Postgresql, Heroku'da ücretsiz olarak kullanılabilir, bu yüzden postgresql’i kullanacağız. Java Persistence API ve Hibernate ile Nesne İlişkisel Eşlemeyi (ORM) de kullanacağız. Hibernate ile veritabanı tablolarımızı kolayca nesnelere eşleştirebiliriz. Spring Boot'da JPA Repository ve Crud Repository kullanacağız. Bu repository şablonlarını kullanarak; kaydetme, güncelleme, bulma, silme gibi genel veritabanı işlemlerini kolayca uylayacağız. Getter, setter gibi methodları sürekli sürekli tekrar yazmak istemiyoruz. Bunun için Lombok kütüphanesi kullacağız. Lombok kütüphanesi bunlar için temel anotasyonlar sağlar bunları kullarak bu kodlardan kurtulmuş olacağız. Servisimizin tüm bağımlılıklarını ele almak için Gradle kullanacağız. Burada, neden maven ile devam etmiyoruz diye sorabilirsiniz. Çünkü Gradle, Maven’a göre daha kolay bir konfigürasyon ve daha hızlı bir performans sağlar. Bundan dolayı projemizde gradle ile devam edeceğiz. Tüm projelemiz için Heroku ile cloud deployment sağlayacağız. Heroku’da kolayca ücretsiz uygulamalar oluşturabiliriz. Spring-boot projelerimizi bazı konfigürasyonlarla github üzerinden kolayca dağıtabiliriz. Yani bu sayede kursun sonunda production’da canlı bir uygulamamız olacak ve github üzerinde herkesin ulaşabileceği bir kodumuz olacak. Sunucu tarafı ile ilgili söyleyeceklerim bu kadar. Biraz da client/istemci Tarafından bahsedelim. İstemci tarafında angular frameworkü kullanarak bir uygulama oluşturacağız. Uygulamamızda online-book-shopping sisteminin arayüzünü oluşturacağız. Ara yüzümüz bir ana sayfa, yönetici panosu, giriş sayfası ve kayıt sayfası gibi bazı sayfalardan oluşacak. Bu sayfalardaki verileri backend’in bize sağlamış olduğu verilerle dolduracağız. Böylelikle verilere kolayca ve user-friendly olarak erişebileceğiniz. Angular projemizi oluştururken elbetteki best-practiceleri kullnarak oluşturcağız. Bunun model-view-controller mimarisini uygulayacağız. Bunun yanında Typescript vb. Extra özellikler kullacağız. Kursun sonunda projemizi build edip heroku’da deploy edeceğiz. Böylelikle kursun sonunda canlıda olan bir uygulamamız olacak. Son olarak, güvenlik ve yetkilendirmeyi angular üzerinde de uygulayacağız. Farklı rollerle çalışacağız ve bu rollere göre yetkisiz ve bilinmeyen sayfaları kullanıcı arayüzünde de uygulayacağız. Bunların detaylarını tek tek göreceğiz.
Spring Boot ile Sıfırdan Proje Oluşturma
Angular ile Sıfırdan Proje Oluşturma
JWT kullanarak güvenliği sağlama
Observable / Gözlemlenebiler nedir nasıl çalışır?
Postman ile API uç noktalarının test edilmesi
Heroku kullanarak github üzerinden deployment
Angular node uygulamasını bulutta yayınlama
Spring Boot projesini bulutta yayınlama
Angular ve Spring Boot ile Full Stack Uygulama Geliştirme
Angular ve Spring Boot ile Full Stack Uygulama Geliştirme