Back-end instrukcije

From Wiki EM2
Jump to navigation Jump to search

Spring Boot aplikacija

Spring Initialzr (https://start.spring.io/)

- Online tool za stvaranje Spring Boot aplikacije sa svim potrebnim bibliotekama koje će biti unutar projekta

- Potrebne biblioteke za zadatak:

1. Web – library s klasama za RESTful aplikacije

2. Spring Security – library za upravljanje autorizacijom, pristupima itd...

3. JPA – persistence library (Hibernate ORM)

4. MySQL/Psql Driver – ako ćete koristiti MySql/Postgres bazu onda treba i taj driver dodati

5. Liquibase/Flyway migration (po želji) - migracije za bazu

6. Lombok - annotation-based getteri, setteri, builderi, itd. za klase

- Stisnete Generate i dobijete gotov projekt s gotovom arhitekturom koji se samo otvori u

intelliJ-u (link za preuzimanje Community verzije: https://www.jetbrains.com/idea/download/#section=windows) ili nekom drugom IDE-u (Spring Tool Suite)

Primjer strukture za jednostavnije aplikacije:

Arhitektura Spring Boot aplikacije.png









Udemy račun za učenje

Link: https://www.udemy.com/

E-mail: [email protected]

Lozinka: password

Tečaj se zove: Learn Spring Boot in 100 steps

To je dovoljno dobar tečaj kako bi se upoznali sa Spring Bootom i njegovim mogućnostima.

Mi najviše koristimo stvari iz Section 5, Section 6 i Section 7. Ali nije se loše upoznati ni s

nekim osnovama (sekcija 1 i 2).

Linkovi za učenje

- Baeldung – vrlo koristan izvor, jako dobro sve objašnjeno

https://www.baeldung.com/rest-with-spring-series

1. Spring Boot REST Controllers - https://www.baeldung.com/building-a-restful-web-service-with-spring-and-java-based-configuration

- zanemariti testove...

2. Error handling in Spring Boot - https://www.baeldung.com/exception-handling-for-rest-with-spring (Solution 3)

3. Handlanje @RequestBody - https://www.baeldung.com/spring-request-response-body

4. Java Persistence

- https://www.baeldung.com/persistence-with-spring-series

- https://www.baeldung.com/the-persistence-layer-with-spring-data-jpa

- https://www.baeldung.com/spring-data-java-8

- https://www.baeldung.com/spring-data-annotations

- https://www.baeldung.com/spring-boot-h2-database

- https://www.baeldung.com/jpa-entity-table-names

5. Basic Security - https://www.baeldung.com/spring-security-basic-authentication

6. Validation - https://www.baeldung.com/spring-boot-bean-validation

Dodatne poveznice i alati:

  1. Postman - aplikacija za kreiranje REST (Http) zahtjeva na poslužitelj koji ćete kreirati: https://www.postman.com/
  2. DBeaver - aplikacija za upravljanje bazama podataka: https://dbeaver.io/
  3. Postgres - Postgres baza podataka: https://www.postgresql.org/

Tim

U bilo kojem trenutku možete kontaktirati članove tima za konzultacije, pomoć ili savjet.

Popis članova tima i njihov e-mail možete pronaći ovdje.

Također svi članovi tima će biti dostupni i na Slacku.

Što se očekuje od vas?

Aktivni i samostalni pristup zadacima. Potruditi se sami doći do rješenja problema, ako ne uspijete, u svakom trenutku se možete obratiti ostalim članovima tima.

Ako mislite da nešto može bolje, ne ustručavajte se prokomentirati to s kolegama.

Ukoliko postoje stvari koje nisu jasne, bolje je pitati nego ispravljati kod.

ZADATAK

Kreirajte REST servis koji korisniku omogućuje upravljanje svojim (virtualnim) bankovnim računima.

Korisnik može stvoriti novi račun, dodati određenu količinu sredstava na račun, prenijeti sredstva na drugi račun (koji može, a i ne mora biti njegov) te obrisati račun.

Korisnik može imati nekoliko računa.

Podaci o korisniku i računu mogu biti proizvoljni.

Stvoriti konekciju na proizvoljnu bazu podataka te ju koristiti za spremanje podataka.

Na proizvoljan način obaviti autentifikaciju (najlakše In Memory Authentication) korisnika koristeći Spring Security.