Giter Site home page Giter Site logo

renaner123 / phillips-bdq Goto Github PK

View Code? Open in Web Editor NEW
1.0 0.0 0.0 9.72 MB

Projeto de um Sistema de banco de questões utilizando Spring Boot Java, API REST, React.JS e Oracle database

License: MIT License

Java 66.79% TypeScript 28.09% CSS 0.28% HTML 0.53% PLSQL 2.75% SCSS 1.56%

phillips-bdq's Introduction

License: MIT

Sistema de banco de questões

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.

Descrição da narrativa

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.

Requisitos gerais do projeto

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.

Requisitos específicos do projeto

  • 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.

Diagramas

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.

Diagrama de classe

Diagrama entidade relacionamento

Design - Visual do Frontend

Prototipos de telas (inicial)

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

Palheta de cores

As cores utilizadas nos protótipos de telas são as seguintes:

Aluno Certificador Professor Certificador
#628f66 - #628f66 #8f628a - #8f628a #7d827d - #7d827d #394139 - #394139
#34733a - #34733a #628f66 - #628f66 #aa9ea9 - #aa9ea9 #665d65 - #665d65
#d9d9d9 - #d9d9d9 #d9d9d9 - #d9d9d9 #628f66 - #628f66 #628f66 - #628f66
#62455e - #62455e #d9d9d9 - #d9d9d9 #d9d9d9 - #d9d9d9

Pré-requisitos do projeto

  • npm (react)
  • Java 17+ (mvn)
  • Oracle Database
  • Docker (Opcional)

Instruções para compilar e executar o projeto

Conexão com o banco de dados

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

Compilar e executar o projeto

  1. Clonar o repositório com o comanbo abaixo:
  git clone https://github.com/giovannicurcuruto/phillips-BdQ.git
  1. 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
  1. Para iniciar o front-end, em um novo terminal, é necessário os seguintes passos:
  cd front-end
  npm install
  npm start
  1. 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.

Roadmap/Backlog/TODO LIST do projeto

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!

Contatos

Renan Rodolfo da Silva

Giovanni Curcuruto

phillips-bdq's People

Contributors

renaner123 avatar giovannicurcuruto avatar dependabot[bot] avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.