Skip to content

Commit

Permalink
Add existing project files to Git
Browse files Browse the repository at this point in the history
  • Loading branch information
Dogancan94 committed Apr 3, 2024
0 parents commit 609838c
Show file tree
Hide file tree
Showing 18 changed files with 1,076 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions .idea/FSWEB-S17D2-Java-Projesi.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions .idea/codeStyles/Project.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions .idea/codeStyles/codeStyleConfig.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 20 additions & 0 deletions .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/encodings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 20 additions & 0 deletions .idea/jarRepositories.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 14 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 18 additions & 0 deletions HELP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Getting Started

### Reference Documentation
For further reference, please consider the following sections:

* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html)
* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/3.2.0/maven-plugin/reference/html/)
* [Create an OCI image](https://docs.spring.io/spring-boot/docs/3.2.0/maven-plugin/reference/html/#build-image)
* [Spring Web](https://docs.spring.io/spring-boot/docs/3.2.0/reference/htmlsingle/index.html#web)
* [Spring Boot DevTools](https://docs.spring.io/spring-boot/docs/3.2.0/reference/htmlsingle/index.html#using.devtools)

### Guides
The following guides illustrate how to use some features concretely:

* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/)
* [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/)
* [Building REST services with Spring](https://spring.io/guides/tutorials/rest/)

47 changes: 47 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Java Spring Boot Dependency Injection

### Proje Kurulumu

Projeyi öncelikle forklayın ve clone edin.
Daha sonra projeyi IntellijIDEA kullanarak açınız. README.md dosyasını dikkatli bir şekilde okuyarak istenenleri yapmaya çalışın.
Proje sayımız ilerledikçe proje yönetimimizi kolaylaştırmak adına projelerimizi belli klasör kalıplarında saklamak işimizi kolaylaştırmak adına iyi bir alışkanlıktır.
Örnek bir Lokasyon: Workintech/Sprint_1/Etud.

### Hedeflerimiz:

### Spring Boot Dependency Injection

### Görev 1
* Maven dependency management sistemini kullanarak tüm dependencyleri install edin.
* Uygulamanızı ```8585``` portundan ayağa kaldırın.
* Tüm endpointlerin önüne ```workintech``` gelmesi için ilgili ```application.properties``` içerisine ilgili düzenlemeyi yapın.
* Spring devtools kullanarak uygulamanızın her değişim sonrasında kendisini restart etmesini sağlayınız.
* Uygulamamızda ```main``` metodumuzun bulunduğu paket dışında iki adet daha paket tanımlayınız. ```model``` ve ```tax``` isminde olabilirler.
* Uygulamamızda ```main``` metodumuzun bulunduğu paket dışında kalıcak şekilde ```rest``` isimli bir paket oluşturunuz.
* ```rest``` paketi içerisinde ````DeveloperController```` isimli bir controller tanımlayınız.
* ```model``` paketi içerisinde ````Developer```` isminde bir adet class oluşturunuz. ```id, name, salary ve experience``` isimli 4 adet değişken tanımlayınız.
* experience değeri enum tipinde olmalı JUNIOR, MID ve SENIOR değerlerinden birini almalı.
* ````Developer```` sınıfı içerisinde tüm ````instance variable```` değerlerini set eden bir adet constructor tanımlayınız.
* ```Developer``` sınıfını kullanan(ilişkinin nasıl olması gerektiğini siz tanımlamalısınız.) 3 ayrı sınıf tanımlayınız. ````JuniorDeveloper````, ````MidDeveloper````, ````SeniorDeveloper````

### Görev 2
* tax paketinin içerisine bir adet ````Taxable```` isimli interface tanımlayınız.
* İçerisinde ````getSimpleTaxRate, getMiddleTaxRate, getUpperTaxRate```` isimli bir 3 adet metod tanımlayınız.
* ````DeveloperTax```` bir adet sınıf yazınız. Taxable interface implement etmeli. ilgili metodları override etmeli.
* ```getSimpleTaxRate``` 15d dönmeli. ```getMiddleTaxRate``` 25d dönmeli. ```getUpperTaxRate``` 35d dönmeli.

### Görev 3
* DeveloperController sınıfı içerisinde bir adet ```developers``` adında Map tanımlayın. ```Map<Integer, Developer>``` şeklinde değer almalı.
* ```@postConstruct``` annotation kullanarak developers map objesini tanımlayınız.
* DeveloperController sınıfı içerisinde bir adet constructor tanımlanmalı Taxable interface ```Dependency Injection``` yöntemiyle çağırılmalı. DeveloperTax sınıfını çağırmalı.
* Amacımız CRUD işlemlerini tanımlayan endpointler yazmak.
* [GET]/workintech/developers => tüm developers mapinin value değerlerini ```List``` olarak döner.
* [GET]/workintech/developers/{id} => ilgili id deki developer mapte varsa value değerini döner.
* [POST]/workintech/developers => ```id, name, salary ve experience``` değerlerini alır, experience tipine bakarak uygun developer objesini oluşturup developers mapine ekler. JuniorDeveloper için salary bilgisinden salary*getSimpleTaxRate() değerini düşmelisiniz. Aynı şekilde MidDeveloper için salary*getMiddleTaxRate(), SeniorDeveloper için salary*getUpperTaxRate() değerlerini salary bilgisinden düşmelisiniz.
* [PUT]/workintech/developers/{id} => İlgili id deki map değerini ```Request Body``` içerisinden aldığı değer ile günceller.
* [DELETE]/workintech/developers/{id} => İlgili id değerini mapten siler.
* Tüm endpointlerin dönüş değerleri JSON formatında olmalı.

### Görev 4
* Spring Actuators endpointlerini kullanarak /mappings, /health ile uygulamanızın durumunu kontrol edin
* /info nun çalışabilmesi için application.properties kısmına ```name```, ```description```, ```version``` kısımlarını tanımlayınız.
Loading

0 comments on commit 609838c

Please sign in to comment.