Udemy

Platform

Türkçe

Language

Web Development

Category

Angular ve Spring Boot ile Full Stack Uygulama Geliştirme

Spring security,Github üzerinden Heroku Cloud Deployment,PostgreSQL,Hibernate,Lombok,Angular12,Routers,JWT,Express JS

4.22 (9 reviews)

Students

8.5 hours

Content

Aug 2021

Last Update
Regular Price


What you will learn

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


Description

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.


Screenshots

Angular ve Spring Boot ile Full Stack Uygulama Geliştirme
Angular ve Spring Boot ile Full Stack Uygulama Geliştirme
Angular ve Spring Boot ile Full Stack Uygulama Geliştirme
Angular ve Spring Boot ile Full Stack Uygulama Geliştirme

Content

Introduction

Giriş - Tüm Sistemin Mimarisi

Geliştirme Ortamının Ayarlanması

Java 11'in İndirilmesi ve Kurulması

Intellij'in İndirilmesi ve Kurulması

PostgreSQL'in İndirilmesi ve Kurulması

Git'in İndirilmesi ve Kurulması

Lombok'un İndirilmesi ve Kurulması

Kursta Kullanılıcak Frameworkler için Genel Bakış

Spring ve Spring Boot için Genel Bakış

Restful Web Servisler için Genel Bakış

Rest Controller Genel Bakış

@RequestBody Anotasyonu ve Nasıl Çalıştığının İncelenmesi

@RequestParam Anotasyonu ve Nasıl Çalıştığının İncelenmesi

@PathVariable Anotasyonu ve Nasıl Çalıştığının İncelenmesi

Spring Boot - Backend - Sunucu Tarafı

Backend için Kaynak Kodu

Backend Projesine Genel Bakış

Spring Initializr ile Projenin Oluşturulması

Niye Gradle'ı Seçtik? Niye Maven'ı Tercih Etmedik?

PostgreSQL Veritabanın Oluşturulması

Veritabanı Özelliklerinin application.properties'de Belirtilmesi

Entity (Varlık) Diyagram

User Varlık Sınıfının Oluşturulması

Book Varlık Sınıfının Oluşturulması

Purchase Varlık Sınıfının Oluşturulması

User Repository Sınıfının Spring Data JPA ile Uygulanması

Book Repository Sınıfının Spring Data JPA ile Uygulanması

Purchase Repository Sınıfının Spring Data JPA ile Uygulanması ve Projection

User Servis Sınıfının Uygulanması

Book Servis Sınıfının Uygulanması

Purchase Servis Sınıfının Uygulanması

Spring'de Security Konfigürasyonun Uygulanması

Kullanıcı Adına Göre Authentication İşleminin Gerçekleştirilmesi

Security Konfigürasyonunun Uygulanması

JWT'nin Uygulanması

JWT'ye Genel Bakış ve JWT Kütüphanelerinin İndirilmesi

JWT Yardımcı Metodlarının Oluşturulması

JWT Authentication Filtresinin Oluşturulması

Kullanıcı Login ve Kaydolma İşlemlerinin Uygulanması

Authentication Servis Sınıfının Uygulanması

Spring Boot Uygulamamızın Test Edilmesi

Postman Kurulum ve Postman'e Genel Bakış

Spring Boot Uygulamamızı Nasıl Başlatabiliriz?

Authentication Controller Sınıfının Uygulanması ve Test Edilmesi

Internal API Katmanının Uygulanması

Internal Authentication Filtresinin Oluşturulması

JWT ve Internal Filtresi Arasındaki İlişkinin Kurulması

Internal Api Controller Sınıfının Uygulanması

Diğer Uç Noktalar - Rest Controller

Book Controller Sınıfının Uygulanması

Purchase Controller Sınıfının Uygulanması

Tüm Uç Noktaların Postman ile Test Edilmesi

Spring Profilleri

Projemizi Geliştirme ve Production için Ayrı Ayrı Yapılandırma

Cloud Deployment - Heroku

Heroku'ya Genel Bakış

Projemizi Heroku için Konfigürasyon Etme

Proje Kaynaklarımızı Github'a Gönderme

Projemizi Github Üzerinden Heroku'ya Deploy Etme

Projemizi Heroku Üzerinden Test Etme

Angular İçin Hazırlık - Neleri Kurmalıyız, Başlangıç İçin Neleri Bilmeliyiz?

Node JS Kurulumu

Angular CLI Kurulumu

Angular'a Hızlıca Bakış - CLI Ne? Angular Lifecycle? NPM?

Client/İstemci Tarafının Uygulanması

Frontend için Kaynak Kodu

Frontend Projesine Genel Bakış

Angular Projesinin Angular CLI ile Oluşturulması

Angular Projesine Giriş - Angular Nasıl Çalışır?

Konfigürasyon - Bootstrap, FontAwesome

Sayfa Taslaklarını Oluşturulması - Ng Generate

Router Modülünün Uygulanması

Hata Sayfalarının Uygulanması - 401, 404

Typescript Model Sınıfları

User Model Typescript Sınıfının Uygulanması

Book Model Typescript Sınıfının Uygulanması

Purchase Model Typescript Sınıfının Uygulanması

PurchaseItem Model Typescript Sınıfının Uygulanması - DTO

Kaydolma ve Oturum Açma Sayfalarının Uygulanması - FormModule, FormControl

Authentication Servis Sınıfının Uygulanması

Register Sayfasının Controller Tarafının Uygulanması

Register Html Sayfasının Taslağının Oluşturulması - Part1

Template Driven Form ve Reactive Form Arasındaki Fark - Register Html Part2

Kaydolma Formunun Oluşturulması - Part3

Kayıt Sayfasının Tamamlanması - Part4

Login Sayfasının Uygulanması

Bootstrap ile Navigasyon Bar Oluşturulması

Guards

Authentication Guardın Oluşturulması ve Angular Guard Tipleri

Http ve Observables

Observables - Genel Bakış

Temel Request Sınıfının Oluşturulması - Angular Inheritance

Book Servis Sınıfının Uygulanması

Admin Panosu

Admin Sayfasının Oluşturulması ve Kitap Listesinin Sunulması

Kitap Oluşturma Fonksiyonlarının Uygulanması

Kitap Oluşturma Html Sayfasının Oluşturulması

Kitap Oluşturma Formunun Uygulanması

Kitap Dialogundan Admin Sayfasına Eylemlerin Aktarılması

Kitap Düzenleme İşleminin Uygulanması

Kitap Silme İşleminin Uygulanması

Diğer Sayfalar

Purchase Servis Sınıfının Uygulanması

Home / Anasayfanın Uygulanması

Profil Sayfasının Uygulanması

Production Ortamının Hazırlanması

Ortam Değişkenleri, Sistem Değişkenleri ve Özel Değişkenler

Angular Projesinin Build Edilmesi ve Express.js ile Sunulması

Buluta Dağıtma - Cloud Deployment - Heroku

Heroku Yapılandırılması - Procfile, app.json

Kodun Github'a Aktarılması

Heroku Deployment

Kodun Canlı Ortamda Test Edilmesi


Reviews

T
Tarık12 August 2021

Şenol Bey, bir yanlışlık oldu sanırım. Normalde kursların başında puanlama yapmıyorum. Muhtemelen dikkatsizliğim sebebi ile açılan pop-up'ta tıkladım geçtim. Kusuruma bakmayın. Kursun sonunda organik bir şekilde tekrar değerlendirme yaparım :). İyi çalışmalar.


4210290

Udemy ID

7/28/2021

Course created date

8/3/2021

Course Indexed date
Bot
Course Submitted by