Engin Demiroğ - Yazılımcı Geliştirme (JAVA + REACT) Yerleştirme Kampı 5. Gün Ödevi

Overview

JavaCampD5HomeWork

Engin Demiroğ - Yazılımcı Geliştirme (JAVA + REACT) Yerleştirme Kampı 5. Gün Ödevi

Package.Entites

desc1
Kayıt olacak kullanıcının bilgilerini tutabilmemiz ve kontrol edebilmemiz için Entities.concretes altında User classı oluşturdum ve çıplak kalmaması için Entities.abstracts altında oluşturduğum Entity interface'inden implements ettim.
İlgili Kodlar => Package.Entities

Package.DataAccess

desc2
Database tarafındaki operasyonları gerçekleştirmek için DataAccess.abstracts altında UserDao adında bir Interface oluşturdum ve gerçekleşecek operasyonların imzalarını belirttim. Ardından operasyonları yönetmek için DataAccess.concretes altında InMemoryUserDao adında bir class oluşturdum. Şu an herhangi bir Database kullanmadığımızdan dolayı simüle etmek için ArrayList<> yapısını kullandım. getAll() operasyonunu, email adresinin daha önce kullanılıp kullanılmadığını ve login işleminde bilgilerin doğrulunu kontrol etmek için oluşturdum.
İlgili Kodlar => Package.DataAccess

Package.Core

desc4
Daha sonraki projelerimde de kullanmak isteyebileceğim yağıları bu katmanda oluşturmaya çalıştım. Core.abstracts içerisinde Interfacelerimi oluşturdum ve gerçekleşecek operasyonların imzalarını belirttim.
CheckService => eposta,şifre,ad-soyad bilgilerinin belirtilen kuralları sağlayıp sağlamadığını kontrol edecek.
EmailVerificationService => Kayıt işlemi gerçekleştiği zaman email adresine onaylama maili gönderecek ve onaylanıp onaylanmadığını kontrol edecek.
OutSourceServices => Dış servisler için entegrasyon(adaptasyon) yapmak için kullanılacak.
Core.concretes altında CheckManager ve EmailVerificationManager adında 2 sınıf oluşturdum ve ilgili interface'lerden implement ettim.
CheckManager => Parametre ile gelecek olan email, password, ad-soyad bilgilerinin belirttiğimiz kurallara uyup uymadığına bakacak. Kurallar sağlanıyorsa True döndürecek sağlanmıyorsa ilgili hata mesajını fırlatacak. EmailVerificationManager => Kayıt olan kullanıcının kayıt olurken girmiş olduğu email adresine doğrulama bağlantısı gönderecek ve onaylandığında ilgili mesajı yazdıracak. Core.adapters altında dışarıdan aldığımız GoogleLogin servisini kullanabilmek için GoogleLoginManagerAdapter adında bir sınıf oluşturdum. Bu sınıf basitçe Google ile kayıt olma ve giriş yapma işlemlerini simüle ediyor.
İlgili Kodlar => Package.Core

Package.Business

desc3
Kayıt olma ve giriş yapma işlemleri için öncelikle Business.abstracts altında LoginService adında bir interface oluşturdum ve gerçekleşecek operasyonların imzalarını belirttim. Ardından Business.concretes altında LoginManager adında bir class oluşturdum ve kullanmak istediğim servisleri dependency injection ile sınıfa dahil ettim son olarak operasyonların içini dolurdum.

LoginManager public void existEmail(String email);

For döngüsü ile kullanıcı bilgilerinin tutulduğu listeyi tek tek dolaştım ve listede bulunan email bilgisi ile parametreyle gönderilen email bilgisini kontrol ettim. Eğer parametreyle gelen email bilgisi liste içerisinde mevcutsa "E-Posta adresi zaten mevcut." hatasını fırlatacak.

LoginManager public void register(User user);

CheckService sayesinde ulaştığım operasyonları çağırıyorum ve kullanıcının bilgilerini kontrol ediyorum. Bilgiler belirttiğim kurallara uymuyorsa ilgili hata mesajı ekrana fırlatılacak. Kurallara uyan bilgi ile ilgili mesajı da kontrolden hemen sonra yazdırdım. EmailVerificationService sayesinde ulaştığım operasyoları çağırdım ve doğrulama bağlantısı gönderilmesini sağladım. UserDao sayesinde ulaştığım .add() operasyonunu çağırdım ve kullanıcıyı aynı zamanda Database'e ekledim. Son olarak kullanıcının kayıt işleminin başarılı olduğunu mesaj olarak yazdırdım.

