Bu proje Patika.Dev ile Norma sponsorluğunda düzenlenen Java Spring Boot bootcamp'in bitirme projesidir.
Online banka sistemi projemizin içerisinde müşteri yönetimi, hesap yönetimi, kart yönetimi ve transfer yönetimi fonksiyonları mevcuttur.
- Müşteri yönetimi fonksiyonu içerisinde; müşteri yaratma, müşteri güncelleme, müşteri silme işlemleri mevcuttur.
- Hesap yönetimi fonksiyonu içerisinde; hesap yaratma, hesap silme ve atmden oluşturulan banka hesabına para yükleme işlemleri mevcuttur.
- Kart yönetimi fonksiyonu içerisinde; kart yaratma, kart şifre güncelleme, kart kredi kartı ise limit güncelleme, kart silme, kart kredi kartı ise borç sorgulama, atm'den karta para yükleme ve kart ile alışveris yapma işlemleri mevcuttur.
- Transfer yönetimi fonksiyonu içerisinde; hesaplar arası para transferi, karttan hesaba para transferi, hesaptan karta para transferi işlemleri mevcuttur.
- Dili: Java
- Version: Java 17
- Freamwork: Spring Boot
-
Bilgisayarınızda Java 17 yüklü olması gerekmektedir. Yüklü değilse Java 17 adresinden indirebilirsiniz.
-
Projede;
mvn clean install
yapabilmemiz için yüklü olan java 17 bilgisayarımıza tanımlamamız gerekmektedir. tanımlı değil ise Java Path Tanımlama adresinden path tanımlama ile adımları takip ederek path tanımlayabilirsiniz.
- IDE üzerinden veya git üzerinden github reposunu yerel bilgisayarınıza clone ediniz.
git clone https://github.com/tahakilic/online-banking-java-spring-boot.git
- Intellij yardımıyla projeyi açınız.
- Projeyi çalıştırmadan önce
mvn clean install
yapınız. mvn clean install
sorunsuz çalıştıktan sonra projeyi run edebiliriz.
POST localhost:8080/api/customers
Body:
{
"account": {
"accountNumber": 2100000000000001,
"accountType": "DEPOSIT_ACCOUNT", //DEPOSIT_ACCOUNT – CHECKING_ACCOUNT
"bankCode": "00001",
"branchCode": "0001",
"currencyCode":"TRY", //TRY – EUR - USD
"iban": "TR000000000000000000000001"
},
"contactInformation": {
"primaryEmail": "taha@gmail.com",
"primaryPhoneNumber": "05375202556",
"secondaryEmail": "taha34@gmail.com",
"secondaryPhoneNumber": "05345568985"
},
"customerAddress": {
"addressType": "HOUSE", //HOUSE - JOB
"city": "Istanbul",
"country": "Turkey",
"district": "Beykoz",
"description": "Kavacık Mahallesi No:12"
},
"gender": "MALE", //MALE – FEMALE - OTHER
"identityNumber": 10000000001,
"lastName": "Demir",
"middleName": "Ali",
"name": "Taha",
"birthDay": "1994-03-31"
}
PUT localhost:8080/api/customers
Body:
{
"id":1,
"name": "Taha",
"middleName":"Ali",
"lastName": "Demir",
"identityNumber": 10000000001,
"gender": "MALE", //MALE – FEMALE - OTHER
"birthDay": "1994-03-31",
"contactInformation": {
"primaryEmail": "taha@hotmail.com",
"primaryPhoneNumber": "05361074861",
"secondaryEmail": "tahayedek34@hotmail.com",
"secondaryPhoneNumber": "05448000832"
}
}
GET localhost:8080/api/customers/{customerId}
-> {customerId}
yazan yere müşterinin id'si yazılmalıdır.
Delete localhost:8080/api/customers/{customerId}
-> {customerId}
yazan yere müşterinin id'si yazılmalıdır.
POST localhost:8080/api/customers/{customerId}/addresses
-> {customerId}
yazan yere müşterinin id'si yazılmalıdır.
Body:
{
"country":"Turkey",
"city":"Istanbul",
"district":"Kadikoy",
"addressType":"JOB", //HOUSE - JOB
"description":"Fener Kalamış Cad. No:63A "
}
PUT localhost:8080/api/customers/addresses/{customerAddressId}
-> {customerAddressId}
yazan yere adresin id'si yazılmalıdır.
Body:
{
"country":"Turkey",
"city":"Istanbul",
"district":"Kadikoy",
"addressType":"JOB", //HOUSE - JOB
"description":"Fener Kalamış Cad. No:63A "
}
GET localhost:8080/api/customers/addresses/{customerAddressId}
-> {customerAddressId}
yazan yere adresin id'si yazılmalıdır.
GET localhost:8080/api/customers/{customerId}/addresses
-> {customerId}
yazan yere müşterinin id'si yazılmalıdır.
DELETE localhost:8080/api/customers/addresses/{customerAddressId}
-> {customerAddressId}
yazan yere adresin id'si yazılmalıdır.
POST localhost:8080/api/accounts/customers/{customerId}
-> {customerId}
yazan yere müşterinin id'si yazılmalıdır.
Body:
{
"accountNumber": 2100000000000001,
"accountType": "DEPOSIT_ACCOUNT", //DEPOSIT_ACCOUNT – CHECKING_ACCOUNT
"bankCode": "00001",
"branchCode": "0001",
"currencyCode":"TRY",
"iban": "TR000000000000000000000001"
}
GET localhost:8080/api/accounts/{accountId}
-> {accountId}
yazan yere hesabın id'si yazılmalıdır.
GET localhost:8080/api/accounts/customers/{customerId}
-> {customerId}
yazan yere müşterinin id'si yazılmalıdır.
DELETE localhost:8080/api/accounts/{accountId}
-> {accountId}
yazan yere hesabın id'si yazılmalıdır.
PUT localhost:8080/api/accounts?iban=TR000000000000000000000001&amount=100
iban
değeri paranın gönderileceği hesabın ibanı yazılmalıdır. amount
değeri paranın miktarı yazılmalıdır.
POST localhost:8080/api/cards/customers/{customerId}
-> {customerId}
yazan yere müşterinin id'si yazılmalıdır.
Body:
{
"cardNumber": 2200000000000001,
"cardSecurityNumber": "123",
"cardExpirationDate":"12/25",
"cardPassword": "123321",
"cardLimit":10000,
"currentLimit":1000,
"cardType": "CREDIT_CARD" //CREDIT_CARD – BANK_CARD
}
- Kart kredi kartı ise
cardLimit
eklenmelidir. Kart banka kartı isecardLimit
çıkarılmalıdır.
PUT localhost:8080/api/cards/{cardId}/limits
-> {cardId}
yazan yere kartın id'si yazılmalıdır.
Body:
{
"cardLimit": 10000,
"currentLimit":200
}
PUT localhost:8080/api/cards/{cardId}/passwords
-> {cardId}
yazan yere kartın id'si yazılmalıdır.
Body:
{
"password":"123321"
}
GET localhost:8080/api/cards/{cardId}
-> {cardId}
yazan yere kartın id'si yazılmalıdır.
GET localhost:8080/api/cards/customers/{customerId}
-> {customerId}
yazan yere müşterinin id'si yazılmalıdır.
DELETE localhost:8080/api/cards/{cardId}
-> {cardId}
yazan yere kartın id'si yazılmalıdır.
GET localhost:8080/api/cards?cardNumber=2200000000000001
-> cardNumber
değerine kartın numarası yazılmalıdır.
PUT localhost:8080/api/cards?cardNumber=2200000000000001&amount=500
-> cardNumber
değerine kartın numarası yazılmalıdır. amount
değeri paranın miktarı yazılmalıdır.
PUT localhost:8080/api/cards/shopping
Body:
{
"amount":1,
"cardNumber":2200000000000001,
"cardSecurityNumber":"136",
"cardExpirationDate":"10/25",
"cardPassword":"123321"
}
POST localhost:8080/api/transfers?fromIban=TR000000000000000000000001&toIban=TR000000000000000000000002&amount=100
Body:
{
"description":"Diğer ödemeler"
}
POST localhost:8080/api/transfers/to/cards?fromAccountIban=TR000000000000000000000001&toCardNumber=2200000000000001&amount=100
POST localhost:8080/api/transfers/to/accounts?fromCardNumber=2200000000000001&toAccountIban=TR000000000000000000000001&amount=20