Esse repositório contém o código do projeto final escolhido para entrega para finalizar o curso Formação em desenvolvimento WEB - 2023.1 realizado pelo Polo de Inovação IFCE com o apoio da Philips. O arquivo utilizado na apresentação do projeto está disponível aqui.
Para elaboração do projeto, foi estipulado a seguinte descrição pelo corpo docente:
O Banco de questões deve permitir visualizar, filtrar, selecionar, e gerar provas com as questões classificadas das principais matérias e atualizadas constantemente. Nele, os atores Alunos, professores e certificadores (um tipo específico de professor) constroem, avaliam e testam materiais e questões.
O sistema é dividido em quatro partes, todas independentes entre si, e que permitam a interação entre professores e alunos. O primeiro módulo gerencia e armazena questões. As questões armazenadas não ficam disponíveis de imediato para compor as provas. É necessário que passem por uma moderação por certificadores (professores que no seu perfil estejam alinhados com o assunto da questão) para que as mesmas possam compor as provas no sistema. O segundo módulo elabora as provas com base em parâmetros indicados pelo aluno, de forma aleatória (questões e itens) e armazena a estrutura da prova com a sua respectiva pontuação. Observe que este segundo módulo somente monta a prova. O terceiro módulo é o de aplicação de provas propriamente dito. E o último módulo é um módulo de estatísticas e desempenho de aluno que também indica materiais da curadoria para consumo.
Ademais, o primeiro módulo, o de armazenamento de questões, também é responsável por ter funções de busca com bases nos filtros das questões.
Para avaliação do desenvolvimento do projeto, os seguintes requisitos mínimos deveriam ser atendidos.
- Precisa ter uma página inicial institucional estática, a página inicial;
- Demais páginas precisam ser dinâmicas e abordar os casos de uso;
- Ser responsivo, ter pontos de quebra para celular e Desktop;
- Identidade visual com palheta de cores (até 05) e fontes;
- Possuir controle de acesso de usuários;
- Ter entre 05 e 10 componentes distintos do Bootstrap. Entende-se como componentes tudo da seção Components;
- Diagrama Entidade-Relacionamento do banco de dados;
- O sistema precisa ter autenticação de usuários.
- Fazer cadastro de aluno, professores e certificadores;
- Professores cadastram questões de escolha única, múltipla escolha;
- Professores podem cadastrar material de estudo (PDFs);
- Professores podem enviar para certificação questões e materiais de estudo;
- Alunos podem baixar material de estudo;
- Alunos podem responder provas geradas com base nos assuntos de interesse;
- Alunos podem acessar seu desempenho;
- Certificadores podem aprovar ou desaprovar questões e materiais de estudo;
- É possível classificar as questões e materiais por categorias (tags) e fazer busca dos mesmos no sistema; Mostrar materiais e assuntos mais acessados.
Os seguintes diagramas são a versão definida inicialmente para modelagem do projeto. Não está fidedigno com a implementação. Será atualizado posteriormente.
Foi utilizado o Figma para criar alguns modelos de telas bem simplificados para termos uma base inicial.
No diretório telas
, é possível visualizar todas as telas em um único PDF. Para acessar diretamente o arquivo, basta clicar aqui.
Também é possível acessar os protótipos diretamente pelo Figma através do link: https://www.figma.com/file/CkA8G5aU1pIcOs4t75UNZd/Untitled?node-id=0%3A1&t=LTUyff4CvEg1euWd-1
As cores utilizadas nos protótipos de telas são as seguintes:
Aluno | Certificador | Professor | Certificador |
---|---|---|---|
#628f66 |
#8f628a |
#7d827d |
#394139 |
#34733a |
#628f66 |
#aa9ea9 |
#665d65 |
#d9d9d9 |
#d9d9d9 |
#628f66 |
#628f66 |
#62455e |
#d9d9d9 |
#d9d9d9 |
- npm (react)
- Java 17+ (mvn)
- Oracle Database
- Docker (Opcional)
Subir o Oracle database utilizando Docker images
Caso tenha o banco de dados instalado na máquina, não é necessário usar o Docker
docker run -d -p 1521:1521 -e ORACLE_PASSWORD=<password> -v <pwd>:/opt/oracle/oradata gvenzl/oracle-xe
Após a primeira inicialização, é recomendado resetar o password do usuário SYS
e SYSTEM
conforme passo abaixo
docker exec <container ID> resetPassword <password>
Caso queria usar uma ferramenta de gerenciamento de banco de dados, pode se utilizar o Oracle SQL Developer.
A configuração para a aplicação acessar o banco de dados deve ser feita no arquivo application.properties conforme o exemplo abaixo:
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.database-platform=org.hibernate.dialect.Oracle12cDialect
spring.jpa.hibernate.ddl-auto=create
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe
spring.datasource.username=youruser
spring.datasource.password=yourpassword
É recomendado criar um novo usuário para rodar a aplicação, ao invés de usar o usuário padrão SYSTEM
- Clonar o repositório com o comanbo abaixo:
git clone https://github.com/giovannicurcuruto/phillips-BdQ.git
- Para iniciar o back-end é necessário os seguintes passos:
cd back-end
mvn clean install
java -jar target/banco-questoes-0.0.1-SNAPSHOT.jar
- Para iniciar o front-end, em um novo terminal, é necessário os seguintes passos:
cd front-end
npm install
npm start
- Após a instalação/execução, as seguintes URLs estarão disponíveis para serem acessadas.
Application | URL | Credentials |
---|---|---|
back-end | http://localhost:8080/swagger-ui.html | renan/123 , giovani/123 ou criar um novo |
front-end | http://localhost:3000 | renan/123 , giovani/123 ou criar um novo |
O projeto utiliza a biblioteca springdoc-openapi para documentação da API.
Criamos um quadro no Trello, para controlar e planejar nossas demandas para projetarmos e prospectarmos de maneira mais eficiente nossas atividades. A nossa "metodologia Agil"/Kanban/Scrum está disponível aqui!