LoginManager public void login(String email, String password);

CheckService sayesinde ulaştığım operasyonlar ile geçerli bir email ve password bilgisi gelmesi için kontrolleri yaptım aksi taktirde hata mesajı fırlatılacak. Ardından for döngüsü ile kullanıcı bilgilerinin tutulduğu listeyi tek tek dolaştım ve parametreyle gönderilen email-password bilgilerinin kayıtlı olup olmadığını kontrol ettim. Eğer kayıtlıysa kullanıcıya başarıyla giriş yaptığına dair mesajı ekrana yazdırdım. Bilgiler kayıtlı değilse ilgili hata mesajını fırlattım.

İşlemleri tek bir sınıftan yönetmek istediğim için Business.abstracts altında UserService adında bir interface oluşturdum ve gerçekleşecek operasyonların imzalarını belirttim. Ardından Business.concretes altında UserManager adında bir sınıf oluşturdum ve dependency injection ile ihtiyacım olan servisleri sınıfa dahil ettim.

UserManager public void register(User user);

LoginService sayesinde ulaştığım kayıt olma operasyonunu çağırdım.

UserManager public void loign(String email, String password);

LoginService sayesinde ulaştığım giriş yapma operasyonunu çağırdım.

UserManager public void registerWith();

OutSourceServices sayesinde ulaştığım dış servisten kayıt olma operasyonunu çağırdım.

UserManager public void loginWith();

OutSourceServices sayesinde ulaştığım dış servisten giriş yapma operasyonunu çağırdım.
İlgili Kodlar => Package.Business

GoogleLogin

desc5
Burada basit bir Google Login servisi simüle ettim. İlgili interface ile manageri oluşturdum ve basit 2 operasyon oluşturdum.
İlgili Kodlar => GoogleLogin

------------------------------------------------------------------------------------------------------------

Hata Mesajları Çıktıları

except2
except1
except4 except3
except5 except6

------------------------------------------------------------------------------------------------------------

Programın Çıktısı

outputhw5

Yapamadığım bazı kısımları sakirsuleymanoglu sayesinde tamamladım.

Kendisine çok teşekkür ediyorum.

Eksiklerimi ve yanlışlarımı ya da görüş ve tavsiyelerinizi lütfen Instagram üzerinden ulaştırın.

You might also like...

JavaReactKamp 7.gün 3.ödev gerçekleştirildi. Ödev kapsamının dışına (entity ilişkileri hariç) çıkılmadı. Entitiy ilişkileri kod kısmında ayarlandı.

JavaReactKamp-7-hrmsDemo3 - JavaReactKamp 7.gün 3.ödev gerçekleştirildi. - Ödev kapsamının dışına (entity ilişkileri hariç) çıkılmadı. - Ödev kapsa

Oct 4, 2021

Projeto criado na semana Spring React organizado pela escola Dev Superior com foco na prática/aprendizado das tecnologias Spring e React.

DSVendas Projeto criado na semana Spring React organizado pela escola Dev Superior com foco na prática/aprendizado das tecnologias Spring e React. htt

May 18, 2021

In this course, we will learn how to build a complete full-stack web application using Spring boot as backend and React (React Hooks) as frontend

In this course, we will learn how to build a complete full-stack web application using Spring boot as backend and React (React Hooks) as frontend. We will use MySQL database to store and retrieve the data.

Dec 22, 2022

Sceneform React Native AR Component using ARCore and Google Filament as 3D engine. This the Sceneform Maintained Component for React Native

Sceneform React Native AR Component using ARCore and Google Filament as 3D engine. This the Sceneform Maintained Component for React Native

Discord Server Join us on Discord if you need a hand or just want to talk about Sceneform and AR. Features Remote and local assets Augmented Faces Clo

Dec 17, 2022

With react-native-update-in-app library you can easily implement in-app updates in your React Native app using CDN or any other file server

React Native In-App update With react-native-update-in-app library you can easily implement in-app updates in your React Native app using CDN or any o

Dec 21, 2022

Event promoted by DevSuperior to improve the best practices of Spring with Java and has React JS as an additional.

Event promoted by DevSuperior to improve the best practices of Spring with Java and has React JS as an additional.

Semana-Spring-React (sds3.0) Introduction SDS3 is an event promoted by DevSuperior which aims to help students and programming professionals to enter

Oct 25, 2021

📊It includes all the work done during the Java-React Bootcamp.

