Back-end instrukcije
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:
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:
- Postman - aplikacija za kreiranje REST (Http) zahtjeva na poslužitelj koji ćete kreirati: https://www.postman.com/
- DBeaver - aplikacija za upravljanje bazama podataka: https://dbeaver.io/
- 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.