Linha 30: Linha 30:


* 03. Spring Framework - Additional to Java EE CDI
* 03. Spring Framework - Additional to Java EE CDI
** What is Inversion of Control Containers and the Dependency Injection pattern
** Tutoria: Matheus Silva Santos
*** http://www.martinfowler.com/articles/injection.html
*** What is Inversion of Control Containers and the Dependency Injection pattern
** Spring Framework Inversion of Control
**** http://www.martinfowler.com/articles/injection.html
*** http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html
*** Spring Framework Inversion of Control
** SpringFramework -> http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#beans  
**** http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html
*** -> Spring MVC -> http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc
*** SpringFramework -> http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#beans  
*** -> Spring Boot -> http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/
**** -> Spring MVC -> http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc
**** -> Spring Boot -> http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/




* 04. Hibernate Basic Concepts And Examples - Additional to Java EE JPA:
* 04. Hibernate Basic Concepts And Examples - Additional to Java EE JPA:
** https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/tutorial.html
** https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/tutorial.html
*** Tutoria: Matheus Silva Santos




* 05. Git
* 05. Git
** Tutoria: Fellipe Gurgel




* 06. Maven -> http://maven.apache.org/ (goals, usage - command line)
* 06. Maven -> http://maven.apache.org/ (goals, usage - command line)
** Build Applications With Maven:
** Tutoria: Fellipe Gurgel
*** http://tutorials.jenkov.com/maven/maven-tutorial.html
*** Build Applications With Maven:
**** http://tutorials.jenkov.com/maven/maven-tutorial.html
<br>
<br>



Edição das 17h30min de 27 de janeiro de 2017

Formation Plan


Common Level


  • 01. Linux -> Basic
    • Tutoria: Josiane
  • 02. Java8 -> Give a look (lambdas, streams)
    • Tutoria: Kethllen e Mauro Ramos
      • Java OO - Oriented Programing
      • JavaEE 6 and/or 7
        • JPA ("Hibernate")
        • CDI ("Spring", Tools for Dependency Injection)
        • JTA
        • EJB
        • Java Servlet
        • JAX-RS (Restful)
        • JMX (Monitoring)
        • JSF (Desirable)
    • Books:
      • Java 8 – Ensino Didático - Desenvolvimento e Implementação de Aplicações - Sérgio Furgeri
        • Clean Code - A Handbook of Agile Software Craftsman - Robert C. Martin
        • Effective Java (2nd Edition) - Joshua Bloch
        • Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers)
        • Growing Object-Oriented Software, Guided by Tests - Steve Freeman e Nat Pryce
      • Good Practices




  • 05. Git
    • Tutoria: Fellipe Gurgel



  • 07. SQL

B2C - Business To Consumer



Platforms TIC



Mobile



OSS - Operating Support System


  • FlyWay
  • JaxRS
  • JPA - Hibernate
  • Apache DeltaSpike
  • WildFly
  • AngularJS
  • NPM
  • Bower
  • Gulp


Desafios

  • Desafio 1


O primeiro desafio tem como objetivo o estudo das ferramentas: JAVA 8, Json, Spring Boot, Spring MVC, Maven e GitHub.

A tarefa desse desafio é construir uma aplicação Rest com JSON e JAVA8, utilizando Spring boot e Spring MVC. Essa aplicação terá 3 serviços expostos, são eles:

1º - Serviço que recebe um objeto via JSON e guarda o mesmo em memória (não precisa ser persistente).

2º - Serviço que recebe uma requisição GET com o parâmetro "nome" e retorna o objeto correspondente em JSON.

3º - Serviço que recebe uma requisição GET com o parâmetro "cpf" e retorna o objeto correspondente em JSON.

É solicitado também que o projeto seja inserido no GitHub.

Segue abaixo as entradas e saídas esperadas para cada serviço:

Serviço 1 -

Method: POST

Entrada:

{

"nome": "Joao",
"cpf": "05425687435",
"idade": 23,
"sexo":' M'

}

Saída:

{

"Status": 0 //0 Sucesso e 1 falha

}

Serviço 2 -

Method: GET

Entrada: nome. Ex: {URL}/?nome=Joao

Saída:

{

"nome": "Joao",
"cpf": "05425687435",
"idade": 23,
"sexo":' M'

}

Serviço 3 -

Method: GET

Entrada: cpf. Ex: {URL}/?cpf=05425687435

Saída:

{

"nome": "Joao",
"cpf": "05425687435",
"idade": 23,
"sexo":' M'

}

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  • Desafio 2

Este desafio tem como objetivo o estudo das ferramentas: JAVA 8, Json, Spring Boot, Spring MVC, Maven, GitHub, JDBC, MySql, Angular JS e HTML.

Criar um CRUD (create, read, update, delete) básico entre duas entidades, FUNCIONÁRIO e DEPARTAMENTO, onde um funcionário pode estar em um departamento e um departamento pode ter vários funcionários.


No Front end deve ser possível:

  • Cadastrar, editar e excluir funcionário e departamento;
  • Listar todos funcionários e seu respectivo departamento;
  • Listar todos funcionário de um departamento;
  • Listar as informações do funcionário bem como as informações do departamento;


Também é solicitado que no Front end utilize-se :

  • O modelo MVC com Spring MVC para integrar com o back end;
  • AngularJS;
  • Spring Boot.


No Back end é solicitado utilizar:

  • O modelo MVC com Spring MVC para integrar com o front end;
  • JDBC para persistência (banco de dados);
  • Mysql como SGBD;
  • Spring Boot.


A criação do DER (diagrama entidade-relacionamento) é opcional. Abaixo segue o mínimo que se espera em cada entidade:

- FUNCIONÁRIO

  • Código
  • Nome
  • Cargo
  • Idade


- DEPARTAMENTO

  • Código
  • Nome