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
- Java 8 – Ensino Didático - Desenvolvimento e Implementação de Aplicações - Sérgio Furgeri
- Tutoria: Kethllen e Mauro Ramos
- 03. Spring Framework - Additional to Java EE CDI
- Tutoria: Matheus Silva Santos
- What is Inversion of Control Containers and the Dependency Injection pattern
- Spring Framework Inversion of Control
- SpringFramework -> http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#beans
- Tutoria: Matheus Silva Santos
- 04. Hibernate Basic Concepts And Examples - Additional to Java EE JPA:
- https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/tutorial.html
- Tutoria: Matheus Silva Santos
- https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/tutorial.html
- 05. Git
- Tutoria: Fellipe Gurgel
- 06. Maven -> http://maven.apache.org/ (goals, usage - command line)
- Tutoria: Fellipe Gurgel
- Build Applications With Maven:
- Tutoria: Fellipe Gurgel
- 07. SQL
Platforms TIC
- Mauro Ramos - http://lattes.cnpq.br/0090146247740439
- Natal Neto - http://lattes.cnpq.br/8832508738840570
- Junit -> http://junit.org/junit4/
Mobile
- Marco Antônio - http://buscatextual.cnpq.br/buscatextual/busca.do
- Gustavo Henrique Garcia Silva - https://br.linkedin.com/in/gustavo-henrique-garcia-silva-40901454/en
- Vitor Oliveira Gomes - https://www.facebook.com/vitorolivg?fref=ts
- MySql
- Android Java
- PHP
- Phonegap
- Javascript
- AngularJS
- Angular Official Reference - https://docs.angularjs.org/api
- Starting Angular JS on video 6 - https://www.youtube.com/playlist?list=PLKvsMn7xWutbSELeX5j8CXF2Lxd2cj19J
- HTML + CSS
OSS - Operating Support System
- Alisson Marques Alvarenga - https://www.facebook.com/alissonmbr?fref=ts
- 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