Rename and update project to java 21 and newer spring versions
This commit is contained in:
59
README.md
59
README.md
@@ -1,59 +0,0 @@
|
||||
Zadatak: Aplikaciju za Auto servise.
|
||||
|
||||
- Tehnologije: Springboot, Thymeleaf, PostgresSQl baza (tocno te tehnologije, bez javascripta)
|
||||
|
||||
U aplikaciji treba moći:
|
||||
|
||||
1. Dodavati/brisati/editirati klijente.
|
||||
- Osim forme za editiranje podataka klijenta, treba napraviti i prikaz detalja klijenta, koji nije u obliku forme, vec samo tekstualno prikazani podaci (moze kao tablica da bi sve bilo lijepo poravnato)
|
||||
:
|
||||
- OIB
|
||||
- Ime i Prezime
|
||||
- Adresa (Ulica i broj, poštanski broj , Grad, Država)
|
||||
(hint: pokušajte to napraviti kao Embedable, )
|
||||
https://en.wikibooks.org/wiki/Java_Persistence/Embeddables#Example_of_an_embedded_relationship_annotations
|
||||
- Lista automobila
|
||||
- Nakon sto se unese novi klijent ili editira postojeci, treba prikazati stranicu sa detaljima klijenta.
|
||||
Naslov iznad forme neka bude "Uređivanje klijenta"
|
||||
|
||||
- Napraviti stranicu sa izlistom klijenata
|
||||
- U listi su prezimena i imena klijenata, abecedno po prezimenu
|
||||
- klik na ime vodi na stranicu s detaljima klijenta
|
||||
- pored imena klijenta su buttoni "Uredi" (vodi na formu za editiranje klijenta) i "Obriši" (briše klijenta i sve njegove automobile)
|
||||
- ispod liste button za dodavanje novog klijenta
|
||||
pored pojedinog klijenta, buttoni za )
|
||||
|
||||
|
||||
2. Dodavanje automobila
|
||||
|
||||
- Na prikazu detalja klijenta (definirano u tocki 1) treba prikazati i listu automobila koje klijent posjeduje i servisira. Ispod liste (koja ce inicijalno biti prazna) treba biti button "Dodaj automobil", a klik na taj biuton otvara novu stranicu (formu ) za unos podataka automobla.
|
||||
- Automobil mora imati sljedeće podatke
|
||||
- Klijent kojem pripada (dropdown lista, inicijalno odabran onaj klijent s cijih detalja je klinuto na "Dodaj automobi", ali moze se promjeniti)
|
||||
- Tip automobila (tipove automobila ne morate spremati u bazu, dovoljno je imati enum sa listom tipova (dodajte 10-ak komada))
|
||||
enum vrijednosti za tip automobila neka budu skraceni nazivi, npr: TOYOTA_AURIS, s time da ima property-e manufacturer i model koji imaju gettere/settere a u ovom slucaju bi vrijednosti bile za manufacturer "Toyota" a za model "Auris"
|
||||
- Godina proizvodnje
|
||||
- Registracijska oznaka
|
||||
- Boja
|
||||
- Naslov iznad forme neka bude "Uređivanje automobila"
|
||||
- Kada se doda automobil (submita se forma), neka se vraća na stranicu detalja klijenta za kojeg smo dodali taj automobil.
|
||||
Tada se na toj stranici, u listi automobila klijenta treba vidjeti unešeni automobil.
|
||||
- Na toj listi automobila ispisivati proizvođača i model (iz onog enuma za tip automobila), to neka ujedno bude i link na stranicu sa detaljima automobila. Pokraj tog linka dodati dva buttona: "Uredi" i "Obriši". Uredi otvara formu za editiranje podataka automobila, a Briši ga briše.
|
||||
- RELACIJU AUTOMOBIL-KLIJENT NAPRAVITE BIDIRECTIONAL (DA KLIJENT ENTITY IMA LISTU AUTOMOBILA A AUTOMOBIL IMA REFERENCU NA KLIJENTA KOJEM PRIPADA)
|
||||
|
||||
|
||||
3. Dodavanje servisa
|
||||
- Na stranici detalja automobila (definiranoj u točki 2) uz podatke o automobilu treba dodati i listu napravljenih servisa. Ispod liste (koja je inicijalno prazna) imamo button "Dodaj servis info"
|
||||
- Klik na taj button otvara formu za dodavanje Servisa koji treba imati sljedeće podatke:
|
||||
- Datum i vrijeme servisa
|
||||
- Ime i prezime radnika koji je napravio servis
|
||||
- Opis radova
|
||||
- Cijena
|
||||
- Informacija da li je plaćeno ili ne (checkbox)
|
||||
- Naslov iznad forme neka bude "Servis za automobil XXXXX , YYYYY". XXXXX neka bude tip automobila (proizvođać i model), a YYYYY ime i prezime klijenta
|
||||
- Nakon submita forme treba se vratiti na stranicu detalja automobila.
|
||||
- Dodani servis se treba prikazati na toj stranici u listi servisa. Za svaki servis u listi ispisati Datum i vrijeme kad je napravljen i ime radika koji je obavio servis. Svaki taj item u listi ujedno je i link na stranicu detalja servisa gdje se ispisutu svi podaci o servisu (tablica s tekstom)
|
||||
- Pokraj linka treba dodati buttone "Uredi" (vodi na edit formu za servis) i "Obriši" (briše servis iz baze)
|
||||
- RELACIJU SERVIS-AUTOMOBIL NAPRAVITE BIDIRECTIONAL (DA AUTOMOBIL ENTITY IMA LISTU SERVVISA A SERVIS IMA REFERENCU NA AUTOMOBIL ZA KOJI JE NAPRAVLJEN)
|
||||
4. Napravity Homepage na kojem će se prikazati zadnjih 10 napravljeni servisa (po vremenu, najnoviji na vrhu)
|
||||
|
||||
5. (OPCIONALNO) Na svim stranicama includati na vrhu header sa glavnom navigacijom (potrazite kako se to radi sa thymeleafom, hint --> th:include)
|
28
pom.xml
28
pom.xml
@@ -1,20 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.6.2</version>
|
||||
<relativePath/> <!-- lookup parent from repository -->
|
||||
<version>3.4.5</version>
|
||||
<relativePath/>
|
||||
<!-- lookup parent from repository -->
|
||||
</parent>
|
||||
<groupId>com.carService</groupId>
|
||||
<artifactId>demo</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<name>demo</name>
|
||||
<description>Demo project for Spring Boot</description>
|
||||
<groupId>com.carInsurance</groupId>
|
||||
<artifactId>main</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<name>carInsurance</name>
|
||||
<description>Car insurance interest calculator</description>
|
||||
<properties>
|
||||
<java.version>11</java.version>
|
||||
<java.version>21</java.version>
|
||||
<maven.compiler.source>21</maven.compiler.source>
|
||||
<maven.compiler.target>21</maven.compiler.target>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
@@ -31,8 +34,8 @@
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.postgresql</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
<groupId>org.mariadb.jdbc</groupId>
|
||||
<artifactId>mariadb-java-client</artifactId>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@@ -63,5 +66,4 @@
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
||||
|
11
src/main/java/com/carInsurance/main/Main.java
Normal file
11
src/main/java/com/carInsurance/main/Main.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package com.carInsurance.main;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(Main.class, args);
|
||||
}
|
||||
}
|
@@ -1,10 +1,10 @@
|
||||
package com.carService.demo.controller;
|
||||
package com.carInsurance.main.controller;
|
||||
|
||||
import com.carService.demo.domain.Car;
|
||||
import com.carService.demo.domain.enums.CarManufacturerModel;
|
||||
import com.carService.demo.manager.CarManager;
|
||||
import com.carService.demo.manager.CarServiceManager;
|
||||
import com.carService.demo.manager.UserManager;
|
||||
import com.carInsurance.main.domain.Car;
|
||||
import com.carInsurance.main.domain.enums.CarManufacturerModel;
|
||||
import com.carInsurance.main.manager.CarManager;
|
||||
import com.carInsurance.main.manager.CarServiceManager;
|
||||
import com.carInsurance.main.manager.UserManager;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
@@ -1,8 +1,8 @@
|
||||
package com.carService.demo.controller;
|
||||
package com.carInsurance.main.controller;
|
||||
|
||||
import com.carService.demo.domain.CarService;
|
||||
import com.carService.demo.manager.CarManager;
|
||||
import com.carService.demo.manager.CarServiceManager;
|
||||
import com.carInsurance.main.domain.CarService;
|
||||
import com.carInsurance.main.manager.CarManager;
|
||||
import com.carInsurance.main.manager.CarServiceManager;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
@@ -1,6 +1,6 @@
|
||||
package com.carService.demo.controller;
|
||||
package com.carInsurance.main.controller;
|
||||
|
||||
import com.carService.demo.manager.CarServiceManager;
|
||||
import com.carInsurance.main.manager.CarServiceManager;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
@@ -1,8 +1,8 @@
|
||||
package com.carService.demo.controller;
|
||||
package com.carInsurance.main.controller;
|
||||
|
||||
import com.carService.demo.domain.User;
|
||||
import com.carService.demo.manager.CarManager;
|
||||
import com.carService.demo.manager.UserManager;
|
||||
import com.carInsurance.main.domain.User;
|
||||
import com.carInsurance.main.manager.CarManager;
|
||||
import com.carInsurance.main.manager.UserManager;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
@@ -1,8 +1,9 @@
|
||||
package com.carService.demo.domain;
|
||||
package com.carInsurance.main.domain;
|
||||
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Embeddable;
|
||||
import lombok.*;
|
||||
|
||||
import javax.persistence.*;
|
||||
|
||||
@Data
|
||||
@Embeddable
|
@@ -1,9 +1,9 @@
|
||||
package com.carService.demo.domain;
|
||||
package com.carInsurance.main.domain;
|
||||
|
||||
import com.carService.demo.domain.enums.CarManufacturerModel;
|
||||
import com.carInsurance.main.domain.enums.CarManufacturerModel;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.List;
|
||||
|
||||
@Entity
|
||||
@@ -13,7 +13,7 @@ import java.util.List;
|
||||
@Table(name="cars")
|
||||
public class Car {
|
||||
@Id
|
||||
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="car_sequence")
|
||||
@GeneratedValue(strategy= GenerationType.SEQUENCE, generator="car_sequence")
|
||||
@SequenceGenerator(name="car_sequence", allocationSize=10)
|
||||
@Setter(AccessLevel.PRIVATE)
|
||||
private Long id;
|
@@ -1,9 +1,9 @@
|
||||
package com.carService.demo.domain;
|
||||
package com.carInsurance.main.domain;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.Date;
|
||||
|
||||
@Entity
|
||||
@@ -14,7 +14,7 @@ import java.util.Date;
|
||||
@Table(name="services")
|
||||
public class CarService {
|
||||
@Id
|
||||
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="car_service_sequence")
|
||||
@GeneratedValue(strategy= GenerationType.SEQUENCE, generator="car_service_sequence")
|
||||
@SequenceGenerator(name="car_service_sequence", allocationSize=10)
|
||||
@Setter(AccessLevel.PRIVATE)
|
||||
private Long id;
|
@@ -1,8 +1,8 @@
|
||||
package com.carService.demo.domain;
|
||||
package com.carInsurance.main.domain;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.List;
|
||||
|
||||
@Entity
|
||||
@@ -13,7 +13,7 @@ import java.util.List;
|
||||
@Setter
|
||||
public class User {
|
||||
@Id
|
||||
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="user_sequence")
|
||||
@GeneratedValue(strategy= GenerationType.SEQUENCE, generator="user_sequence")
|
||||
@SequenceGenerator(name="user_sequence", allocationSize=10)
|
||||
@Setter(AccessLevel.PRIVATE)
|
||||
private Long id;
|
@@ -1,4 +1,4 @@
|
||||
package com.carService.demo.domain.enums;
|
||||
package com.carInsurance.main.domain.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
|
@@ -1,7 +1,7 @@
|
||||
package com.carService.demo.manager;
|
||||
package com.carInsurance.main.manager;
|
||||
|
||||
import com.carService.demo.domain.Car;
|
||||
import com.carService.demo.domain.User;
|
||||
import com.carInsurance.main.domain.Car;
|
||||
import com.carInsurance.main.domain.User;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
@@ -1,8 +1,8 @@
|
||||
package com.carService.demo.manager;
|
||||
package com.carInsurance.main.manager;
|
||||
|
||||
import com.carService.demo.domain.Car;
|
||||
import com.carService.demo.domain.User;
|
||||
import com.carService.demo.repository.CarRepository;
|
||||
import com.carInsurance.main.domain.Car;
|
||||
import com.carInsurance.main.domain.User;
|
||||
import com.carInsurance.main.repository.CarRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
@@ -1,7 +1,7 @@
|
||||
package com.carService.demo.manager;
|
||||
package com.carInsurance.main.manager;
|
||||
|
||||
import com.carService.demo.domain.Car;
|
||||
import com.carService.demo.domain.CarService;
|
||||
import com.carInsurance.main.domain.Car;
|
||||
import com.carInsurance.main.domain.CarService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
@@ -1,8 +1,8 @@
|
||||
package com.carService.demo.manager;
|
||||
package com.carInsurance.main.manager;
|
||||
|
||||
import com.carService.demo.domain.Car;
|
||||
import com.carService.demo.domain.CarService;
|
||||
import com.carService.demo.repository.CarServiceRepository;
|
||||
import com.carInsurance.main.domain.Car;
|
||||
import com.carInsurance.main.domain.CarService;
|
||||
import com.carInsurance.main.repository.CarServiceRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
@@ -1,6 +1,6 @@
|
||||
package com.carService.demo.manager;
|
||||
package com.carInsurance.main.manager;
|
||||
|
||||
import com.carService.demo.domain.User;
|
||||
import com.carInsurance.main.domain.User;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
@@ -1,7 +1,7 @@
|
||||
package com.carService.demo.manager;
|
||||
package com.carInsurance.main.manager;
|
||||
|
||||
import com.carService.demo.domain.User;
|
||||
import com.carService.demo.repository.UserRepository;
|
||||
import com.carInsurance.main.domain.User;
|
||||
import com.carInsurance.main.repository.UserRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
@@ -1,7 +1,7 @@
|
||||
package com.carService.demo.repository;
|
||||
package com.carInsurance.main.repository;
|
||||
|
||||
import com.carService.demo.domain.Car;
|
||||
import com.carService.demo.domain.User;
|
||||
import com.carInsurance.main.domain.Car;
|
||||
import com.carInsurance.main.domain.User;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
import java.util.List;
|
@@ -1,7 +1,7 @@
|
||||
package com.carService.demo.repository;
|
||||
package com.carInsurance.main.repository;
|
||||
|
||||
import com.carService.demo.domain.Car;
|
||||
import com.carService.demo.domain.CarService;
|
||||
import com.carInsurance.main.domain.Car;
|
||||
import com.carInsurance.main.domain.CarService;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
import java.util.List;
|
@@ -1,6 +1,6 @@
|
||||
package com.carService.demo.repository;
|
||||
package com.carInsurance.main.repository;
|
||||
|
||||
import com.carService.demo.domain.User;
|
||||
import com.carInsurance.main.domain.User;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
public interface UserRepository extends JpaRepository<User, Long> {
|
@@ -1,13 +0,0 @@
|
||||
package com.carService.demo;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class DemoApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(DemoApplication.class, args);
|
||||
}
|
||||
|
||||
}
|
@@ -4,13 +4,13 @@ spring.jackson.serialization.INDENT_OUTPUT=true
|
||||
#JPA properties
|
||||
spring.jpa.hibernate.ddl-auto=update
|
||||
|
||||
spring.datasource.url=jdbc:postgresql://127.0.0.1:2345/phatphuckdave
|
||||
spring.datasource.url=jdbc:mariadb://127.0.0.1:3306/phatphuckdave
|
||||
spring.datasource.username=phatphuckdave
|
||||
spring.datasource.password=phatphuckdave765
|
||||
spring.datasource.driver-class-name=org.postgresql.Driver
|
||||
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
|
||||
|
||||
spring.jpa.database=POSTGRESQL
|
||||
spring.jpa.database-platform = org.hibernate.dialect.PostgreSQL92Dialect
|
||||
spring.jpa.database=MARIADB
|
||||
spring.jpa.database-platform = org.hibernate.dialect.MariaDB103Dialect
|
||||
spring.jpa.open-in-view=true
|
||||
spring.jpa.show_sql=false
|
||||
spring.jpa.generate-ddl=false
|
||||
|
@@ -1,10 +1,10 @@
|
||||
package com.carService.demo;
|
||||
package com.carInsurance.main;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
|
||||
@SpringBootTest
|
||||
class DemoApplicationTests {
|
||||
class MainTests {
|
||||
|
||||
@Test
|
||||
void contextLoads() {
|
Reference in New Issue
Block a user