Projeto de compras de passagens aereas Caelum Airlines.
O projeto é composto de uma API Rest desenvolvida em Java com Spring Boot que será consumido por um cliente desenvolvido em NodeJS com Next.JS
O projeto tem como objetivo simular o dia a dia em um projeto real.
Para gerenciar as "demandas" usaremos um trello como nosso kanban, e algumas das funcionalidade iniciais já estarão implementadas.
1. Intro sobre mudanças em projetos de forma segura
2. Controle de versão com **Git** e utilização de repositório central com **Github**
3. Gestão de dependências e Build LifeCycle com **Maven** e **NPM**
4. Garantindo que o projeto continue funcionando com **Testes**
4.1 Teste Unitário com **JUnit** e **Jest**
4.2 Teste de Integração **Spring Boot Test** e **Enzyme**
4.3 Teste de aceitação **Spring Boot Test** e **Cypress**
4.4 Pirâmide de Teste
4.5 TDD
4.6 BDD
4.7 Teste de contratos com **Spring Cloud Contract** e **Jest**
4.8 Cobertura de teste com **Jacoco** e **Jest**
5. Automação de build
5.1 Makefile
5.2 Docker
5.2.1 Utilizando o Docker para dependências
5.2.1.2 Imagem
5.2.1.3 Container
5.2.1.4 Volume
5.2.1.5 Network
5.2.2 Dockerfile
5.2.3 Docker Compose
6. Deployando a aplicação
6.1 Heroku
6.2 Usando Docker para deployar a aplicação
6.3 Garantindo que o código não quebre através de Pipelines
6.4 CI **Travis CI**
6.5 CD **Travis CI** e **Heroku Deploy**
1. Cadastro de localização dos aeroportos (podemos deixar pronto mas é uma boa feature para que os alunos se familiarizem com o projeto)
2. Cadastro de Voos (Complexa por questões de conflitos com outros voos)
3. Cadastro de passagens (Complexa pois tem que controlar quantos já foram vendidas e quantos faltam)
4. Busca de passagens (Busca por data e/ou por localização e/ou aeroportos)
5. Compra da passagem (Processo padrão de checkout)