Repositório da disciplina Fundamentos de Programação Back-End Turma 6.
Leituras preparatórias para a disciplina:
- O que é Java? (Alura): https://www.alura.com.br/apostila-java-orientacao-objetos/o-que-e-java
- Iniciando na linguagem Java (DevMedia): https://www.devmedia.com.br/iniciando-na-linguagem-java/21136
As leituras indicadas são um pouco antigas, mas continuam sendo excelentes textos de introdução à linguagem Java. Portanto, desconsidere trechos que envolvam termos como "hoje", "atualmente", etc.
O código produzido em sala de aula, e compartilhado neste repositório, pode ser atualizado em seu repositório local com o comando:
git pull
No entando, se você fez alterações no seu repositório local, o comando acima pode gerar conflitos. Para evitar lidar com isso, você pode forçar uma atualização com o repositório remoto por meio dos comandos:
git fetch origin
git reset --hard origin/main
O primeiro comando recebe as atualizações mais recentes do repositório remoto, e o segundo descarta todas as alterações locais e atualiza com o histórico mais recente do repositório remoto (branch main).
- Jakarta Server Pages Specification: https://jakarta.ee/specifications/pages/3.1/jakarta-server-pages-spec-3.1.html
- Jakarta Servlet Specification: https://jakarta.ee/specifications/servlet/6.0/jakarta-servlet-spec-6.0.html
- Apostila Java e Orientação a Objetos (Caelum/Alura): https://www.alura.com.br/apostila-java-orientacao-objetos
- Apostila Java para Desenvolvimento Web (Caelum/Alura): https://www.alura.com.br/apostila-java-web
- Baeldung: https://www.baeldung.com/
- Java Tutorial (VS Code): https://code.visualstudio.com/docs/java/java-tutorial
- Visual Studio Code
- Extension Pack for Java (Extensão do VS Code)
- Java Server Pages - JSP (Extensão do VS Code)
- XML (Extensão do VS Code)
- Git
- JDK 17
- Verificar versão do JDK instalada:
javac -version
- https://download.oracle.com/java/17/latest/jdk-17_windows-x64_bin.msi
- Criar a variável de ambiente JAVA_HOME configurada para o diretório de instalação do JDK. Exemplo: “C:\Program Files\Java\jdk-17”.
- Adicionar “%JAVA_HOME%\bin” na variável de ambiente PATH.
- Tutorial de configuração: https://mkyong.com/java/how-to-set-java_home-on-windows-10/
- Verificar versão do JDK instalada:
- Maven
- Verificar versão do Maven instalada:
mvn -version
- https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.zip
- Adicionar o diretório de instalação do Maven na variável de ambiente PATH. Exemplo: “C: apache maven bin”.
- Tutorial de instalação: https://mkyong.com/maven/how-to-install-maven-in-windows/
- Verificar versão do Maven instalada:
- Apache Tomcat 10
- Verifique se o Tomcat está instalado e funcionando:
- Localize o aplicativo Monitor Tomcat.
- Acesse a URL http://localhost:8080, que deve exibir uma página indicando que o Tomcat está funcionando.
- Link para download: https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.13/bin/apache-tomcat-10.1.13.exe
- Tutorial de instalação
- Verifique se o Tomcat está instalado e funcionando:
- MySQL
- Verificar se o MySQL está funcionando:
mysql -u root -p
- Tentar acessar com senha em branco ou senha igual ao nome de usuário (root).
- Tutorial para resetar a senha de root: https://dev.mysql.com/doc/mysql-windows-excerpt/8.0/en/resetting-permissions-windows.html
- Link para download: https://dev.mysql.com/downloads/file/?id=516927
- Tutorial de instalação
- Para criação do banco e importação de dados, a partir do diretório sql, executar os comandos:
mysql -u root -p < sgcm.sql
mysql -u root -p sgcm < dados.sql
- Verificar se o MySQL está funcionando:
A demonstração de uso das ferramentas e tecnologias abordadas na capacitação é baseada em um projeto de exemplo, o SGCM. A documentação básica deste projeto está disponível em outro repositório e aborda os seguintes tópicos:
- Principais funcionalidades
- Histórias de usuário
- Diagrama de Classes
- Diagrama Entidade Relacionamento
- [INDIVIDUAL] Crie uma classe chamada
GerenciadorAlunos
. Dentro dessa classe, declare um ArrayList chamado alunos.
-
Implemente um método chamado adicionarAluno(String nome) que adiciona um nome de aluno à lista. Ao adicionar, o método deve verificar se o aluno já existe na lista.
-
Crie um método chamado removerAluno(String nome) que remove o aluno da lista pelo nome. Caso o nome não seja encontrado, exiba uma mensagem apropriada.
-
Implemente um método chamado atualizarAluno(String nomeAntigo, String nomeNovo) que busca o nome de um aluno na lista e o atualiza. Se o nome não for encontrado, exiba uma mensagem de erro.
-
Crie um método chamado listarAlunos() que imprime todos os alunos armazenados na lista em ordem alfabética.
-
Implemente um método chamado buscarAluno(String nome) que verifica se o aluno existe na lista. O método deve retornar uma mensagem dizendo se o aluno foi encontrado ou não.
-
Adicione um método chamado obterQuantidadeDeAlunos() que retorna o número total de alunos na lista.
-
Crie um método chamado limparLista() que remove todos os alunos da lista.
-
Usando Orientação a Objetos, modifique o programa para que, além do nome, cada aluno tenha um número de matrícula e os todos os métodos anteriores continuem funcionando.
-
Link de entrega: https://classroom.github.com/a/hazTxHsm
-
Data: 25/09/2024 até 16h
- [INDIVIDUAL] Finalizar as classes
UnidadeDao
eProfissionalDao
de forma semelhante à classeEspecialideDao
implementando todos os métodos da interface IDao.
- Link de Entrega: https://classroom.github.com/a/mskPBsaE
- Data: 27/09/2024 até 16h
- [GRUPO] Construir páginas JSP (e todas as demais classes e métodos Java necessários) para cadastro de convênios, unidades, profissionais, pacientes e usuários, de forma semelhante à página de especialidades, e baseado na documentação do SGCM.
-
Na classe que representa o paciente, os atributos
grupo sanguíneo
esexo
devem ser de um tipo abstrato construído com a utilização de Enums. -
Também deve ser usado Enum para o atributo
papel
do usuário, que deverá ter ao menos duas opções:ADMIN
eATENDENTE
. -
Em relação ao cadastro de usuário, não é necessário implementar nenhum tipo de encriptação para senha. No entanto, no formulário deve ser utilizado o elemento HTML adequado ao tipo do campo.
-
Página de Pacientes (Equipe 1 - Valmir, Wanderson, Ismael, Wesley)
-
Página de Profissionais (Equipe 6 - Mateus, Rafael, John, Brenndo)
-
Página de Atendimentos (Equipe 3 - João Vitor, Marcos Manuares, Isaque)
-
Página de Convênios (Equipe 4 - Gabriel, Kleriston, Esther)
-
Página de Unidades (Equipe 2 - Gleice, Douglas, Willian)
-
Página de Usuários (Equipe 5 - Kelvin, Luis Henrique, Hayssa, Samuel Caldeira)
-
Link de Entrega: https://classroom.github.com/a/fOpBcp0H
-
Data: 03/10/2024 até 16h
- [INDIVIDUAL] Criar uma página (login.jsp) com a funcionalidade de fazer o login do usuário (e todas as demais classes e métodos Java necessários) para redirecionar o mesmo para a página principal do SGCM (index.jsp) que contém apenas o cabeçalho, a navegação e o rodapé.
- Link de Entrega: https://classroom.github.com/a/HujhzP_Z
- Data: 03/10/2024 até 16h