diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..7a73a41 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/backend/TMSFullstackProject/src/main/java/br/com/teamroxo/entra21/TMSFullstackProject/List/Localizations.java b/backend/TMSFullstackProject/src/main/java/br/com/teamroxo/entra21/TMSFullstackProject/List/Localizations.java deleted file mode 100644 index bfb6337..0000000 --- a/backend/TMSFullstackProject/src/main/java/br/com/teamroxo/entra21/TMSFullstackProject/List/Localizations.java +++ /dev/null @@ -1,81 +0,0 @@ -package br.com.teamroxo.entra21.TMSFullstackProject.List; - -import java.util.Objects; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; - -import br.com.teamroxo.entra21.TMSFullstackProject.template.Pacotes; - -@Entity -public class Localizations { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - - @Column - private String remetente; - - @Column - private String destinatario; - - @ManyToOne - public Pacotes pack; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getRemetente() { - return remetente; - } - - public void setRemetente(String remetente) { - this.remetente = remetente; - } - - public String getDestinatario() { - return destinatario; - } - - public void setDestinatario(String destinatario) { - this.destinatario = destinatario; - } - - public Pacotes getPack() { - return pack; - } - - public void setPack(Pacotes pack) { - this.pack = pack; - } - - @Override - public int hashCode() { - return Objects.hash(id); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - Localizations other = (Localizations) obj; - return Objects.equals(id, other.id); - } - - - -} diff --git a/backend/TMSFullstackProject/src/main/java/br/com/teamroxo/entra21/TMSFullstackProject/TmsFullstackProjectApplication.java b/backend/TMSFullstackProject/src/main/java/br/com/teamroxo/entra21/TMSFullstackProject/TmsFullstackProjectApplication.java deleted file mode 100644 index 4d8c007..0000000 --- a/backend/TMSFullstackProject/src/main/java/br/com/teamroxo/entra21/TMSFullstackProject/TmsFullstackProjectApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package br.com.teamroxo.entra21.TMSFullstackProject; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class TmsFullstackProjectApplication { - - public static void main(String[] args) { - SpringApplication.run(TmsFullstackProjectApplication.class, args); - } - -} diff --git a/backend/TMSFullstackProject/src/main/java/br/com/teamroxo/entra21/TMSFullstackProject/controller/APIController.java b/backend/TMSFullstackProject/src/main/java/br/com/teamroxo/entra21/TMSFullstackProject/controller/APIController.java deleted file mode 100644 index 7f0ff8b..0000000 --- a/backend/TMSFullstackProject/src/main/java/br/com/teamroxo/entra21/TMSFullstackProject/controller/APIController.java +++ /dev/null @@ -1,35 +0,0 @@ -package br.com.teamroxo.entra21.TMSFullstackProject.controller; - -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseStatus; -import org.springframework.web.bind.annotation.RestController; - -import br.com.teamroxo.entra21.TMSFullstackProject.database.PacoteDados; -import br.com.teamroxo.entra21.TMSFullstackProject.template.Pacotes; - -@RestController -@RequestMapping("/tms") -public class APIController { - - @Autowired - private PacoteDados pacoteDados; - - @GetMapping(value = "/all") - public List getAll(){ - return pacoteDados.findAll(); - } - - @PostMapping(value = "/add") - @ResponseStatus(code = HttpStatus.CREATED) - public Pacotes post(@RequestBody Pacotes pacotes) { - return pacoteDados.save(pacotes); - } - -} diff --git a/backend/TMSFullstackProject/src/main/java/br/com/teamroxo/entra21/TMSFullstackProject/controller/CorsConfiguration.java b/backend/TMSFullstackProject/src/main/java/br/com/teamroxo/entra21/TMSFullstackProject/controller/CorsConfiguration.java deleted file mode 100644 index 6d71144..0000000 --- a/backend/TMSFullstackProject/src/main/java/br/com/teamroxo/entra21/TMSFullstackProject/controller/CorsConfiguration.java +++ /dev/null @@ -1,18 +0,0 @@ -package br.com.teamroxo.entra21.TMSFullstackProject.controller; - -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.CorsRegistry; -import org.springframework.web.servlet.config.annotation.EnableWebMvc; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; - -@Configuration -@EnableWebMvc -public class CorsConfiguration implements WebMvcConfigurer { - - public void addCorsMapping(CorsRegistry registry) { - registry.addMapping("/**") - .allowedOrigins("*") - .allowedMethods("GET", "POST", "DELETE"); - } - -} diff --git a/backend/TMSFullstackProject/src/main/java/br/com/teamroxo/entra21/TMSFullstackProject/database/PacoteDados.java b/backend/TMSFullstackProject/src/main/java/br/com/teamroxo/entra21/TMSFullstackProject/database/PacoteDados.java deleted file mode 100644 index b3491f1..0000000 --- a/backend/TMSFullstackProject/src/main/java/br/com/teamroxo/entra21/TMSFullstackProject/database/PacoteDados.java +++ /dev/null @@ -1,10 +0,0 @@ -package br.com.teamroxo.entra21.TMSFullstackProject.database; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; -import br.com.teamroxo.entra21.TMSFullstackProject.template.Pacotes; - -@Repository -public interface PacoteDados extends JpaRepository{ - -} diff --git a/backend/TMSFullstackProject/src/main/java/br/com/teamroxo/entra21/TMSFullstackProject/template/Pacotes.java b/backend/TMSFullstackProject/src/main/java/br/com/teamroxo/entra21/TMSFullstackProject/template/Pacotes.java deleted file mode 100644 index b8bac57..0000000 --- a/backend/TMSFullstackProject/src/main/java/br/com/teamroxo/entra21/TMSFullstackProject/template/Pacotes.java +++ /dev/null @@ -1,104 +0,0 @@ -package br.com.teamroxo.entra21.TMSFullstackProject.template; - -import java.time.LocalDate; -import java.util.List; -import java.util.Objects; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.OneToMany; - -import br.com.teamroxo.entra21.TMSFullstackProject.List.Localizations; - -@Entity -public class Pacotes { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - - @Column - private String codigo; - - @Column - private Float price; - - @Column - private Float weight; - - @Column - private LocalDate envio; - - @Column - @OneToMany(mappedBy = "pack", targetEntity = Localizations.class) - private List enderecos; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getCodigo() { - return codigo; - } - - public void setCodigo(String codigo) { - this.codigo = codigo; - } - - public Float getPrice() { - return price; - } - - public void setPrice(Float price) { - this.price = price; - } - - public Float getWeight() { - return weight; - } - - public void setWeight(Float weight) { - this.weight = weight; - } - - public LocalDate getEnvio() { - return envio; - } - - public void setEnvio(LocalDate envio) { - this.envio = envio; - } - - public List getEnderecos() { - return enderecos; - } - - public void setEnderecos(List enderecos) { - this.enderecos = enderecos; - } - - @Override - public int hashCode() { - return Objects.hash(id); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - Pacotes other = (Pacotes) obj; - return Objects.equals(id, other.id); - } - -} diff --git a/backend/TMSFullstackProject/src/main/resources/application.properties b/backend/TMSFullstackProject/src/main/resources/application.properties deleted file mode 100644 index 3175b2b..0000000 --- a/backend/TMSFullstackProject/src/main/resources/application.properties +++ /dev/null @@ -1,2 +0,0 @@ -spring.jpa.hibernate.ddl-auto = create-drop -hibernate.dialect=org.hibernate.dialect.MySQL8Dialect \ No newline at end of file diff --git a/backend/TMSFullstackProject/.gitignore b/backend/TMSProject/.gitignore similarity index 100% rename from backend/TMSFullstackProject/.gitignore rename to backend/TMSProject/.gitignore diff --git a/backend/TMSFullstackProject/.mvn/wrapper/maven-wrapper.jar b/backend/TMSProject/.mvn/wrapper/maven-wrapper.jar similarity index 100% rename from backend/TMSFullstackProject/.mvn/wrapper/maven-wrapper.jar rename to backend/TMSProject/.mvn/wrapper/maven-wrapper.jar diff --git a/backend/TMSFullstackProject/.mvn/wrapper/maven-wrapper.properties b/backend/TMSProject/.mvn/wrapper/maven-wrapper.properties similarity index 100% rename from backend/TMSFullstackProject/.mvn/wrapper/maven-wrapper.properties rename to backend/TMSProject/.mvn/wrapper/maven-wrapper.properties diff --git a/backend/TMSFullstackProject/mvnw b/backend/TMSProject/mvnw similarity index 100% rename from backend/TMSFullstackProject/mvnw rename to backend/TMSProject/mvnw diff --git a/backend/TMSFullstackProject/mvnw.cmd b/backend/TMSProject/mvnw.cmd similarity index 100% rename from backend/TMSFullstackProject/mvnw.cmd rename to backend/TMSProject/mvnw.cmd diff --git a/backend/TMSFullstackProject/pom.xml b/backend/TMSProject/pom.xml similarity index 58% rename from backend/TMSFullstackProject/pom.xml rename to backend/TMSProject/pom.xml index d6f8a96..cfdbdbf 100644 --- a/backend/TMSFullstackProject/pom.xml +++ b/backend/TMSProject/pom.xml @@ -1,5 +1,7 @@ - + 4.0.0 org.springframework.boot @@ -7,18 +9,18 @@ 2.7.3 - br.com.teamroxo.entra21 - TMSFullstackProject + br.com.entra21.team-roxo + TMSProject 0.0.1-SNAPSHOT - TMSFullstackProject - Projeto Final do Curso Entra21 + TMSProject + Projeto Final do Entra21 - 18 + 17 org.springframework.boot - spring-boot-starter-data-jpa + spring-boot-starter-web @@ -28,8 +30,8 @@ true - com.h2database - h2 + mysql + mysql-connector-java runtime @@ -38,8 +40,9 @@ test - org.springframework.boot - spring-boot-starter-web + com.fasterxml.jackson.core + jackson-databind + 2.13.3 @@ -48,16 +51,8 @@ org.springframework.boot spring-boot-maven-plugin - - - - org.projectlombok - lombok - - - - \ No newline at end of file + diff --git a/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/TmsProjectApplication.java b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/TmsProjectApplication.java new file mode 100644 index 0000000..c95e423 --- /dev/null +++ b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/TmsProjectApplication.java @@ -0,0 +1,31 @@ +package br.com.entra21.teamroxo.TMSProject; + +import java.util.ArrayList; + +import org.springframework.boot.CommandLineRunner; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +import br.com.entra21.teamroxo.TMSProject.template.Pessoa; + +@SpringBootApplication +public class TmsProjectApplication implements CommandLineRunner { + + public static ArrayList pessoas=new ArrayList(); + + public static void main(String[] args) { + SpringApplication.run(TmsProjectApplication.class, args); + } + + @Override + public void run(String... args) throws Exception { + + pessoas.add(new Pessoa("Kalil", "kjfakhouri@gmail.com", (byte) 21)); + pessoas.add(new Pessoa("Kalil", "kjfakhouri@gmail.com", (byte) 21)); + pessoas.add(new Pessoa("Kalil", "kjfakhouri@gmail.com", (byte) 21)); + pessoas.add(new Pessoa("Kalil", "kjfakhouri@gmail.com", (byte) 21)); + pessoas.add(new Pessoa("Kalil", "kjfakhouri@gmail.com", (byte) 21)); + + } + +} diff --git a/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/controllers/PessoaController.java b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/controllers/PessoaController.java new file mode 100644 index 0000000..af35037 --- /dev/null +++ b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/controllers/PessoaController.java @@ -0,0 +1,71 @@ +package br.com.entra21.teamroxo.TMSProject.controllers; + +import java.util.ArrayList; +import java.util.List; + +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestController; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import br.com.entra21.teamroxo.TMSProject.TmsProjectApplication; +import br.com.entra21.teamroxo.TMSProject.template.ItemNivel3; +import br.com.entra21.teamroxo.TMSProject.template.Pessoa; + +@RestController +@CrossOrigin(origins = "*") +@RequestMapping("/login") +public class PessoaController { + + private final String PATH = "http://localhost:8080/pessoas"; + + @GetMapping() + @ResponseStatus(code = HttpStatus.OK) + public ListlistAll(){ + return obterListaCompleta(); + } + + private List obterListaCompleta() { + + List response = TmsProjectApplication.pessoas.stream().toList(); + response.forEach(pessoa -> { + setMaturidadeNivel3(pessoa); + }); + + return response; + + } + + private void setMaturidadeNivel3(Pessoa pessoa) { + + ArrayList headers = new ArrayList(); + headers.add("Accept : application/json"); + headers.add("Content-type : application/json"); + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(Include.NON_NULL); + + try { + + pessoa.setLinks(null); + String json = mapper.writeValueAsString(pessoa); + pessoa.setLinks(new ArrayList<>()); + pessoa.getLinks().add(new ItemNivel3("GET", PATH, null, null)); + pessoa.getLinks().add(new ItemNivel3("GET", PATH + "/" + pessoa.getNome(), null, null)); + pessoa.getLinks().add(new ItemNivel3("POST", PATH, headers, json)); + pessoa.getLinks().add(new ItemNivel3("PUT", PATH + "/" + pessoa.getNome(), headers, json)); + + } catch (JsonProcessingException e) { + + e.printStackTrace(); + + } + + } + +} diff --git a/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/template/ItemNivel3.java b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/template/ItemNivel3.java new file mode 100644 index 0000000..bec4e23 --- /dev/null +++ b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/template/ItemNivel3.java @@ -0,0 +1,59 @@ +package br.com.entra21.teamroxo.TMSProject.template; + +import java.util.ArrayList; + +public class ItemNivel3 { + + private String ref; + private String url; + private ArrayList headers; + private String body; + + public ItemNivel3() { + super(); + } + + public ItemNivel3(String ref, String url, ArrayList headers, String body) { + super(); + this.ref = ref; + this.url = url; + this.headers = headers; + this.body = body; + } + + public String getRef() { + return ref; + } + + public void setRef(String ref) { + this.ref = ref; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public ArrayList getHeaders() { + return headers; + } + + public void setHeaders(ArrayList headers) { + this.headers = headers; + } + + public String getBody() { + return body; + } + + public void setBody(String body) { + this.body = body; + } + + + + +} diff --git a/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/template/MaturidadeNivel3Richardson.java b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/template/MaturidadeNivel3Richardson.java new file mode 100644 index 0000000..6be322d --- /dev/null +++ b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/template/MaturidadeNivel3Richardson.java @@ -0,0 +1,26 @@ +package br.com.entra21.teamroxo.TMSProject.template; + +import java.util.ArrayList; + +public class MaturidadeNivel3Richardson { + + private ArrayList links; + + public MaturidadeNivel3Richardson() { + super(); + } + + public MaturidadeNivel3Richardson(ArrayList links) { + super(); + this.links = links; + } + + public ArrayList getLinks() { + return links; + } + + public void setLinks(ArrayList links) { + this.links = links; + } + +} diff --git a/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/template/Pessoa.java b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/template/Pessoa.java new file mode 100644 index 0000000..888198d --- /dev/null +++ b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/template/Pessoa.java @@ -0,0 +1,50 @@ +package br.com.entra21.teamroxo.TMSProject.template; + +public class Pessoa extends MaturidadeNivel3Richardson{ + + private String nome; + private String email; + private byte idade; + + + + //CONSTRUCTORS + + public Pessoa() { + super(); + } + + public Pessoa(String nome, String email, byte idade) { + super(); + this.nome = nome; + this.idade = idade; + this.email = email; + } + + // GETTERS... + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public int getIdade() { + return idade; + } + + public void setIdade(byte idade) { + this.idade = idade; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + +} diff --git a/backend/TMSProject/src/main/resources/application.properties b/backend/TMSProject/src/main/resources/application.properties new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/backend/TMSProject/src/main/resources/application.properties @@ -0,0 +1 @@ + diff --git a/backend/TMSFullstackProject/src/test/java/br/com/teamroxo/entra21/TMSFullstackProject/TmsFullstackProjectApplicationTests.java b/backend/TMSProject/src/test/java/br/com/entra21/teamroxo/TMSProject/TmsProjectApplicationTests.java similarity index 60% rename from backend/TMSFullstackProject/src/test/java/br/com/teamroxo/entra21/TMSFullstackProject/TmsFullstackProjectApplicationTests.java rename to backend/TMSProject/src/test/java/br/com/entra21/teamroxo/TMSProject/TmsProjectApplicationTests.java index 182d57b..d513eb9 100644 --- a/backend/TMSFullstackProject/src/test/java/br/com/teamroxo/entra21/TMSFullstackProject/TmsFullstackProjectApplicationTests.java +++ b/backend/TMSProject/src/test/java/br/com/entra21/teamroxo/TMSProject/TmsProjectApplicationTests.java @@ -1,10 +1,10 @@ -package br.com.teamroxo.entra21.TMSFullstackProject; +package br.com.entra21.teamroxo.TMSProject; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest -class TmsFullstackProjectApplicationTests { +class TmsProjectApplicationTests { @Test void contextLoads() { diff --git a/frontend/main/package-lock.json b/frontend/main/package-lock.json index 4c7bfee..4517777 100644 --- a/frontend/main/package-lock.json +++ b/frontend/main/package-lock.json @@ -16,7 +16,10 @@ "@angular/platform-browser": "^14.0.0", "@angular/platform-browser-dynamic": "^14.0.0", "@angular/router": "^14.0.0", + "@types/axios": "^0.14.0", "admin-lte": "3.0", + "axios": "^0.27.2", + "jquery": "^3.6.1", "rxjs": "~7.5.0", "tslib": "^2.3.0", "zone.js": "~0.11.4" @@ -26,6 +29,8 @@ "@angular/cli": "^14.2.1", "@angular/compiler-cli": "^14.0.0", "@types/jasmine": "~4.0.0", + "@types/jquery": "^3.5.14", + "@types/node": "^18.7.16", "jasmine-core": "~4.3.0", "karma": "~6.4.0", "karma-chrome-launcher": "~3.1.0", @@ -2925,6 +2930,15 @@ "resolved": "https://registry.npmjs.org/@ttskch/select2-bootstrap4-theme/-/select2-bootstrap4-theme-1.5.2.tgz", "integrity": "sha512-gAj8qNy/VYwQDBkACm0USM66kxFai8flX83ayRXPNhzZckEgSqIBB9sM74SCM3ssgeX+ZVy4BifTnLis+KpIyg==" }, + "node_modules/@types/axios": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@types/axios/-/axios-0.14.0.tgz", + "integrity": "sha512-KqQnQbdYE54D7oa/UmYVMZKq7CO4l8DEENzOKc4aBRwxCXSlJXGz83flFx5L7AWrOQnmuN3kVsRdt+GZPPjiVQ==", + "deprecated": "This is a stub types definition for axios (https://github.com/mzabriskie/axios). axios provides its own type definitions, so you don't need @types/axios installed!", + "dependencies": { + "axios": "*" + } + }, "node_modules/@types/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", @@ -3045,6 +3059,15 @@ "integrity": "sha512-Opp1LvvEuZdk8fSSvchK2mZwhVrsNT0JgJE9Di6MjnaIpmEXM8TLCPPrVtNTYh8+5MPdY8j9bAHMu2SSfwpZJg==", "dev": true }, + "node_modules/@types/jquery": { + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.14.tgz", + "integrity": "sha512-X1gtMRMbziVQkErhTQmSe2jFwwENA/Zr+PprCkF63vFq+Yt5PZ4AlKqgmeNlwgn7dhsXEK888eIW2520EpC+xg==", + "dev": true, + "dependencies": { + "@types/sizzle": "*" + } + }, "node_modules/@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", @@ -3058,9 +3081,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.7.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.13.tgz", - "integrity": "sha512-46yIhxSe5xEaJZXWdIBP7GU4HDTG8/eo0qd9atdiL+lFpA03y8KS+lkTN834TWJj5767GbWv4n/P6efyTFt1Dw==", + "version": "18.7.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.16.tgz", + "integrity": "sha512-EQHhixfu+mkqHMZl1R2Ovuvn47PUw18azMJOTwSZr9/fhzHNGXAJ0ma0dayRVchprpCj0Kc1K1xKoWaATWF1qg==", "dev": true }, "node_modules/@types/parse-json": { @@ -3106,6 +3129,12 @@ "@types/node": "*" } }, + "node_modules/@types/sizzle": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", + "dev": true + }, "node_modules/@types/sockjs": { "version": "0.3.33", "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", @@ -3677,6 +3706,11 @@ "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", "dev": true }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, "node_modules/at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", @@ -3729,6 +3763,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, "node_modules/babel-loader": { "version": "8.2.5", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", @@ -4400,6 +4443,17 @@ "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", "dev": true }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -5299,6 +5353,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -6538,7 +6600,6 @@ "version": "1.15.1", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", - "dev": true, "funding": [ { "type": "individual", @@ -6586,6 +6647,19 @@ "is-callable": "^1.1.3" } }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -8861,7 +8935,6 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -8870,7 +8943,6 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "dependencies": { "mime-db": "1.52.0" }, @@ -15361,6 +15433,14 @@ "resolved": "https://registry.npmjs.org/@ttskch/select2-bootstrap4-theme/-/select2-bootstrap4-theme-1.5.2.tgz", "integrity": "sha512-gAj8qNy/VYwQDBkACm0USM66kxFai8flX83ayRXPNhzZckEgSqIBB9sM74SCM3ssgeX+ZVy4BifTnLis+KpIyg==" }, + "@types/axios": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@types/axios/-/axios-0.14.0.tgz", + "integrity": "sha512-KqQnQbdYE54D7oa/UmYVMZKq7CO4l8DEENzOKc4aBRwxCXSlJXGz83flFx5L7AWrOQnmuN3kVsRdt+GZPPjiVQ==", + "requires": { + "axios": "*" + } + }, "@types/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", @@ -15481,6 +15561,15 @@ "integrity": "sha512-Opp1LvvEuZdk8fSSvchK2mZwhVrsNT0JgJE9Di6MjnaIpmEXM8TLCPPrVtNTYh8+5MPdY8j9bAHMu2SSfwpZJg==", "dev": true }, + "@types/jquery": { + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.14.tgz", + "integrity": "sha512-X1gtMRMbziVQkErhTQmSe2jFwwENA/Zr+PprCkF63vFq+Yt5PZ4AlKqgmeNlwgn7dhsXEK888eIW2520EpC+xg==", + "dev": true, + "requires": { + "@types/sizzle": "*" + } + }, "@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", @@ -15494,9 +15583,9 @@ "dev": true }, "@types/node": { - "version": "18.7.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.13.tgz", - "integrity": "sha512-46yIhxSe5xEaJZXWdIBP7GU4HDTG8/eo0qd9atdiL+lFpA03y8KS+lkTN834TWJj5767GbWv4n/P6efyTFt1Dw==", + "version": "18.7.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.16.tgz", + "integrity": "sha512-EQHhixfu+mkqHMZl1R2Ovuvn47PUw18azMJOTwSZr9/fhzHNGXAJ0ma0dayRVchprpCj0Kc1K1xKoWaATWF1qg==", "dev": true }, "@types/parse-json": { @@ -15542,6 +15631,12 @@ "@types/node": "*" } }, + "@types/sizzle": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", + "dev": true + }, "@types/sockjs": { "version": "0.3.33", "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", @@ -16026,6 +16121,11 @@ "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", "dev": true }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, "at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", @@ -16050,6 +16150,15 @@ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" }, + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, "babel-loader": { "version": "8.2.5", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", @@ -16554,6 +16663,14 @@ "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", "dev": true }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -17284,6 +17401,11 @@ "object-keys": "^1.1.1" } }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -18163,8 +18285,7 @@ "follow-redirects": { "version": "1.15.1", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", - "dev": true + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==" }, "fontkit": { "version": "1.9.0", @@ -18197,6 +18318,16 @@ "is-callable": "^1.1.3" } }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, "forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -19895,14 +20026,12 @@ "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, "mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "requires": { "mime-db": "1.52.0" } diff --git a/frontend/main/package.json b/frontend/main/package.json index 1e6d859..78acb49 100644 --- a/frontend/main/package.json +++ b/frontend/main/package.json @@ -18,7 +18,10 @@ "@angular/platform-browser": "^14.0.0", "@angular/platform-browser-dynamic": "^14.0.0", "@angular/router": "^14.0.0", + "@types/axios": "^0.14.0", "admin-lte": "3.0", + "axios": "^0.27.2", + "jquery": "^3.6.1", "rxjs": "~7.5.0", "tslib": "^2.3.0", "zone.js": "~0.11.4" @@ -28,6 +31,8 @@ "@angular/cli": "^14.2.1", "@angular/compiler-cli": "^14.0.0", "@types/jasmine": "~4.0.0", + "@types/jquery": "^3.5.14", + "@types/node": "^18.7.16", "jasmine-core": "~4.3.0", "karma": "~6.4.0", "karma-chrome-launcher": "~3.1.0", diff --git a/frontend/main/src/app/home/home.component.css b/frontend/main/src/app/home/home.component.css index e69de29..d41e7ca 100644 --- a/frontend/main/src/app/home/home.component.css +++ b/frontend/main/src/app/home/home.component.css @@ -0,0 +1,16 @@ +.card-title{ + font-size: 25px; +} +#cards .row{ + margin-left: 100px; + margin-top: 80px; +} +.card-body a{ + color: white; + transition: ease-in-out 200ms ; + cursor: pointer; +} +.card-body a:hover{ + transition: ease-in-out 200ms ; + color: lightslategrey; +} diff --git a/frontend/main/src/app/home/home.component.html b/frontend/main/src/app/home/home.component.html index 379edb3..8afae69 100644 --- a/frontend/main/src/app/home/home.component.html +++ b/frontend/main/src/app/home/home.component.html @@ -1,75 +1,105 @@
-
-
-
-
-

Welcome!!

-

Where do you want to go?

-
-
+
+
+
+
+

Welcome!!

+

Where do you want to go?

+
+
- -
-
-
+ +
+
+
-
-

Dashboards

-



Clique para ver os Dashboards

-
+
+

+   Dashboards

+



Click here to go to Dashboards!

+
-
-
-
-
-

User

-



Clique para ver User

+
+
+
+
+

  User

+
+ +
-
-
-
-
-
-

Packages

-



Clique para ver Packages

+
+
+
+
+

  Packages

+
+ +
+
-
-
-
-
-
-

Finance

-



Clique para ver Finance

-
-
+
+
+
+

  Finance

+
+ +
-
-
-
-

Quotes

-



Clique para ver Quotes

-
-
+
+
+
+
+

  Quotes

+
+ +
-
-
-
-

About us

-



Clique para ver About Us

-
-
+
+
+
+
+

  About us

+



Click here to go to About Us

+
+
- - - - - - - - \ No newline at end of file +
+ diff --git a/frontend/main/src/app/home/home.component.ts b/frontend/main/src/app/home/home.component.ts index 007fef0..0654891 100644 --- a/frontend/main/src/app/home/home.component.ts +++ b/frontend/main/src/app/home/home.component.ts @@ -1,4 +1,6 @@ import { Component, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; +import { RctQtComponent } from '../rct-qt/rct-qt.component'; @Component({ selector: 'app-home', @@ -7,9 +9,57 @@ import { Component, OnInit } from '@angular/core'; }) export class HomeComponent implements OnInit { - constructor() { } + constructor(private router:Router) { } ngOnInit(): void { } + dashboard(){ + this.router.navigateByUrl('dashboard') + } + + clients(){ + this.router.navigateByUrl('users') + } + + carriers(){ + this.router.navigateByUrl('carriers') + } + + register(){ + this.router.navigateByUrl('pack-register') + } + + tracking(){ + this.router.navigateByUrl('pack-track') + } + + finance(){ + this.router.navigateByUrl('finance') + } + + receipt(){ + this.router.navigateByUrl('receipt') + } + + cost(){ + this.router.navigateByUrl('cost') + } + + balance(){ + this.router.navigateByUrl('balance') + } + + shpQt(){ + this.router.navigateByUrl('ship-quote') + } + + rctQt(){ + this.router.navigateByUrl('recent-quote') + } + + about(){ + this.router.navigateByUrl('about') + } + } diff --git a/frontend/main/src/app/insight/insight.component.html b/frontend/main/src/app/insight/insight.component.html index e38985b..ba3ab9d 100644 --- a/frontend/main/src/app/insight/insight.component.html +++ b/frontend/main/src/app/insight/insight.component.html @@ -1 +1,283 @@ -

insight works!

+
+
+ +
+
+

4

+

New Orders

+
+
+ +
+ More info +
+
+ +
+ +
+
+

12%

+

Bounce Rate

+
+
+ +
+ More info +
+
+ +
+ +
+
+

4

+

User Registrations

+
+
+ +
+ More info +
+
+ +
+ +
+
+

15

+

Visitors

+
+
+ +
+ More info +
+
+ +
+ +
+
+

+ + Calendar +

+ +
+ + + + +
+ +
+ +
+ +
+
+
    +
  • +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    September 2022
    SuMoTuWeThFrSa
    28 + 293031123
    4567 + 8910 +
    11 + 121314151617 +
    18 + 192021222324 +
    25 + 26272829301 +
    2 + 345678 +
    +
    + + + +
    +
  • +
  • +
+
+
+
+ +
\ No newline at end of file diff --git a/frontend/main/src/app/login/login.component.css b/frontend/main/src/app/login/login.component.css index eb3d0e7..77b99f4 100644 --- a/frontend/main/src/app/login/login.component.css +++ b/frontend/main/src/app/login/login.component.css @@ -9,7 +9,7 @@ body{ background-color: #1f2029; overflow-x: hidden; } -a { +a{ cursor: pointer; transition: all 200ms linear; } diff --git a/frontend/main/src/app/login/login.component.html b/frontend/main/src/app/login/login.component.html index 7f20a19..a95f153 100644 --- a/frontend/main/src/app/login/login.component.html +++ b/frontend/main/src/app/login/login.component.html @@ -14,15 +14,15 @@
Log In Sign Up

Log In

+ autocomplete="off" [(ngModel)]="user" required (keyup.enter)="submit()" [disabled]="loginService.progress">
+ autocomplete="on" [(ngModel)]="password" required (keyup.enter)="submit()" [disabled]="loginService.progress">
- submit +

Forgot your password?

@@ -33,20 +33,20 @@

Log In

Sign Up

+ autocomplete="on" [(ngModel)]="nameReg" required (keyup.enter)="register()" [disabled]="loginService.progress">
+ autocomplete="on" [(ngModel)]="emailReg" required (keyup.enter)="register()" [disabled]="loginService.progress">
+ autocomplete="on" [(ngModel)]="passwordReg" required (keyup.enter)="register()" [disabled]="loginService.progress">
- submit +
diff --git a/frontend/main/src/app/login/login.component.ts b/frontend/main/src/app/login/login.component.ts index b5bcf16..b55c52f 100644 --- a/frontend/main/src/app/login/login.component.ts +++ b/frontend/main/src/app/login/login.component.ts @@ -17,20 +17,19 @@ export class LoginComponent implements OnInit { user!:string password!:string - constructor(private router:Router, private loginService:LoginserviceService) { } + constructor(private router:Router, public loginService:LoginserviceService) { } ngOnInit(): void { this.loginService.succeed = false + this.loginService.progress = false } submit():void{ if(this.user != null && this.password != null){ - this.loginService.succeed = true - this.router.navigateByUrl('home') this.loginService.logging(this.user, this.password) .pipe( catchError((error)=>{ - return of(['Deu erro parcero é isso', 'tu não vai encontrar detalhe aqui','pode sair já...', error, 'só pq sou teu amigo vou deixar esse error ai']) + return of([error]) }) ) .subscribe((response)=>{ @@ -38,18 +37,29 @@ export class LoginComponent implements OnInit { }); }else{ alert('DIGITE TODOS OS CAMPOS OBRIGATÓRIOS!') + this.loginService.progress = false } } + gotoHome(){ + this.router.navigateByUrl('home') + } + register(){ - if(this.nameReg != null && this.passwordReg != null && this.emailReg != null){ - this.loginService.succeed = true - this.router.navigateByUrl('home') - this.loginService.registering(this.nameReg, this.nameReg, this.passwordReg) + if(this.nameReg != null && this.emailReg != null && this.passwordReg != null){ + this.loginService.registering(this.nameReg, this.emailReg, this.passwordReg) + .pipe( + catchError((error)=>{ + return of(['Deu erro parcero é isso', 'tu não vai encontrar detalhe aqui','pode sair já...', error, 'só pq sou teu amigo vou deixar esse error ai']) + }) + ) + .subscribe((response)=>{ + console.log('Running...', response); + }); }else{ alert('DIGITE TODOS OS CAMPOS OBRIGATÓRIOS!') + this.loginService.progress = false } - } } diff --git a/frontend/main/src/app/loginservice.service.ts b/frontend/main/src/app/loginservice.service.ts index d638c50..13b7fa0 100644 --- a/frontend/main/src/app/loginservice.service.ts +++ b/frontend/main/src/app/loginservice.service.ts @@ -1,31 +1,66 @@ -import { HttpClient } from '@angular/common/http'; +import { HttpClient, HttpHeaders } from '@angular/common/http'; import { Injectable } from '@angular/core'; +import { InjectSetupWrapper } from '@angular/core/testing'; import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router'; import { Observable } from 'rxjs'; +import { LoginComponent } from './login/login.component'; @Injectable({ providedIn: 'root' }) export class LoginserviceService implements CanActivate { - user!:string - TMSLoginAPI:string = "https://imagina-uma-api-bem-daora-aqui.com" - succeed!:boolean + user!: string + TMSLoginAPI: string = "https://randomuser.me/api/?results=1" + succeed!: boolean + progress: boolean = false - constructor(private router:Router, private http:HttpClient) {} + constructor(private router: Router, private http: HttpClient) { } - logging(user:string, password:string){ - this.user = user - return this.http.get(this.TMSLoginAPI+'/'+user+'/'+password) + logging(user: string, password: string) { + this.progress = true + fetch(this.TMSLoginAPI) + .then((resp) => resp.json()) + .then((data) => { + let ranUsers = data.results; + return ranUsers.map((ranUser: any) => { + this.user = `${ranUser.name.first}` + this.succeed = true + new LoginComponent(this.router, this).gotoHome() + }) + }) + .catch((error) => { + console.log(error); + this.progress = false + }) + + return this.http.get(this.TMSLoginAPI + '/' + user + '/' + password) } - registering(user:string, password:string, email:string){ - this.user = user + registering(user: string, password: string, email: string) { + this.progress = true + fetch(this.TMSLoginAPI) + .then((resp) => resp.json()) + .then((data) => { + let ranUsers = data.results; + return ranUsers.map((ranUser: any) => { + this.user = `${ranUser.name.first}` + this.succeed = true + new LoginComponent(this.router, this).gotoHome() + }) + }) + .catch((error) => { + console.log(error); + this.progress = false + }) + + return this.http.get(this.TMSLoginAPI + '/' + user + '/' + password) + } canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree | Observable | Promise { - if(!this.succeed){ + if (!this.succeed) { this.router.navigateByUrl(''); } return this.succeed diff --git a/frontend/main/src/app/packreg/packreg.component.html b/frontend/main/src/app/packreg/packreg.component.html index ed9ef16..a354ee1 100644 --- a/frontend/main/src/app/packreg/packreg.component.html +++ b/frontend/main/src/app/packreg/packreg.component.html @@ -4,12 +4,13 @@ Origem Destino Dimensões - + + @@ -41,8 +42,26 @@ {{register.origem}} {{register.destino}} {{register.dimensao}} - - + + + + + \ No newline at end of file diff --git a/frontend/main/src/app/packreg/packreg.component.ts b/frontend/main/src/app/packreg/packreg.component.ts index c04f7e7..14017ec 100644 --- a/frontend/main/src/app/packreg/packreg.component.ts +++ b/frontend/main/src/app/packreg/packreg.component.ts @@ -27,7 +27,7 @@ dimensao!:string adicionar(){ if(this.cd){ this.registers.push({cd:this.cd, origem:this.origem, destino:this.destino, dimensao:this.dimensao}) - this.cd ="" + this.cd = "" this.origem="" this.destino="" this.dimensao="" diff --git a/frontend/main/src/app/quote.service.spec.ts b/frontend/main/src/app/quote.service.spec.ts new file mode 100644 index 0000000..e6dee4b --- /dev/null +++ b/frontend/main/src/app/quote.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { QuoteService } from './quote.service'; + +describe('QuoteService', () => { + let service: QuoteService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(QuoteService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/frontend/main/src/app/quote.service.ts b/frontend/main/src/app/quote.service.ts new file mode 100644 index 0000000..12e05db --- /dev/null +++ b/frontend/main/src/app/quote.service.ts @@ -0,0 +1,21 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { catchError } from 'rxjs'; +import { ShipQtComponent } from './ship-qt/ship-qt.component'; + +@Injectable({ + providedIn: 'root' +}) +export class QuoteService { + + apiURL:string = 'https://maps.googleapis.com/maps/api/directions/json?origin=' + + constructor(private http: HttpClient) { } + + quote(cepOrigem:string, cepDestino:string):any{ + + return this.http.get(this.apiURL+cepOrigem+'&destination='+cepDestino+'&key=AIzaSyCKNjLUI0d01M0SfoDjIov4vZlR3DprotM') + + } + +} diff --git a/frontend/main/src/app/ship-qt/ship-qt.component.html b/frontend/main/src/app/ship-qt/ship-qt.component.html index 031f43c..59268f7 100644 --- a/frontend/main/src/app/ship-qt/ship-qt.component.html +++ b/frontend/main/src/app/ship-qt/ship-qt.component.html @@ -1 +1,52 @@ -

ship-qt works!

+ + + + + + + + + + + + + + + + + + + +
CEP de origemCEP de destinoComprimento (cm)Largura (cm)Altura (cm)Peso (kg)
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDPreço do fretePrazoTracking codeOrigemDestinoComprimento (cm)Largura (cm)Altura (cm)Peso (kg)
{{i}}R${{quote.precoFrete}}{{quote.tempo}} dias úteis{{quote.trackid}}{{quote.cepOrigem}}{{quote.cepDestino}}{{quote.comprimento}}{{quote.largura}}{{quote.altura}}{{quote.peso}}
diff --git a/frontend/main/src/app/ship-qt/ship-qt.component.ts b/frontend/main/src/app/ship-qt/ship-qt.component.ts index c46aeb1..b8af75f 100644 --- a/frontend/main/src/app/ship-qt/ship-qt.component.ts +++ b/frontend/main/src/app/ship-qt/ship-qt.component.ts @@ -1,4 +1,7 @@ +import { HttpClient } from '@angular/common/http'; import { Component, OnInit } from '@angular/core'; +import { catchError, of } from 'rxjs'; +import { QuoteService } from '../quote.service'; @Component({ selector: 'app-ship-qt', @@ -6,10 +9,39 @@ import { Component, OnInit } from '@angular/core'; styleUrls: ['./ship-qt.component.css'] }) export class ShipQtComponent implements OnInit { + quotes!: Array + cepOrigem!: string + cepDestino!: string + comprimento!: number + largura!: number + altura!: number + peso!: number + precoFrete!: number + tempo!: string + trackid!: string - constructor() { } + constructor(public quoteService:QuoteService) {} ngOnInit(): void { + + //this.quotes.push({ precoFrete: 45.50, tempo: 3, trackid: "BR23154546TR", cepOrigem: 88058086, cepDestino: 88058086, comprimento: 50, largura: 50, altura: 50, peso: 10 }) + //this.quotes.push({ precoFrete: 94.50, tempo: 6, trackid: "BR22315445TR", cepOrigem: 46513265, cepDestino: 65898454, comprimento: 100, largura: 200, altura: 10, peso: 25 }) + + } + + quote() { + + if(this.cepOrigem != null && this.cepDestino != null){ + this.quoteService.quote(this.cepOrigem, this.cepDestino) + .pipe() + .subscribe((response:any) => { + console.log(response); + console.log(response.routes[0].legs[0].duration.text); + }) + }else{ + alert('DIGITE TODOS OS DADOS!') + } + } } diff --git a/frontend/main/src/app/users/users.component.ts b/frontend/main/src/app/users/users.component.ts index f4d47fa..a1c6bbc 100644 --- a/frontend/main/src/app/users/users.component.ts +++ b/frontend/main/src/app/users/users.component.ts @@ -19,18 +19,20 @@ cpf!:string this.users.push({name:"Bruno Roberto", email:"bruno@gmail.com", cpf:"03215415454"}) this.users.push({name:"Cristian Schaufer", email:"cristian@gmail.com", cpf:"03215415454"}) this.users.push({name:"Kalil", email:"kalil@gmail.com", cpf:"03215415454"}) - + } adicionar(){ - if(this.name){ + if(this.name != null && this.email != null && this.cpf != null){ this.users.push({name:this.name, email:this.email, cpf:this.cpf}) - this.name ="" + this.name ="" this.email="" - this.cpf="" + this.cpf="" + }else{ + alert('DIGITE TODOS OS DADOS!') } } - + deletar(index:number){ this.users.splice(index,1) diff --git a/frontend/main/tsconfig.app.json b/frontend/main/tsconfig.app.json index 82d91dc..226adb4 100644 --- a/frontend/main/tsconfig.app.json +++ b/frontend/main/tsconfig.app.json @@ -3,7 +3,9 @@ "extends": "./tsconfig.json", "compilerOptions": { "outDir": "./out-tsc/app", - "types": [] + "types": [ + "node" + ] }, "files": [ "src/main.ts", diff --git a/webpage/assets/HatchfulExport-All/facebook_cover_photo_1.png b/webpage/assets/HatchfulExport-All/facebook_cover_photo_1.png new file mode 100644 index 0000000..161e88f Binary files /dev/null and b/webpage/assets/HatchfulExport-All/facebook_cover_photo_1.png differ diff --git a/webpage/assets/HatchfulExport-All/facebook_cover_photo_2.png b/webpage/assets/HatchfulExport-All/facebook_cover_photo_2.png new file mode 100644 index 0000000..d3f6ac8 Binary files /dev/null and b/webpage/assets/HatchfulExport-All/facebook_cover_photo_2.png differ diff --git a/webpage/assets/HatchfulExport-All/facebook_profile_image.png b/webpage/assets/HatchfulExport-All/facebook_profile_image.png new file mode 100644 index 0000000..0bd92d7 Binary files /dev/null and b/webpage/assets/HatchfulExport-All/facebook_profile_image.png differ diff --git a/webpage/assets/HatchfulExport-All/favicon.ico b/webpage/assets/HatchfulExport-All/favicon.ico new file mode 100644 index 0000000..e62a088 Binary files /dev/null and b/webpage/assets/HatchfulExport-All/favicon.ico differ diff --git a/webpage/assets/HatchfulExport-All/instagram_profile_image.png b/webpage/assets/HatchfulExport-All/instagram_profile_image.png new file mode 100644 index 0000000..045f223 Binary files /dev/null and b/webpage/assets/HatchfulExport-All/instagram_profile_image.png differ diff --git a/webpage/assets/HatchfulExport-All/linkedin_banner_image_1.png b/webpage/assets/HatchfulExport-All/linkedin_banner_image_1.png new file mode 100644 index 0000000..cb11d1b Binary files /dev/null and b/webpage/assets/HatchfulExport-All/linkedin_banner_image_1.png differ diff --git a/webpage/assets/HatchfulExport-All/linkedin_banner_image_2.png b/webpage/assets/HatchfulExport-All/linkedin_banner_image_2.png new file mode 100644 index 0000000..d29fab3 Binary files /dev/null and b/webpage/assets/HatchfulExport-All/linkedin_banner_image_2.png differ diff --git a/webpage/assets/HatchfulExport-All/linkedin_profile_image.png b/webpage/assets/HatchfulExport-All/linkedin_profile_image.png new file mode 100644 index 0000000..045f223 Binary files /dev/null and b/webpage/assets/HatchfulExport-All/linkedin_profile_image.png differ diff --git a/webpage/assets/HatchfulExport-All/logo.png b/webpage/assets/HatchfulExport-All/logo.png new file mode 100644 index 0000000..0bd92d7 Binary files /dev/null and b/webpage/assets/HatchfulExport-All/logo.png differ diff --git a/webpage/assets/HatchfulExport-All/logo_transparent.png b/webpage/assets/HatchfulExport-All/logo_transparent.png new file mode 100644 index 0000000..e2b9134 Binary files /dev/null and b/webpage/assets/HatchfulExport-All/logo_transparent.png differ diff --git a/webpage/assets/HatchfulExport-All/pinterest_board_photo.png b/webpage/assets/HatchfulExport-All/pinterest_board_photo.png new file mode 100644 index 0000000..1852b7a Binary files /dev/null and b/webpage/assets/HatchfulExport-All/pinterest_board_photo.png differ diff --git a/webpage/assets/HatchfulExport-All/pinterest_profile_image.png b/webpage/assets/HatchfulExport-All/pinterest_profile_image.png new file mode 100644 index 0000000..6df41c5 Binary files /dev/null and b/webpage/assets/HatchfulExport-All/pinterest_profile_image.png differ diff --git a/webpage/assets/HatchfulExport-All/twitter_header_photo_1.png b/webpage/assets/HatchfulExport-All/twitter_header_photo_1.png new file mode 100644 index 0000000..cd3cdef Binary files /dev/null and b/webpage/assets/HatchfulExport-All/twitter_header_photo_1.png differ diff --git a/webpage/assets/HatchfulExport-All/twitter_header_photo_2.png b/webpage/assets/HatchfulExport-All/twitter_header_photo_2.png new file mode 100644 index 0000000..9480d83 Binary files /dev/null and b/webpage/assets/HatchfulExport-All/twitter_header_photo_2.png differ diff --git a/webpage/assets/HatchfulExport-All/twitter_profile_image.png b/webpage/assets/HatchfulExport-All/twitter_profile_image.png new file mode 100644 index 0000000..1852b7a Binary files /dev/null and b/webpage/assets/HatchfulExport-All/twitter_profile_image.png differ diff --git a/webpage/assets/HatchfulExport-All/youtube_profile_image.png b/webpage/assets/HatchfulExport-All/youtube_profile_image.png new file mode 100644 index 0000000..1852b7a Binary files /dev/null and b/webpage/assets/HatchfulExport-All/youtube_profile_image.png differ diff --git a/webpage/assets/img/pexels-artem-podrez-5025512.jpg b/webpage/assets/img/pexels-artem-podrez-5025512.jpg new file mode 100644 index 0000000..c843612 Binary files /dev/null and b/webpage/assets/img/pexels-artem-podrez-5025512.jpg differ diff --git a/webpage/assets/img/pexels-karolina-grabowska-4498128.jpg b/webpage/assets/img/pexels-karolina-grabowska-4498128.jpg new file mode 100644 index 0000000..2e80a24 Binary files /dev/null and b/webpage/assets/img/pexels-karolina-grabowska-4498128.jpg differ diff --git a/webpage/assets/img/pexels-karolina-grabowska-4498142.jpg b/webpage/assets/img/pexels-karolina-grabowska-4498142.jpg new file mode 100644 index 0000000..91cea0f Binary files /dev/null and b/webpage/assets/img/pexels-karolina-grabowska-4498142.jpg differ diff --git a/webpage/assets/img/pexels-karolina-grabowska-4506249.jpg b/webpage/assets/img/pexels-karolina-grabowska-4506249.jpg new file mode 100644 index 0000000..f785e7e Binary files /dev/null and b/webpage/assets/img/pexels-karolina-grabowska-4506249.jpg differ diff --git a/webpage/assets/img/pexels-liza-summer-6348097.jpg b/webpage/assets/img/pexels-liza-summer-6348097.jpg new file mode 100644 index 0000000..7372888 Binary files /dev/null and b/webpage/assets/img/pexels-liza-summer-6348097.jpg differ diff --git a/webpage/assets/img/pexels-tima-miroshnichenko-6169178.jpg b/webpage/assets/img/pexels-tima-miroshnichenko-6169178.jpg new file mode 100644 index 0000000..dbe4ae0 Binary files /dev/null and b/webpage/assets/img/pexels-tima-miroshnichenko-6169178.jpg differ diff --git a/webpage/assets/img/pexels-tima-miroshnichenko-6169668.jpg b/webpage/assets/img/pexels-tima-miroshnichenko-6169668.jpg new file mode 100644 index 0000000..2d5bd0d Binary files /dev/null and b/webpage/assets/img/pexels-tima-miroshnichenko-6169668.jpg differ diff --git a/webpage/assets/img/pexels-tima-miroshnichenko-6170154.jpg b/webpage/assets/img/pexels-tima-miroshnichenko-6170154.jpg new file mode 100644 index 0000000..8e02d30 Binary files /dev/null and b/webpage/assets/img/pexels-tima-miroshnichenko-6170154.jpg differ diff --git a/webpage/assets/img/unnamed_14.jpg b/webpage/assets/img/unnamed_14.jpg new file mode 100644 index 0000000..fe69095 Binary files /dev/null and b/webpage/assets/img/unnamed_14.jpg differ diff --git a/webpage/css/styles.css b/webpage/css/styles.css index 42d00e4..0ac4a6c 100644 --- a/webpage/css/styles.css +++ b/webpage/css/styles.css @@ -11410,7 +11410,7 @@ header.masthead { padding-bottom: 6rem; text-align: center; color: #fff; - background-image: url("../assets/img/header-bg.jpg"); + background-image: url("../assets/img/pexels-karolina-grabowska-4506249.jpg"); background-repeat: no-repeat; background-attachment: scroll; background-position: center center; diff --git a/webpage/index.html b/webpage/index.html index 876ffa6..4894b43 100644 --- a/webpage/index.html +++ b/webpage/index.html @@ -5,9 +5,9 @@ - Agency - Start Bootstrap Theme + TMS - Transport Management Service - + @@ -20,7 +20,7 @@