An open API service indexing awesome lists of open source software.

https://github.com/cesarvasconcelos/p3

Códigos produzidos nas aulas de Programação III - IFPB Campus CG
https://github.com/cesarvasconcelos/p3

java springframework

Last synced: 8 months ago
JSON representation

Códigos produzidos nas aulas de Programação III - IFPB Campus CG

Awesome Lists containing this project

README

          

# IFPB - Programação III

Instituto Federal de Educação, Ciência e Tecnologia da Paraíba - IFPB - *Campus*
CG / PB

**Disciplina**: Programação III.

Neste repositório, encontram-se exemplos de código utilizados em sala de aula.
Os códigos não devem ser usados como único material de referência para estudo.
Há trechos de códigos incompletos, com erros e/ou outros problemas de
implementação, os quais devem ser analisados pelo aluno como exercício de
programação.

## Objetivos de aprendizado

- Como projetar e implementar aplicações Web coorporativas usando framework Spring
- Implementar o front-end e back-end de uma aplicação Web típica
- Operações CRUD, submissão de formulários HTML, validação e integração com banco de dados
- Spring ecossistema: Spring Web MVC, Spring Integration, Spring Testing, Spring Boot, Spring
Data/JPA, Spring Security and Spring AOP
- No Spring Security, como realizar autenticação com login, gerência de sessões e autorização baseada em privilégios
- Discutir boas práticas no projeto de aplicações orientadas a microserviços
- Construir REST APIs e Aplicações Web com Spring MVC, Thymeleaf, Bootstrap CSS
- Persistência em banco de dados usando Spring Data JDBC/JPA, MySQL/MariaDB, Flyway
- Como utilizar ORM Frameworks (e.g., Hibernate)
- Setup do desenvolvimento local com Docker, Docker Compose e Testcontainers
- Usar o JUnit5, AssertJ, Mockito para testes

## Material de Referência

Os principais materiais de estudo usados na disciplina são os seguintes livros: [Spring Start
Here](https://www.manning.com/books/spring-start-here) e [Use a Cabeça! HTML e
CSS](https://www.amazon.com.br/Use-Cabe%C3%A7a-HTML-Eric-Freeman/dp/8576088622).
Outras fontes de leitura serão indicadas pelo professor.

As documentações oficiais:

- [Spring Website](https://spring.io/)
- [Spring Projects](https://spring.io/projects)
- [Spring Framework Javadoc API](https://docs.spring.io/spring-framework/docs/current/javadoc-api/)
- [HTML Reference](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference)
- [CSS Reference](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference)
- [Thymeleaf](https://www.thymeleaf.org/)

Outros links:

- [Spring initializr](https://start.spring.io/) para gerar projetos. Alternativamente, pode-se usar
o comando `spring init` via linha de comando (instalável via [SDKMAN](https://sdkman.io/)) com
parâmetros como, por exemplo:
```bash
spring init \
--name=my-web-app \
--groupId=com.example \
--artifactId=my-web-app \
--package-name=com.example.mywebapp \
--dependencies=web,security,data-jpa,mariadb,docker-compose,testcontainers,thymeleaf,validation,flyway \
--java-version=21 \
--packaging=jar \
--version=0.0.1-SNAPSHOT \
--boot-version=3.5.6 \
--build=maven \
my-web-app
```

## Suporte ferramental básico

- Um navegador (Firefox, Brave, Google Chrome, Opera, Safari, etc.)
- Uma distribuição OpenJDK (e.g., [Amazon Correto](https://aws.amazon.com/corretto/)) - pode ser instalada via [SDKMAN](https://sdkman.io/)
- [IntelliJ IDEA](https://www.jetbrains.com/idea/)
- [Apache Maven](https://maven.apache.org/)
- [Docker Desktop](https://docs.docker.com/get-started/get-docker/)
- Um editor de texto (e.g., [Visual Studio Code](https://code.visualstudio.com/) ou [TRAE](https://trae.ai/))
- Spring Boot CLI (instalável via [SDKMAN](https://sdkman.io/)) para usar o comando `spring init`
- Algumas [extensões](https://marketplace.visualstudio.com/vscode) do Visual Studio Code, que serão sugeridas pelo professor.

## Este repositório

Pode-se obter apenas os [códigos](https://github.com/cesarvasconcelos/daweb1/archive/master.zip) ou, alternativamente, utilizar o [Git](https://git-scm.com/) para clonar todo o repositório funcional e seu histórico de versões:

```
$ git clone https://github.com/cesarvasconcelos/p3.git
```

## Autor

* **Prof. Dr. César Vasconcelos (cesarocha@ifpb.edu.br)** - [GitHub Page](https://github.com/cesarvasconcelos)