📊It includes all the work done during the Java-React Bootcamp.

💻 Java + React Bootcamp 💻 Part 1 - Java Part 2 - React 💻 Lecture Class: Youtube 👤 Instructor: Engin Demirog 📚 Course Materials: Kodlama.io Bootca

Jun 21, 2022

Human Resource Management System (Java & React)

Human Resource Management System (Java & React)

🚀 HumanResourceManagementSystem 📌 Steps İş Arayanlar sisteme kayıt olabilmelidir. ✔️ İş verenler sisteme kayıt olabilmelidir. ✔️ ️ Sisteme genel iş

Sep 12, 2022

Java React Camp Homeworks

Java React Camp Homeworks

JavaReactCamp Documents JavaReactCamp documents in here. Maybe you want to look and check them. If you think any mistake in documents you can type a c

Jul 10, 2021
Owner
Berkcan
ig.com/brkcnsrbstt/
Berkcan
Engin Demiroğ Yazılım Geliştirici Yetiştirme Kampı (JAVA + REACT) Rehberi

1. Java Temelleri - 1 DERS Değişkenler Referans Tipleri Şart Blokları Döngüler Diziler 2. Java Temelleri - 2 DERS Main Product Product Manager Categor

İbrahim Can Erdoğan 58 Nov 6, 2022
JAVA & REACT KAMPI 5. Gun ödevi - SystemOfECommerce

JavaProject5GunOdev JAVA & REACT KAMPI 5. Gun ödevi - SystemOfECommerce SMTcoder Projeye yıldız Vermeyi Unutmayın ?? Teşekkürler! ❤️ Entites katmanınd

samet akca 10 Nov 6, 2022
CASGEM MİLTEK Java Backend Yazılımcı Geliştirme Programı kapsamında geliştirdiğim RentACar projesi

Rent A Car Project Rent A Car Backend Project is a demo built with Spring Boot. Features Each brand can have a maximum of 5 vehicles, The car can be d

Ferhat ÇELİK 19 Sep 14, 2022
Yazılım Geliştirici Yetiştirme Kampı (JAVA + REACT) 4.gün 3.ödev

GameProject Yazılım Geliştirici Yetiştirme Kampı (JAVA + REACT) ?? Engin Demiroğ tarafından sisteme yüklenmiş ödevin içeriği Bir oyun yazmak istiyorsu

Dilara BEDİR 9 May 8, 2021
Java kampı 4. gün 2. ödev

gameManager Java kampı 4. gün 2. ödev Data Access kısmı boş ödev niteliklerinde veritabanı bağlantısı istenilmemiştir. İstenilen tüm nitelikler yerine

Eren Ali Şavk 6 May 13, 2021
Java Camp - Kodlama.io - Engin Demiroğ - 2022

About Repository This repository contains Java Bootcamp documentation like lesson codes, assignments, and final project. Also i will try to give to yo

Ahmet Usta 5 Oct 18, 2022
(Java & React) Yazılım Geliştirici Yetiştirme Kampı Java kısmına ait yazılan kaynak kodlar ve ödev çalışmalarım.

JavaCamp Kamp sürecinde yazılan kaynak kodlar ve ödev çalışmalarım. Day 1 1)Intro Day 2 2)oopIntro 2.1)oopIntro ~ Homework Day 3 3)oopIntro2 3.1)inher

Melih Çelik 17 Jun 26, 2022
Yazılım Geliştirici Yetiştirme Kampı (JAVA & REACT) Uygulama Projesi (Backend)

HRMS_JavaProject Yazılım Geliştirici Yetiştirme Kampı (JAVA & REACT) Uygulama Projesi (Backend) 9.Gün Ödevleri: Farklı alanlara başvuru için, aday baş

Barış ERTUĞRUL 18 Jul 26, 2022
Engin Demiroğun düzenlemiş olduğu (Java & React) Yazılım Geliştirici Yetiştirme Kampında verilen ödev5'i içermektedir.

eTicaretSistemiSimulasyonu Engin Demiroğun düzenlemiş olduğu (Java & React) Yazılım Geliştirici Yetiştirme Kampında verilen ödev5'i içermektedir. Ödev

Baran Emre Türkmen 10 Apr 27, 2022
Java 4.gün 3.ödev :)

GameProject Java 4.gün 3.ödev :) Gereksinimler Oyuncuların sisteme kayıt olabileceği, bilgilerini güncelleyebileceği, kayıtlarını silebileceği bir or

ZEHRA NUR ALKAN 4 Oct 23, 2021