From d64209bdaa37c18dccf9bfafce357cbd14ce9dfb Mon Sep 17 00:00:00 2001 From: paradoxset <49482648+paradoxset@users.noreply.github.com> Date: Mon, 17 Nov 2025 23:17:44 -0300 Subject: [PATCH 01/16] ModeloER.svg --- Diagrama sem nome.drawio.svg | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 Diagrama sem nome.drawio.svg diff --git a/Diagrama sem nome.drawio.svg b/Diagrama sem nome.drawio.svg new file mode 100644 index 0000000000..09891b40b5 --- /dev/null +++ b/Diagrama sem nome.drawio.svg @@ -0,0 +1,4 @@ + + + +
USUARIOS
USUARIOS
PK
PK
id_usuario
id_usuario
char_usuario
char_usuario
char_email
char_email
char_senha
char_senha
num_tipo
num_tipo
DISCIPLINAS
DISCIPLINAS
PK
PK
id_disciplina
id_disciplina
char_disciplina
char_disciplina
TURMAS
TURMAS
PK
PK
id_turma
id_turma
FK
FK
id_disciplina
id_disciplina
FK
FK
id_professor
id_professor
char_mnemonico_turma
char_mnemonico_turma
char_semestre
char_semestre
char_horario
char_horario
MATRICULA
MATRICULA
FK
FK
id_aluno
id_aluno
FK
FK
id_turma
id_turma
FORMULARIOS
FORMULARIOS
PK
PK
id_formulario
id_formulario
FK
FK
id_professor
id_professor
char_titulo
char_titulo
PERGUNTAS
PERGUNTAS
PK
PK
id_pergunta
id_pergunta
FK
FK
id_formulario
id_formulario
char_enunciado
char_enunciado
num_tipo
num_tipo
num_ordem
num_ordem
OPCOES
OPCOES
PK
PK
id_opcao
id_opcao
FK
FK
id_pergunta
id_pergunta
char_texto_opcao
char_texto_opcao
num_ordem
num_ordem
RESPOSTAS
RESPOSTAS
PK
PK
id_resposta
id_resposta
FK
FK
id_atribuicao
id_atribuicao
FK
FK
id_aluno
id_aluno
time_envio
time_envio
unique_restricao
unique_restricao
ITEMRESPOSTATEXTO
ITEMRESPOSTATEXTO
FK
FK
id_pergunta
id_pergunta
FK
FK
id_resposta
id_resposta
char_valor_texto
char_valor_texto
ITEMRESPOSTAOPCAO
ITEMRESPOSTAOPCAO
FK
FK
id_pergunta
id_pergunta
FK
FK
id_resposta
id_resposta
FK
FK
id_opcao
id_opcao
1,N
1,N
Ministra(usuário professor)
Ministra(usuário pro...
0.1
0.1
inscreve(usuário aluno)
inscreve(usuário alu...
0,N
0,N
0,N
0,N
Cria(usuário professor)
Cria(usuário profess...
0.N
0.N
1,1
1,1
Composto
Composto
1,N
1,N
1,1
1,1
ATRIBUICAOFORMULARIO
ATRIBUICAOFORMULARIO
PK
PK
id_atribuicao
id_atribuicao
FK
FK
id_formulario
id_formulario
FK
FK
id_turma
id_turma
time_abertura
time_abertura
time_fechamento
time_fechamento
num_status
num_status
Tem(para múltipla escolha)
Tem(para múltipla es...
1,N
1,N
1,1
1,1
Text is not SVG - cannot display
\ No newline at end of file From bafd357df63f979a5f735ba4a09357560491e0f9 Mon Sep 17 00:00:00 2001 From: paradoxset <49482648+paradoxset@users.noreply.github.com> Date: Mon, 17 Nov 2025 23:18:44 -0300 Subject: [PATCH 02/16] Rename diagram file to DiagramaER.svg --- Diagrama sem nome.drawio.svg => DiagramaER.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename Diagrama sem nome.drawio.svg => DiagramaER.svg (99%) diff --git a/Diagrama sem nome.drawio.svg b/DiagramaER.svg similarity index 99% rename from Diagrama sem nome.drawio.svg rename to DiagramaER.svg index 09891b40b5..4a956a42a2 100644 --- a/Diagrama sem nome.drawio.svg +++ b/DiagramaER.svg @@ -1,4 +1,4 @@ -
USUARIOS
USUARIOS
PK
PK
id_usuario
id_usuario
char_usuario
char_usuario
char_email
char_email
char_senha
char_senha
num_tipo
num_tipo
DISCIPLINAS
DISCIPLINAS
PK
PK
id_disciplina
id_disciplina
char_disciplina
char_disciplina
TURMAS
TURMAS
PK
PK
id_turma
id_turma
FK
FK
id_disciplina
id_disciplina
FK
FK
id_professor
id_professor
char_mnemonico_turma
char_mnemonico_turma
char_semestre
char_semestre
char_horario
char_horario
MATRICULA
MATRICULA
FK
FK
id_aluno
id_aluno
FK
FK
id_turma
id_turma
FORMULARIOS
FORMULARIOS
PK
PK
id_formulario
id_formulario
FK
FK
id_professor
id_professor
char_titulo
char_titulo
PERGUNTAS
PERGUNTAS
PK
PK
id_pergunta
id_pergunta
FK
FK
id_formulario
id_formulario
char_enunciado
char_enunciado
num_tipo
num_tipo
num_ordem
num_ordem
OPCOES
OPCOES
PK
PK
id_opcao
id_opcao
FK
FK
id_pergunta
id_pergunta
char_texto_opcao
char_texto_opcao
num_ordem
num_ordem
RESPOSTAS
RESPOSTAS
PK
PK
id_resposta
id_resposta
FK
FK
id_atribuicao
id_atribuicao
FK
FK
id_aluno
id_aluno
time_envio
time_envio
unique_restricao
unique_restricao
ITEMRESPOSTATEXTO
ITEMRESPOSTATEXTO
FK
FK
id_pergunta
id_pergunta
FK
FK
id_resposta
id_resposta
char_valor_texto
char_valor_texto
ITEMRESPOSTAOPCAO
ITEMRESPOSTAOPCAO
FK
FK
id_pergunta
id_pergunta
FK
FK
id_resposta
id_resposta
FK
FK
id_opcao
id_opcao
1,N
1,N
Ministra(usuário professor)
Ministra(usuário pro...
0.1
0.1
inscreve(usuário aluno)
inscreve(usuário alu...
0,N
0,N
0,N
0,N
Cria(usuário professor)
Cria(usuário profess...
0.N
0.N
1,1
1,1
Composto
Composto
1,N
1,N
1,1
1,1
ATRIBUICAOFORMULARIO
ATRIBUICAOFORMULARIO
PK
PK
id_atribuicao
id_atribuicao
FK
FK
id_formulario
id_formulario
FK
FK
id_turma
id_turma
time_abertura
time_abertura
time_fechamento
time_fechamento
num_status
num_status
Tem(para múltipla escolha)
Tem(para múltipla es...
1,N
1,N
1,1
1,1
Text is not SVG - cannot display
\ No newline at end of file +
USUARIOS
USUARIOS
PK
PK
id_usuario
id_usuario
char_usuario
char_usuario
char_email
char_email
char_senha
char_senha
num_tipo
num_tipo
DISCIPLINAS
DISCIPLINAS
PK
PK
id_disciplina
id_disciplina
char_disciplina
char_disciplina
TURMAS
TURMAS
PK
PK
id_turma
id_turma
FK
FK
id_disciplina
id_disciplina
FK
FK
id_professor
id_professor
char_mnemonico_turma
char_mnemonico_turma
char_semestre
char_semestre
char_horario
char_horario
MATRICULA
MATRICULA
FK
FK
id_aluno
id_aluno
FK
FK
id_turma
id_turma
FORMULARIOS
FORMULARIOS
PK
PK
id_formulario
id_formulario
FK
FK
id_professor
id_professor
char_titulo
char_titulo
PERGUNTAS
PERGUNTAS
PK
PK
id_pergunta
id_pergunta
FK
FK
id_formulario
id_formulario
char_enunciado
char_enunciado
num_tipo
num_tipo
num_ordem
num_ordem
OPCOES
OPCOES
PK
PK
id_opcao
id_opcao
FK
FK
id_pergunta
id_pergunta
char_texto_opcao
char_texto_opcao
num_ordem
num_ordem
RESPOSTAS
RESPOSTAS
PK
PK
id_resposta
id_resposta
FK
FK
id_atribuicao
id_atribuicao
FK
FK
id_aluno
id_aluno
time_envio
time_envio
unique_restricao
unique_restricao
ITEMRESPOSTATEXTO
ITEMRESPOSTATEXTO
FK
FK
id_pergunta
id_pergunta
FK
FK
id_resposta
id_resposta
char_valor_texto
char_valor_texto
ITEMRESPOSTAOPCAO
ITEMRESPOSTAOPCAO
FK
FK
id_pergunta
id_pergunta
FK
FK
id_resposta
id_resposta
FK
FK
id_opcao
id_opcao
1,N
1,N
Ministra(usuário professor)
Ministra(usuário pro...
0.1
0.1
inscreve(usuário aluno)
inscreve(usuário alu...
0,N
0,N
0,N
0,N
Cria(usuário professor)
Cria(usuário profess...
0.N
0.N
1,1
1,1
Composto
Composto
1,N
1,N
1,1
1,1
ATRIBUICAOFORMULARIO
ATRIBUICAOFORMULARIO
PK
PK
id_atribuicao
id_atribuicao
FK
FK
id_formulario
id_formulario
FK
FK
id_turma
id_turma
time_abertura
time_abertura
time_fechamento
time_fechamento
num_status
num_status
Tem(para múltipla escolha)
Tem(para múltipla es...
1,N
1,N
1,1
1,1
Text is not SVG - cannot display
From 8627d57a112b877987fd296403221f852382335f Mon Sep 17 00:00:00 2001 From: paradoxset <49482648+paradoxset@users.noreply.github.com> Date: Mon, 17 Nov 2025 23:19:23 -0300 Subject: [PATCH 03/16] Adicionado DiagramaER.svg --- DiagramaER.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DiagramaER.svg b/DiagramaER.svg index 4a956a42a2..976a0cb6ad 100644 --- a/DiagramaER.svg +++ b/DiagramaER.svg @@ -1,4 +1,4 @@ -
USUARIOS
USUARIOS
PK
PK
id_usuario
id_usuario
char_usuario
char_usuario
char_email
char_email
char_senha
char_senha
num_tipo
num_tipo
DISCIPLINAS
DISCIPLINAS
PK
PK
id_disciplina
id_disciplina
char_disciplina
char_disciplina
TURMAS
TURMAS
PK
PK
id_turma
id_turma
FK
FK
id_disciplina
id_disciplina
FK
FK
id_professor
id_professor
char_mnemonico_turma
char_mnemonico_turma
char_semestre
char_semestre
char_horario
char_horario
MATRICULA
MATRICULA
FK
FK
id_aluno
id_aluno
FK
FK
id_turma
id_turma
FORMULARIOS
FORMULARIOS
PK
PK
id_formulario
id_formulario
FK
FK
id_professor
id_professor
char_titulo
char_titulo
PERGUNTAS
PERGUNTAS
PK
PK
id_pergunta
id_pergunta
FK
FK
id_formulario
id_formulario
char_enunciado
char_enunciado
num_tipo
num_tipo
num_ordem
num_ordem
OPCOES
OPCOES
PK
PK
id_opcao
id_opcao
FK
FK
id_pergunta
id_pergunta
char_texto_opcao
char_texto_opcao
num_ordem
num_ordem
RESPOSTAS
RESPOSTAS
PK
PK
id_resposta
id_resposta
FK
FK
id_atribuicao
id_atribuicao
FK
FK
id_aluno
id_aluno
time_envio
time_envio
unique_restricao
unique_restricao
ITEMRESPOSTATEXTO
ITEMRESPOSTATEXTO
FK
FK
id_pergunta
id_pergunta
FK
FK
id_resposta
id_resposta
char_valor_texto
char_valor_texto
ITEMRESPOSTAOPCAO
ITEMRESPOSTAOPCAO
FK
FK
id_pergunta
id_pergunta
FK
FK
id_resposta
id_resposta
FK
FK
id_opcao
id_opcao
1,N
1,N
Ministra(usuário professor)
Ministra(usuário pro...
0.1
0.1
inscreve(usuário aluno)
inscreve(usuário alu...
0,N
0,N
0,N
0,N
Cria(usuário professor)
Cria(usuário profess...
0.N
0.N
1,1
1,1
Composto
Composto
1,N
1,N
1,1
1,1
ATRIBUICAOFORMULARIO
ATRIBUICAOFORMULARIO
PK
PK
id_atribuicao
id_atribuicao
FK
FK
id_formulario
id_formulario
FK
FK
id_turma
id_turma
time_abertura
time_abertura
time_fechamento
time_fechamento
num_status
num_status
Tem(para múltipla escolha)
Tem(para múltipla es...
1,N
1,N
1,1
1,1
Text is not SVG - cannot display
+
USUARIOS
USUARIOS
PK
PK
id_usuario
id_usuario
char_usuario
char_usuario
char_email
char_email
char_senha
char_senha
num_tipo
num_tipo
DISCIPLINAS
DISCIPLINAS
PK
PK
id_disciplina
id_disciplina
char_disciplina
char_disciplina
TURMAS
TURMAS
PK
PK
id_turma
id_turma
FK
FK
id_disciplina
id_disciplina
FK
FK
id_professor
id_professor
char_mnemonico_turma
char_mnemonico_turma
char_semestre
char_semestre
char_horario
char_horario
MATRICULA
MATRICULA
FK
FK
id_aluno
id_aluno
FK
FK
id_turma
id_turma
FORMULARIOS
FORMULARIOS
PK
PK
id_formulario
id_formulario
FK
FK
id_professor
id_professor
char_titulo
char_titulo
PERGUNTAS
PERGUNTAS
PK
PK
id_pergunta
id_pergunta
FK
FK
id_formulario
id_formulario
char_enunciado
char_enunciado
num_tipo
num_tipo
num_ordem
num_ordem
OPCOES
OPCOES
PK
PK
id_opcao
id_opcao
FK
FK
id_pergunta
id_pergunta
char_texto_opcao
char_texto_opcao
num_ordem
num_ordem
RESPOSTAS
RESPOSTAS
PK
PK
id_resposta
id_resposta
FK
FK
id_atribuicao
id_atribuicao
FK
FK
id_aluno
id_aluno
time_envio
time_envio
unique_restricao
unique_restricao
ITEMRESPOSTATEXTO
ITEMRESPOSTATEXTO
FK
FK
id_pergunta
id_pergunta
FK
FK
id_resposta
id_resposta
char_valor_texto
char_valor_texto
ITEMRESPOSTAOPCAO
ITEMRESPOSTAOPCAO
FK
FK
id_pergunta
id_pergunta
FK
FK
id_resposta
id_resposta
FK
FK
id_opcao
id_opcao
1,N
1,N
Ministra(usuário professor)
Ministra(usuário pro...
0.1
0.1
inscreve(usuário aluno)
inscreve(usuário alu...
0,N
0,N
0,N
0,N
Cria(usuário professor)
Cria(usuário profess...
0.N
0.N
1,1
1,1
Composto
Composto
1,N
1,N
1,1
1,1
ATRIBUICAOFORMULARIO
ATRIBUICAOFORMULARIO
PK
PK
id_atribuicao
id_atribuicao
FK
FK
id_formulario
id_formulario
FK
FK
id_turma
id_turma
time_abertura
time_abertura
time_fechamento
time_fechamento
num_status
num_status
Tem(para múltipla escolha)
Tem(para múltipla es...
1,N
1,N
1,1
1,1
Text is not SVG - cannot display
\ No newline at end of file From daf0a3e0c7556fc67d09a40e86d7beee72d459c6 Mon Sep 17 00:00:00 2001 From: paradoxset <49482648+paradoxset@users.noreply.github.com> Date: Tue, 18 Nov 2025 21:58:00 -0300 Subject: [PATCH 04/16] Atualizar DiagramaER.svg --- DiagramaER.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DiagramaER.svg b/DiagramaER.svg index 976a0cb6ad..eb68d52f39 100644 --- a/DiagramaER.svg +++ b/DiagramaER.svg @@ -1,4 +1,4 @@ -
USUARIOS
USUARIOS
PK
PK
id_usuario
id_usuario
char_usuario
char_usuario
char_email
char_email
char_senha
char_senha
num_tipo
num_tipo
DISCIPLINAS
DISCIPLINAS
PK
PK
id_disciplina
id_disciplina
char_disciplina
char_disciplina
TURMAS
TURMAS
PK
PK
id_turma
id_turma
FK
FK
id_disciplina
id_disciplina
FK
FK
id_professor
id_professor
char_mnemonico_turma
char_mnemonico_turma
char_semestre
char_semestre
char_horario
char_horario
MATRICULA
MATRICULA
FK
FK
id_aluno
id_aluno
FK
FK
id_turma
id_turma
FORMULARIOS
FORMULARIOS
PK
PK
id_formulario
id_formulario
FK
FK
id_professor
id_professor
char_titulo
char_titulo
PERGUNTAS
PERGUNTAS
PK
PK
id_pergunta
id_pergunta
FK
FK
id_formulario
id_formulario
char_enunciado
char_enunciado
num_tipo
num_tipo
num_ordem
num_ordem
OPCOES
OPCOES
PK
PK
id_opcao
id_opcao
FK
FK
id_pergunta
id_pergunta
char_texto_opcao
char_texto_opcao
num_ordem
num_ordem
RESPOSTAS
RESPOSTAS
PK
PK
id_resposta
id_resposta
FK
FK
id_atribuicao
id_atribuicao
FK
FK
id_aluno
id_aluno
time_envio
time_envio
unique_restricao
unique_restricao
ITEMRESPOSTATEXTO
ITEMRESPOSTATEXTO
FK
FK
id_pergunta
id_pergunta
FK
FK
id_resposta
id_resposta
char_valor_texto
char_valor_texto
ITEMRESPOSTAOPCAO
ITEMRESPOSTAOPCAO
FK
FK
id_pergunta
id_pergunta
FK
FK
id_resposta
id_resposta
FK
FK
id_opcao
id_opcao
1,N
1,N
Ministra(usuário professor)
Ministra(usuário pro...
0.1
0.1
inscreve(usuário aluno)
inscreve(usuário alu...
0,N
0,N
0,N
0,N
Cria(usuário professor)
Cria(usuário profess...
0.N
0.N
1,1
1,1
Composto
Composto
1,N
1,N
1,1
1,1
ATRIBUICAOFORMULARIO
ATRIBUICAOFORMULARIO
PK
PK
id_atribuicao
id_atribuicao
FK
FK
id_formulario
id_formulario
FK
FK
id_turma
id_turma
time_abertura
time_abertura
time_fechamento
time_fechamento
num_status
num_status
Tem(para múltipla escolha)
Tem(para múltipla es...
1,N
1,N
1,1
1,1
Text is not SVG - cannot display
\ No newline at end of file +
USUARIOS
USUARIOS
PK
PK
id_usuario
id_usuario
char_usuario
char_usuario
char_email
char_email
hash_senha
hash_senha
num_tipo
num_tipo
DISCIPLINAS
DISCIPLINAS
PK
PK
id_disciplina
id_disciplina
char_disciplina
char_disciplina
TURMAS
TURMAS
PK
PK
id_turma
id_turma
FK
FK
id_disciplina
id_disciplina
FK
FK
id_professor
id_professor
char_mnemonico_turma
char_mnemonico_turma
char_semestre
char_semestre
char_horario
char_horario
MATRICULA
MATRICULA
FK
FK
id_aluno
id_aluno
FK
FK
id_turma
id_turma
FORMULARIOS
FORMULARIOS
PK
PK
id_formulario
id_formulario
FK
FK
id_professor
id_professor
char_titulo
char_titulo
PERGUNTAS
PERGUNTAS
PK
PK
id_pergunta
id_pergunta
FK
FK
id_formulario
id_formulario
char_enunciado
char_enunciado
num_tipo
num_tipo
num_ordem
num_ordem
OPCOES
OPCOES
PK
PK
id_opcao
id_opcao
FK
FK
id_pergunta
id_pergunta
char_texto_opcao
char_texto_opcao
num_ordem
num_ordem
RESPOSTAS
RESPOSTAS
PK
PK
id_resposta
id_resposta
FK
FK
id_atribuicao
id_atribuicao
FK
FK
id_aluno
id_aluno
time_envio
time_envio
unique_restricao
unique_restricao
ITEMRESPOSTATEXTO
ITEMRESPOSTATEXTO
FK
FK
id_pergunta
id_pergunta
FK
FK
id_resposta
id_resposta
char_valor_texto
char_valor_texto
ITEMRESPOSTAOPCAO
ITEMRESPOSTAOPCAO
FK
FK
id_pergunta
id_pergunta
FK
FK
id_resposta
id_resposta
FK
FK
id_opcao
id_opcao
1,1
1,1
Ministra(usuário professor)
Ministra(usuário pro...
0,N
0,N
inscreve(usuário aluno)
inscreve(usuário alu...
0,N
0,N
0,N
0,N
Cria(usuário professor)
Cria(usuário profess...
1.1
1.1
1,N
1,N
Composto
Composto
1,1
1,1
0,N
0,N
ATRIBUICAOFORMULARIO
ATRIBUICAOFORMULARIO
PK
PK
id_atribuicao
id_atribuicao
FK
FK
id_formulario
id_formulario
FK
FK
id_turma
id_turma
time_abertura
time_abertura
time_fechamento
time_fechamento
num_status
num_status
Contem(para múltipla escolha)
Contem(para múltipla...
1,1
1,1
1,N
1,N
Atribui
Atribui
1,N
1,N
1.N
1.N
1,N
1,N
1,1
1,1
Possui
Possui
Responde(usuário aluno)
Responde(usuário alu...
1.1
1.1
1.N
1.N
Recebe
Recebe
1.1
1.1
1,N
1,N
Text is not SVG - cannot display
\ No newline at end of file From 0915324db8b1ae600129732ae55f665d367abfa6 Mon Sep 17 00:00:00 2001 From: paradoxset <49482648+paradoxset@users.noreply.github.com> Date: Tue, 18 Nov 2025 21:59:19 -0300 Subject: [PATCH 05/16] Actualizar DiagramaER.svg From 9db3be76c433b0302b872e6557501184d4c83f97 Mon Sep 17 00:00:00 2001 From: paradoxset <49482648+paradoxset@users.noreply.github.com> Date: Tue, 18 Nov 2025 22:12:58 -0300 Subject: [PATCH 06/16] Actualizar DiagramaER.svg --- DiagramaER.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DiagramaER.svg b/DiagramaER.svg index eb68d52f39..eac174b59b 100644 --- a/DiagramaER.svg +++ b/DiagramaER.svg @@ -1,4 +1,4 @@ -
USUARIOS
USUARIOS
PK
PK
id_usuario
id_usuario
char_usuario
char_usuario
char_email
char_email
hash_senha
hash_senha
num_tipo
num_tipo
DISCIPLINAS
DISCIPLINAS
PK
PK
id_disciplina
id_disciplina
char_disciplina
char_disciplina
TURMAS
TURMAS
PK
PK
id_turma
id_turma
FK
FK
id_disciplina
id_disciplina
FK
FK
id_professor
id_professor
char_mnemonico_turma
char_mnemonico_turma
char_semestre
char_semestre
char_horario
char_horario
MATRICULA
MATRICULA
FK
FK
id_aluno
id_aluno
FK
FK
id_turma
id_turma
FORMULARIOS
FORMULARIOS
PK
PK
id_formulario
id_formulario
FK
FK
id_professor
id_professor
char_titulo
char_titulo
PERGUNTAS
PERGUNTAS
PK
PK
id_pergunta
id_pergunta
FK
FK
id_formulario
id_formulario
char_enunciado
char_enunciado
num_tipo
num_tipo
num_ordem
num_ordem
OPCOES
OPCOES
PK
PK
id_opcao
id_opcao
FK
FK
id_pergunta
id_pergunta
char_texto_opcao
char_texto_opcao
num_ordem
num_ordem
RESPOSTAS
RESPOSTAS
PK
PK
id_resposta
id_resposta
FK
FK
id_atribuicao
id_atribuicao
FK
FK
id_aluno
id_aluno
time_envio
time_envio
unique_restricao
unique_restricao
ITEMRESPOSTATEXTO
ITEMRESPOSTATEXTO
FK
FK
id_pergunta
id_pergunta
FK
FK
id_resposta
id_resposta
char_valor_texto
char_valor_texto
ITEMRESPOSTAOPCAO
ITEMRESPOSTAOPCAO
FK
FK
id_pergunta
id_pergunta
FK
FK
id_resposta
id_resposta
FK
FK
id_opcao
id_opcao
1,1
1,1
Ministra(usuário professor)
Ministra(usuário pro...
0,N
0,N
inscreve(usuário aluno)
inscreve(usuário alu...
0,N
0,N
0,N
0,N
Cria(usuário professor)
Cria(usuário profess...
1.1
1.1
1,N
1,N
Composto
Composto
1,1
1,1
0,N
0,N
ATRIBUICAOFORMULARIO
ATRIBUICAOFORMULARIO
PK
PK
id_atribuicao
id_atribuicao
FK
FK
id_formulario
id_formulario
FK
FK
id_turma
id_turma
time_abertura
time_abertura
time_fechamento
time_fechamento
num_status
num_status
Contem(para múltipla escolha)
Contem(para múltipla...
1,1
1,1
1,N
1,N
Atribui
Atribui
1,N
1,N
1.N
1.N
1,N
1,N
1,1
1,1
Possui
Possui
Responde(usuário aluno)
Responde(usuário alu...
1.1
1.1
1.N
1.N
Recebe
Recebe
1.1
1.1
1,N
1,N
Text is not SVG - cannot display
\ No newline at end of file +
USUARIOS
USUARIOS
PK
PK
id_usuario
id_usuario
char_usuario
char_usuario
char_email
char_email
hash_senha
hash_senha
num_tipo
num_tipo
DISCIPLINAS
DISCIPLINAS
PK
PK
id_disciplina
id_disciplina
char_disciplina
char_disciplina
TURMAS
TURMAS
PK
PK
id_turma
id_turma
FK
FK
id_disciplina
id_disciplina
FK
FK
id_professor
id_professor
char_mnemonico_turma
char_mnemonico_turma
char_semestre
char_semestre
char_horario
char_horario
MATRICULA
MATRICULA
FK
FK
id_aluno
id_aluno
FK
FK
id_turma
id_turma
FORMULARIOS
FORMULARIOS
PK
PK
id_formulario
id_formulario
FK
FK
id_professor
id_professor
char_titulo
char_titulo
PERGUNTAS
PERGUNTAS
PK
PK
id_pergunta
id_pergunta
FK
FK
id_formulario
id_formulario
char_enunciado
char_enunciado
num_tipo
num_tipo
num_ordem
num_ordem
OPCOES
OPCOES
PK
PK
id_opcao
id_opcao
FK
FK
id_pergunta
id_pergunta
char_texto_opcao
char_texto_opcao
num_ordem
num_ordem
RESPOSTAS
RESPOSTAS
PK
PK
id_resposta
id_resposta
FK
FK
id_atribuicao
id_atribuicao
FK
FK
id_aluno
id_aluno
time_envio
time_envio
unique_restricao
unique_restricao
ITEMRESPOSTATEXTO
ITEMRESPOSTATEXTO
FK
FK
id_pergunta
id_pergunta
FK
FK
id_resposta
id_resposta
char_valor_texto
char_valor_texto
ITEMRESPOSTAOPCAO
ITEMRESPOSTAOPCAO
FK
FK
id_pergunta
id_pergunta
FK
FK
id_resposta
id_resposta
FK
FK
id_opcao
id_opcao
1,1
1,1
Ministra(usuário professor)
Ministra(usuário pro...
0,N
0,N
inscreve(usuário aluno)
inscreve(usuário alu...
0,N
0,N
0,N
0,N
Cria(usuário professor)
Cria(usuário profess...
1.1
1.1
1,N
1,N
Composto
Composto
1,1
1,1
0,N
0,N
ATRIBUICAOFORMULARIO
ATRIBUICAOFORMULARIO
PK
PK
id_atribuicao
id_atribuicao
FK
FK
id_formulario
id_formulario
FK
FK
id_turma
id_turma
time_abertura
time_abertura
time_fechamento
time_fechamento
num_status
num_status
Contem(para múltipla escolha)
Contem(para múltipla...
1,1
1,1
1,N
1,N
Atribui
Atribui
1,N
1,N
1.N
1.N
1,N
1,N
1,1
1,1
Possui
Possui
Responde(usuário aluno)
Responde(usuário alu...
1.1
1.1
1.N
1.N
Recebe
Recebe
1.1
1.1
0,N
0,N
Text is not SVG - cannot display
\ No newline at end of file From 350e4f3d47510980cfc657fc1760b3d7f47421c4 Mon Sep 17 00:00:00 2001 From: paradoxset <49482648+paradoxset@users.noreply.github.com> Date: Tue, 18 Nov 2025 22:15:34 -0300 Subject: [PATCH 07/16] Actualizar DiagramaER.svg --- DiagramaER.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DiagramaER.svg b/DiagramaER.svg index eac174b59b..f40b3940c9 100644 --- a/DiagramaER.svg +++ b/DiagramaER.svg @@ -1,4 +1,4 @@ -
USUARIOS
USUARIOS
PK
PK
id_usuario
id_usuario
char_usuario
char_usuario
char_email
char_email
hash_senha
hash_senha
num_tipo
num_tipo
DISCIPLINAS
DISCIPLINAS
PK
PK
id_disciplina
id_disciplina
char_disciplina
char_disciplina
TURMAS
TURMAS
PK
PK
id_turma
id_turma
FK
FK
id_disciplina
id_disciplina
FK
FK
id_professor
id_professor
char_mnemonico_turma
char_mnemonico_turma
char_semestre
char_semestre
char_horario
char_horario
MATRICULA
MATRICULA
FK
FK
id_aluno
id_aluno
FK
FK
id_turma
id_turma
FORMULARIOS
FORMULARIOS
PK
PK
id_formulario
id_formulario
FK
FK
id_professor
id_professor
char_titulo
char_titulo
PERGUNTAS
PERGUNTAS
PK
PK
id_pergunta
id_pergunta
FK
FK
id_formulario
id_formulario
char_enunciado
char_enunciado
num_tipo
num_tipo
num_ordem
num_ordem
OPCOES
OPCOES
PK
PK
id_opcao
id_opcao
FK
FK
id_pergunta
id_pergunta
char_texto_opcao
char_texto_opcao
num_ordem
num_ordem
RESPOSTAS
RESPOSTAS
PK
PK
id_resposta
id_resposta
FK
FK
id_atribuicao
id_atribuicao
FK
FK
id_aluno
id_aluno
time_envio
time_envio
unique_restricao
unique_restricao
ITEMRESPOSTATEXTO
ITEMRESPOSTATEXTO
FK
FK
id_pergunta
id_pergunta
FK
FK
id_resposta
id_resposta
char_valor_texto
char_valor_texto
ITEMRESPOSTAOPCAO
ITEMRESPOSTAOPCAO
FK
FK
id_pergunta
id_pergunta
FK
FK
id_resposta
id_resposta
FK
FK
id_opcao
id_opcao
1,1
1,1
Ministra(usuário professor)
Ministra(usuário pro...
0,N
0,N
inscreve(usuário aluno)
inscreve(usuário alu...
0,N
0,N
0,N
0,N
Cria(usuário professor)
Cria(usuário profess...
1.1
1.1
1,N
1,N
Composto
Composto
1,1
1,1
0,N
0,N
ATRIBUICAOFORMULARIO
ATRIBUICAOFORMULARIO
PK
PK
id_atribuicao
id_atribuicao
FK
FK
id_formulario
id_formulario
FK
FK
id_turma
id_turma
time_abertura
time_abertura
time_fechamento
time_fechamento
num_status
num_status
Contem(para múltipla escolha)
Contem(para múltipla...
1,1
1,1
1,N
1,N
Atribui
Atribui
1,N
1,N
1.N
1.N
1,N
1,N
1,1
1,1
Possui
Possui
Responde(usuário aluno)
Responde(usuário alu...
1.1
1.1
1.N
1.N
Recebe
Recebe
1.1
1.1
0,N
0,N
Text is not SVG - cannot display
\ No newline at end of file +
USUARIOS
USUARIOS
PK
PK
id_usuario
id_usuario
char_usuario
char_usuario
char_email
char_email
hash_senha
hash_senha
num_tipo
num_tipo
DISCIPLINAS
DISCIPLINAS
PK
PK
id_disciplina
id_disciplina
char_disciplina
char_disciplina
TURMAS
TURMAS
PK
PK
id_turma
id_turma
FK
FK
id_disciplina
id_disciplina
FK
FK
id_professor
id_professor
char_mnemonico_turma
char_mnemonico_turma
char_semestre
char_semestre
char_horario
char_horario
MATRICULA
MATRICULA
FK
FK
id_aluno
id_aluno
FK
FK
id_turma
id_turma
FORMULARIOS
FORMULARIOS
PK
PK
id_formulario
id_formulario
FK
FK
id_professor
id_professor
char_titulo
char_titulo
PERGUNTAS
PERGUNTAS
PK
PK
id_pergunta
id_pergunta
FK
FK
id_formulario
id_formulario
char_enunciado
char_enunciado
num_tipo
num_tipo
num_ordem
num_ordem
OPCOES
OPCOES
PK
PK
id_opcao
id_opcao
FK
FK
id_pergunta
id_pergunta
char_texto_opcao
char_texto_opcao
num_ordem
num_ordem
RESPOSTAS
RESPOSTAS
PK
PK
id_resposta
id_resposta
FK
FK
id_atribuicao
id_atribuicao
FK
FK
id_aluno
id_aluno
time_envio
time_envio
unique_restricao
unique_restricao
ITEMRESPOSTATEXTO
ITEMRESPOSTATEXTO
FK
FK
id_pergunta
id_pergunta
FK
FK
id_resposta
id_resposta
char_valor_texto
char_valor_texto
ITEMRESPOSTAOPCAO
ITEMRESPOSTAOPCAO
FK
FK
id_pergunta
id_pergunta
FK
FK
id_resposta
id_resposta
FK
FK
id_opcao
id_opcao
1,1
1,1
Ministra(usuário professor)
Ministra(usuário pro...
0,N
0,N
inscreve(usuário aluno)
inscreve(usuário alu...
0,N
0,N
0,N
0,N
Cria(usuário professor)
Cria(usuário profess...
1.1
1.1
1,N
1,N
Composto
Composto
1,1
1,1
0,N
0,N
ATRIBUICAOFORMULARIO
ATRIBUICAOFORMULARIO
PK
PK
id_atribuicao
id_atribuicao
FK
FK
id_formulario
id_formulario
FK
FK
id_turma
id_turma
time_abertura
time_abertura
time_fechamento
time_fechamento
num_status
num_status
Contem(para múltipla escolha)
Contem(para múltipla...
1,1
1,1
1,N
1,N
Atribui
Atribui
1,N
1,N
1.N
1.N
1,N
1,N
1,1
1,1
Possui
Possui
Responde(usuário aluno)
Responde(usuário alu...
1.1
1.1
1.N
1.N
Recebe
Recebe
1.1
1.1
0,N
0,N
1.1
1.1
0,N
0,N
0,N
0,N
Text is not SVG - cannot display
\ No newline at end of file From 94a04995d0551931535f5a08928b9400b11ddd02 Mon Sep 17 00:00:00 2001 From: Marcus Sousa <49482648+MSousa-1@users.noreply.github.com> Date: Mon, 24 Nov 2025 20:30:25 -0300 Subject: [PATCH 08/16] Update ProjetoCAMAAR.md with business rules Added business rules for login, data ingestion, template management, and form distribution. --- ProjetoCAMAAR.md | 113 +++++++++++++++++++++++++++++++++++++++++++++++ README.md | 2 - 2 files changed, 113 insertions(+), 2 deletions(-) create mode 100644 ProjetoCAMAAR.md delete mode 100644 README.md diff --git a/ProjetoCAMAAR.md b/ProjetoCAMAAR.md new file mode 100644 index 0000000000..a07b7b651d --- /dev/null +++ b/ProjetoCAMAAR.md @@ -0,0 +1,113 @@ +# CAMAAR + +Sistema para avaliação de atividades acadêmicas remotas do CIC + +Sendo desenvolvido por: Marcus Vinicius Ramalho de Sousa (executando papéis de Scrum Master e Product Owner) + +# Especificação do Projeto e Rota de Desenvolvimento + +## 1. Visão Geral +O **CAMAAR** é um sistema de gerenciamento de formulários onde o administrador importa dados de alunos e cria formulários para avaliação de turmas. O sistema utiliza dados do SIGAA para popular sua base e permitir o acesso dos participantes. + +--- + +## 2. Rota de Desenvolvimento (Roadmap) + +O desenvolvimento foi organizado em **5 Etapas** para garantir que as dependências (Dados -> Templates -> Formulários) sejam respeitadas. + +### Etapa 1: Autenticação e Gestão de Acesso +*Foco: Garantir que usuários entrem no sistema e tenham a visualização correta (Admin vs. Usuário).* + +| ID | História de Usuário | Responsável | Velocity | +| :--- | :--- | :--- | :--- | +| [**US-104**](https://github.com/EngSwCIC/CAMAAR/issues/104) | Eu como **Usuário do sistema**
Quero acessar o sistema utilizando um e-mail ou matrícula e uma senha já cadastrada
A fim de responder formulários ou gerenciar o sistema
_Obs: Quando o Usuário logado for um admin, deve-se mostrar a opção de gerenciamente no menu lateral._ | Desenvolvedor | **5** | +| [**US-105**](https://github.com/EngSwCIC/CAMAAR/issues/105) | Eu como **Usuário**
Quero definir uma senha para o meu usuário a partir do e-mail do sistema de solicitação de cadastro
A fim de acessar o sistema | Desenvolvedor | **5** | +| **Infra** | Configuração inicial do Banco de Dados e Repositório | Desenvolvedor | **3** | + +**Total: 13 Pontos** + +#### Regras de Negócio +* **RN-01 (Login):** O sistema deve validar se o login é um e-mail válido ou um número de matrícula existente. +* **RN-02 (Sessão):** Deve haver distinção de Aluno e Admin +* **RN-03 (Senha):** A senha definida pelo usuário deve ter no mínimo 8 caracteres. +--- + +### Etapa 2: Ingestão de Dados (SIGAA) +*Foco: Alimentar a base de dados.* + +| ID | História de Usuário | Responsável | Velocity | +| :--- | :--- | :--- | :--- | +| [**US-98**](https://github.com/EngSwCIC/CAMAAR/issues/98) | Eu como **Administrador**
Quero importar dados de turmas, matérias e participantes do SIGAA (caso não existam na base de dados atual)
A fim de alimentar a base de dados do sistema.
_P.S. utilizar os JSONs presentes no repositório_ | Desenvolvedor | **8** | +| [**US-100**](https://github.com/EngSwCIC/CAMAAR/issues/100) | Eu como **Administrador**
Quero cadastrar participantes de turmas do SIGAA ao importar dados de usuarios novos para o sistema
A fim de que eles acessem o sistema CAMAAR | Desenvolvedor | **5** | +| [**US-108**](https://github.com/EngSwCIC/CAMAAR/issues/108) | Eu como **Administrador**
Quero atualizar a base de dados já existente com os dados atuais do sigaa
A fim de corrigir a base de dados do sistema. | Desenvolvedor | **8** | + +**Total: 21 Pontos** + +#### Regras de Negócio +* **RN-04 (Unicidade):** O sistema não pode criar duplicatas. A validação deve ser feita pelo campo `matrícula` (para alunos) e `código da turma` + `semestre` (para turmas). +* **RN-05 (Vínculo):** Ao importar, o sistema deve criar automaticamente o relacionamento na tabela associativa `matriculas` (Aluno <-> Turma). +* **RN-06 (Integridade):** Se o arquivo JSON contiver erros de formatação, a importação deve ser totalmente abortada (All-or-nothing) e um erro reportado. +* **RN-07 (Atualização):** Se um aluno já existe mas mudou de turma no novo JSON, o sistema deve apenas atualizar o vínculo, mantendo o histórico e os dados de login do aluno intactos. + +--- + +### Etapa 3: Gestão de Templates +*Foco: Criação e manutenção dos modelos de perguntas.* + +| ID | História de Usuário | Responsável | Velocity | +| :--- | :--- | :--- | :--- | +| [**US-102**](https://github.com/EngSwCIC/CAMAAR/issues/102) | Eu como **Administrador**
Quero criar um template de formulário contendo as questões do formulário
A fim de gerar formulários de avaliações para avaliar o desempenho das turmas | Desenvolvedor | **8** | +| [**US-111**](https://github.com/EngSwCIC/CAMAAR/issues/111) | Eu como **Administrador**
Quero visualizar os templates criados
A fim de poder editar e/ou deletar um template que eu criei | Desenvolvedor | **2** | +| [**US-112**](https://github.com/EngSwCIC/CAMAAR/issues/112) | Eu como **Administrador**
Quero editar e/ou deletar um template que eu criei sem afetar os formulários já criados
A fim de organizar os templates existentes | Desenvolvedor | **5** | + +**Total: 15 Pontos** + +#### Regras de Negócio +* **RN-08 (Conteúdo Mínimo):** Um template não pode ser salvo sem um Título e pelo menos uma Questão. +* **RN-09 (Imutabilidade Histórica):** Se um template já foi utilizado para gerar um Formulário que recebeu respostas, ele **não pode** ser editado diretamente. + * *Solução:* O sistema deve bloquear a edição ou sugerir "Salvar como Novo Template". +* **RN-10 (Soft Delete):** A exclusão de um template deve ser lógica (`is_active = false`), para não quebrar relatórios passados que referenciam este template. + +--- + +### Etapa 4: Criação e Distribuição de Formulários +*Foco: Transformar templates em formulários ativos para as turmas e permitir a visualização pelo aluno.* + +| ID | História de Usuário | Responsável | Velocity | +| :--- | :--- | :--- | :--- | +| [**US-103**](https://github.com/EngSwCIC/CAMAAR/issues/103) | Eu como **Administrador**
Quero criar um formulário baseado em um template para as turmas que eu escolher
A fim de avaliar o desempenho das turmas no semestre atual | Desenvolvedor | **8** | +| [**US-109**](https://github.com/EngSwCIC/CAMAAR/issues/109) | Eu como **Participante de uma turma**
Quero visualizar os formulários não respondidos das turmas em que estou matriculado
A fim de poder escolher qual irei responder | Desenvolvedor | **5** | +| **UI** | Implementação de filtros de busca por formulário/turma (Baseado no layout) | Desenvolvedor | **2** | + +**Total: 15 Pontos** + +#### Regras de Negócio +* **RN-11 (Prazo):** Todo formulário deve ter uma Data de Início e uma Data de Fim. O sistema só deve mostrá-lo aos alunos dentro desse período. +* **RN-12 (Cópia de Estrutura):** Ao criar um formulário, as perguntas do Template devem ser copiadas para a instância do Formulário. Isso garante que alterações futuras no Template não mudem formulários já lançados. +* **RN-13 (Visibilidade):** O usuário só pode visualizar formulários vinculados às turmas nas quais sua matrícula está ativa no banco de dados. + +--- + +### Etapa 5: Respostas e Resultados +*Foco: O aluno responde e o administrador extrai os dados.* + +| ID | História de Usuário | Responsável | Velocity | +| :--- | :--- | :--- | :--- | +| [**US-99**](https://github.com/EngSwCIC/CAMAAR/issues/99) | Eu como **Participante de uma turma**
Quero responder o questionário sobre a turma em que estou matriculado
A fim de submeter minha avaliação da turma | Desenvolvedor | **8** | +| [**US-110**](https://github.com/EngSwCIC/CAMAAR/issues/110) | Eu como **Administrador**
Quero visualizar os formulários criados
A fim de poder gerar um relatório a partir das respostas | Desenvolvedor | **3** | +| [**US-101**](https://github.com/EngSwCIC/CAMAAR/issues/101) | Eu como **Administrador**
Quero baixar um arquivo csv contendo os resultados de um formulário
A fim de avaliar o desempenho das turmas | Desenvolvedor | **5** | + +**Total: 16 Pontos** + +#### Regras de Negócio +* **RN-14 (Resposta Única):** Um aluno só pode submeter resposta para um formulário específico uma única vez. O sistema deve bloquear tentativas subsequentes. +* **RN-15 (Obrigatoriedade):** O formulário não pode ser enviado se houver questões marcadas como "Obrigatória" sem resposta. +* **RN-16 (Privacidade):** O relatório CSV deve exportar os dados brutos das respostas. +* **RN-17 (Status):** O formulário deve mudar de status automaticamente para "Fechado" assim que a data atual superar a Data Fim configurada. + +--- + +## 5. Modelagem de Dados (Conceitual) + +Diagrama simplificado das entidades principais para suportar o fluxo de Templates Dinâmicos e Importação. +![Diagrama ER](https://github.com/MSousa-1/CAMAAR/blob/main/DiagramaER.svg) diff --git a/README.md b/README.md deleted file mode 100644 index 9d7fe1bf53..0000000000 --- a/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# CAMAAR -Sistema para avaliação de atividades acadêmicas remotas do CIC From 6653a12b4ca2a0b3634f0bd6360ca420cc2c584b Mon Sep 17 00:00:00 2001 From: Marcus Sousa <49482648+MSousa-1@users.noreply.github.com> Date: Mon, 24 Nov 2025 20:40:38 -0300 Subject: [PATCH 09/16] Rename ProjetoCAMAAR.md to README.md --- ProjetoCAMAAR.md => README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename ProjetoCAMAAR.md => README.md (100%) diff --git a/ProjetoCAMAAR.md b/README.md similarity index 100% rename from ProjetoCAMAAR.md rename to README.md From 8a49650e2f50b648ce67ed93e73480ca687c887e Mon Sep 17 00:00:00 2001 From: Marcus Sousa <49482648+MSousa-1@users.noreply.github.com> Date: Mon, 24 Nov 2025 21:17:44 -0300 Subject: [PATCH 10/16] Revise README structure and add testing scenarios Updated the README to reflect changes in project structure and added sections for testing scenarios. --- README.md | 52 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a07b7b651d..ed7b8f228d 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Sistema para avaliação de atividades acadêmicas remotas do CIC -Sendo desenvolvido por: Marcus Vinicius Ramalho de Sousa (executando papéis de Scrum Master e Product Owner) +Sendo desenvolvido por: Marcus Vinicius Ramalho de Sousa # Especificação do Projeto e Rota de Desenvolvimento @@ -15,6 +15,8 @@ O **CAMAAR** é um sistema de gerenciamento de formulários onde o administrador O desenvolvimento foi organizado em **5 Etapas** para garantir que as dependências (Dados -> Templates -> Formulários) sejam respeitadas. +**Velocity Total: 80 Pontos** + ### Etapa 1: Autenticação e Gestão de Acesso *Foco: Garantir que usuários entrem no sistema e tenham a visualização correta (Admin vs. Usuário).* @@ -107,7 +109,51 @@ O desenvolvimento foi organizado em **5 Etapas** para garantir que as dependênc --- -## 5. Modelagem de Dados (Conceitual) +## 3. Modelagem de Dados (Conceitual) Diagrama simplificado das entidades principais para suportar o fluxo de Templates Dinâmicos e Importação. -![Diagrama ER](https://github.com/MSousa-1/CAMAAR/blob/main/DiagramaER.svg) +![Diagrama ER](./main/DiagramaER.svg) + +--- + +## 4. Cenários de Teste (BDD) + +### [Etapa 1 - Autenticação e Gestão de Acesso](https://github.com/MSousa-1/CAMAAR/edit/Sprint-1/README.md#etapa-1-autentica%C3%A7%C3%A3o-e-gest%C3%A3o-de-acesso) + +| ID | História de Usuário | Qtd. Testes | Detalhamento dos Cenários (BDD) | +| :--- | :--- | :---: | :--- | +| [**US-01**](https://github.com/MSousa-1/CAMAAR/edit/Sprint-1/README.md) | Login | **4** | 1. Sucesso (Admin).
2. Sucesso (Aluno/Participante).
3. Falha (Dados inválidos).
4. Falha (Campos vazios ou formato de e-mail inválido). | +| [**US-105**](https://github.com/EngSwCIC/CAMAAR/issues/105) | Definição de Senha | **3** | 1. Sucesso (Senha forte definida).
2. Falha (Senha < 8 caracteres).
3. Falha (Senhas de confirmação não conferem). | + +### [Etapa 2: Ingestão de Dados (SIGAA)](https://github.com/MSousa-1/CAMAAR/edit/Sprint-1/README.md#etapa-2-ingest%C3%A3o-de-dados-sigaa) + +| ID | História de Usuário | Qtd. Testes | Detalhamento dos Cenários (BDD) | +| :--- | :--- | :---: | :--- | +| [**US-98**](https://github.com/EngSwCIC/CAMAAR/issues/98) | Importar SIGAA | **5** | 1. Sucesso (Arquivo JSON Perfeito).
2. Falha (Arquivo corrompido ou extensão incorreta).
3. Falha (Estrutura do JSON incorreta - campos obrigatórios faltando).
4. Falha (Arquivo excedendo limite de tamanho).
5. Validação (Feedback visual de progresso/conclusão). | +| [**US-100**](https://github.com/EngSwCIC/CAMAAR/issues/100) | Cadastrar Usuários | **3** | 1. Sucesso (Criação de novos usuários).
2. Ignorar (Usuários sem e-mail ou matrícula válidos).
3. Log de erro (Relatório de registros que falharam). | +| [**US-108**](https://github.com/EngSwCIC/CAMAAR/issues/108) | Atualizar Base | **4** | 1. Sucesso (Atualizar vínculo de turma de aluno existente).
2. Sucesso (Não duplicar registro de usuário já existente).
3. Falha (Conflito de ID/Matrícula duplicada no mesmo arquivo).
4. Integridade (Aluno removido do JSON original mantém histórico antigo). | + +### [Etapa 3: Gestão de Templates](https://github.com/MSousa-1/CAMAAR/edit/Sprint-1/README.md#etapa-3-gest%C3%A3o-de-templates) + +| ID | História de Usuário | Qtd. Testes | Detalhamento dos Cenários (BDD) | +| :--- | :--- | :---: | :--- | +| [**US-102**](https://github.com/EngSwCIC/CAMAAR/issues/102) | Criar Template | **3** | 1. Sucesso (Template completo com perguntas).
2. Falha (Tentar salvar sem Título).
3. Falha (Tentar salvar sem nenhuma pergunta adicionada). | +| [**US-111**](https://github.com/EngSwCIC/CAMAAR/issues/111) | Visualizar Templates | **2** | 1. Visualização (Lista carregada corretamente).
2. Estado Vazio (Feedback visual quando não há templates). | +| [**US-112**](https://github.com/EngSwCIC/CAMAAR/issues/112) | Editar/Deletar | **4** | 1. Sucesso (Editar template sem uso).
2. Sucesso (Deletar template sem uso).
3. Bloqueio (Tentar editar template já vinculado a formulário respondido).
4. Bloqueio (Tentar deletar template já vinculado a histórico). | + +### [Etapa 4: Criação e Distribuição de Formulários](https://github.com/MSousa-1/CAMAAR/edit/Sprint-1/README.md#etapa-4-cria%C3%A7%C3%A3o-e-distribui%C3%A7%C3%A3o-de-formul%C3%A1rios) + +| ID | História de Usuário | Qtd. Testes | Detalhamento dos Cenários (BDD) | +| :--- | :--- | :---: | :--- | +| [**US-103**](https://github.com/EngSwCIC/CAMAAR/issues/103) | Criar Formulário | **4** | 1. Sucesso (Vínculo Turma + Template criado).
2. Falha (Data de Término anterior à Data de Início).
3. Falha (Datas no passado).
4. Validação (Selecionar turma vazia/sem alunos). | +| [**US-109**](https://github.com/EngSwCIC/CAMAAR/issues/109) | Ver Pendências | **3** | 1. Sucesso (Visualizar formulário dentro do prazo).
2. Ocultação (Não visualizar formulário expirado).
3. Ocultação (Não visualizar formulário já respondido pelo aluno). | + +### [Etapa 5: Respostas e Resultados](https://github.com/MSousa-1/CAMAAR/edit/Sprint-1/README.md#etapa-5-respostas-e-resultados) + +| ID | História de Usuário | Qtd. Testes | Detalhamento dos Cenários (BDD) | +| :--- | :--- | :---: | :--- | +| [**US-99**](https://github.com/EngSwCIC/CAMAAR/issues/99) | Responder | **5** | 1. Sucesso (Fluxo completo de resposta).
2. Falha (Tentar enviar com obrigatórias em branco).
3. Segurança (Idempotência - Bloquear envio duplicado).
4. Segurança (Tentar alterar respostas via API após envio).
5. UI (Feedback de sucesso após submissão). | +| [**US-110**](https://github.com/EngSwCIC/CAMAAR/issues/110) | Status | **2** | 1. Precisão (Contagem correta de respondentes vs total).
2. Status correto (Aberto/Fechado baseado na data). | +| [**US-101**](https://github.com/EngSwCIC/CAMAAR/issues/101) | Exportar CSV | **3** | 1. Sucesso (Download e validação das colunas/linhas).
2. Tratamento (Sanitização de caracteres especiais no texto).
3. Estado Vazio (Tentativa de baixar CSV de formulário sem respostas). | + +--- From 41e7d4e2dee0c06468078df6e9effeb2fab30427 Mon Sep 17 00:00:00 2001 From: Marcus Sousa <49482648+MSousa-1@users.noreply.github.com> Date: Mon, 24 Nov 2025 21:19:56 -0300 Subject: [PATCH 11/16] Delete DiagramaER.svg --- DiagramaER.svg | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 DiagramaER.svg diff --git a/DiagramaER.svg b/DiagramaER.svg deleted file mode 100644 index f40b3940c9..0000000000 --- a/DiagramaER.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
USUARIOS
USUARIOS
PK
PK
id_usuario
id_usuario
char_usuario
char_usuario
char_email
char_email
hash_senha
hash_senha
num_tipo
num_tipo
DISCIPLINAS
DISCIPLINAS
PK
PK
id_disciplina
id_disciplina
char_disciplina
char_disciplina
TURMAS
TURMAS
PK
PK
id_turma
id_turma
FK
FK
id_disciplina
id_disciplina
FK
FK
id_professor
id_professor
char_mnemonico_turma
char_mnemonico_turma
char_semestre
char_semestre
char_horario
char_horario
MATRICULA
MATRICULA
FK
FK
id_aluno
id_aluno
FK
FK
id_turma
id_turma
FORMULARIOS
FORMULARIOS
PK
PK
id_formulario
id_formulario
FK
FK
id_professor
id_professor
char_titulo
char_titulo
PERGUNTAS
PERGUNTAS
PK
PK
id_pergunta
id_pergunta
FK
FK
id_formulario
id_formulario
char_enunciado
char_enunciado
num_tipo
num_tipo
num_ordem
num_ordem
OPCOES
OPCOES
PK
PK
id_opcao
id_opcao
FK
FK
id_pergunta
id_pergunta
char_texto_opcao
char_texto_opcao
num_ordem
num_ordem
RESPOSTAS
RESPOSTAS
PK
PK
id_resposta
id_resposta
FK
FK
id_atribuicao
id_atribuicao
FK
FK
id_aluno
id_aluno
time_envio
time_envio
unique_restricao
unique_restricao
ITEMRESPOSTATEXTO
ITEMRESPOSTATEXTO
FK
FK
id_pergunta
id_pergunta
FK
FK
id_resposta
id_resposta
char_valor_texto
char_valor_texto
ITEMRESPOSTAOPCAO
ITEMRESPOSTAOPCAO
FK
FK
id_pergunta
id_pergunta
FK
FK
id_resposta
id_resposta
FK
FK
id_opcao
id_opcao
1,1
1,1
Ministra(usuário professor)
Ministra(usuário pro...
0,N
0,N
inscreve(usuário aluno)
inscreve(usuário alu...
0,N
0,N
0,N
0,N
Cria(usuário professor)
Cria(usuário profess...
1.1
1.1
1,N
1,N
Composto
Composto
1,1
1,1
0,N
0,N
ATRIBUICAOFORMULARIO
ATRIBUICAOFORMULARIO
PK
PK
id_atribuicao
id_atribuicao
FK
FK
id_formulario
id_formulario
FK
FK
id_turma
id_turma
time_abertura
time_abertura
time_fechamento
time_fechamento
num_status
num_status
Contem(para múltipla escolha)
Contem(para múltipla...
1,1
1,1
1,N
1,N
Atribui
Atribui
1,N
1,N
1.N
1.N
1,N
1,N
1,1
1,1
Possui
Possui
Responde(usuário aluno)
Responde(usuário alu...
1.1
1.1
1.N
1.N
Recebe
Recebe
1.1
1.1
0,N
0,N
1.1
1.1
0,N
0,N
0,N
0,N
Text is not SVG - cannot display
\ No newline at end of file From d2d65b5f73d04c26870fd0ade524de78d1d41c1b Mon Sep 17 00:00:00 2001 From: Marcus Sousa <49482648+MSousa-1@users.noreply.github.com> Date: Mon, 24 Nov 2025 21:20:12 -0300 Subject: [PATCH 12/16] Add files via upload --- DiagramaER.png | Bin 0 -> 242299 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 DiagramaER.png diff --git a/DiagramaER.png b/DiagramaER.png new file mode 100644 index 0000000000000000000000000000000000000000..312897635bd493e01de7753f4d86c88944deed90 GIT binary patch literal 242299 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
|nt)e%Y6- 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

Ic&T!V4Jr;qZ^d$IqHq)5HgX!ewb( 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 LU3#Zv`uP6 Date: Mon, 24 Nov 2025 21:21:54 -0300 Subject: [PATCH 13/16] Change ER diagram link to PNG format Updated ER diagram link to point to a PNG file on GitHub. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ed7b8f228d..171de1718f 100644 --- a/README.md +++ b/README.md @@ -112,7 +112,7 @@ O desenvolvimento foi organizado em **5 Etapas** para garantir que as dependênc ## 3. Modelagem de Dados (Conceitual) Diagrama simplificado das entidades principais para suportar o fluxo de Templates Dinâmicos e Importação. -![Diagrama ER](./main/DiagramaER.svg) +![Diagrama ER](https://github.com/MSousa-1/CAMAAR/blob/Sprint-1/DiagramaER.png) --- From 77bd1e7b2d36de25f74e846806610b0587a377a6 Mon Sep 17 00:00:00 2001 From: Marcus Sousa <49482648+MSousa-1@users.noreply.github.com> Date: Mon, 24 Nov 2025 22:09:56 -0300 Subject: [PATCH 14/16] Fix link for Etapa 1 in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 171de1718f..92a8bd0e58 100644 --- a/README.md +++ b/README.md @@ -118,7 +118,7 @@ Diagrama simplificado das entidades principais para suportar o fluxo de Template ## 4. Cenários de Teste (BDD) -### [Etapa 1 - Autenticação e Gestão de Acesso](https://github.com/MSousa-1/CAMAAR/edit/Sprint-1/README.md#etapa-1-autentica%C3%A7%C3%A3o-e-gest%C3%A3o-de-acesso) +### [Etapa 1 - Autenticação e Gestão de Acesso](https://github.com/MSousa-1/CAMAAR/Sprint-1/README.md#etapa-1-autentica%C3%A7%C3%A3o-e-gest%C3%A3o-de-acesso) | ID | História de Usuário | Qtd. Testes | Detalhamento dos Cenários (BDD) | | :--- | :--- | :---: | :--- | From 03a8947c46d9e578495596613a88f2a0bf8dacf9 Mon Sep 17 00:00:00 2001 From: Marcus Sousa <49482648+MSousa-1@users.noreply.github.com> Date: Mon, 24 Nov 2025 22:11:15 -0300 Subject: [PATCH 15/16] Update link format for authentication section --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 92a8bd0e58..c61d9e2dea 100644 --- a/README.md +++ b/README.md @@ -118,7 +118,7 @@ Diagrama simplificado das entidades principais para suportar o fluxo de Template ## 4. Cenários de Teste (BDD) -### [Etapa 1 - Autenticação e Gestão de Acesso](https://github.com/MSousa-1/CAMAAR/Sprint-1/README.md#etapa-1-autentica%C3%A7%C3%A3o-e-gest%C3%A3o-de-acesso) +### [Etapa 1 - Autenticação e Gestão de Acesso](https://github.com/MSousa-1/CAMAAR/blob/Sprint-1/README.md#etapa-1-autentica%C3%A7%C3%A3o-e-gest%C3%A3o-de-acesso) | ID | História de Usuário | Qtd. Testes | Detalhamento dos Cenários (BDD) | | :--- | :--- | :---: | :--- | From 092aaeeb47c92cf3e5070b4097b01881bf9fb14e Mon Sep 17 00:00:00 2001 From: Marcus Sousa <49482648+MSousa-1@users.noreply.github.com> Date: Mon, 24 Nov 2025 22:13:02 -0300 Subject: [PATCH 16/16] Update links in README for data ingestion steps --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index c61d9e2dea..25a57890fe 100644 --- a/README.md +++ b/README.md @@ -125,7 +125,7 @@ Diagrama simplificado das entidades principais para suportar o fluxo de Template | [**US-01**](https://github.com/MSousa-1/CAMAAR/edit/Sprint-1/README.md) | Login | **4** | 1. Sucesso (Admin).
2. Sucesso (Aluno/Participante).
3. Falha (Dados inválidos).
4. Falha (Campos vazios ou formato de e-mail inválido). | | [**US-105**](https://github.com/EngSwCIC/CAMAAR/issues/105) | Definição de Senha | **3** | 1. Sucesso (Senha forte definida).
2. Falha (Senha < 8 caracteres).
3. Falha (Senhas de confirmação não conferem). | -### [Etapa 2: Ingestão de Dados (SIGAA)](https://github.com/MSousa-1/CAMAAR/edit/Sprint-1/README.md#etapa-2-ingest%C3%A3o-de-dados-sigaa) +### [Etapa 2: Ingestão de Dados (SIGAA)](https://github.com/MSousa-1/CAMAAR/blob/Sprint-1/README.md#etapa-2-ingest%C3%A3o-de-dados-sigaa) | ID | História de Usuário | Qtd. Testes | Detalhamento dos Cenários (BDD) | | :--- | :--- | :---: | :--- | @@ -133,7 +133,7 @@ Diagrama simplificado das entidades principais para suportar o fluxo de Template | [**US-100**](https://github.com/EngSwCIC/CAMAAR/issues/100) | Cadastrar Usuários | **3** | 1. Sucesso (Criação de novos usuários).
2. Ignorar (Usuários sem e-mail ou matrícula válidos).
3. Log de erro (Relatório de registros que falharam). | | [**US-108**](https://github.com/EngSwCIC/CAMAAR/issues/108) | Atualizar Base | **4** | 1. Sucesso (Atualizar vínculo de turma de aluno existente).
2. Sucesso (Não duplicar registro de usuário já existente).
3. Falha (Conflito de ID/Matrícula duplicada no mesmo arquivo).
4. Integridade (Aluno removido do JSON original mantém histórico antigo). | -### [Etapa 3: Gestão de Templates](https://github.com/MSousa-1/CAMAAR/edit/Sprint-1/README.md#etapa-3-gest%C3%A3o-de-templates) +### [Etapa 3: Gestão de Templates](https://github.com/MSousa-1/CAMAAR/blob/Sprint-1/README.md#etapa-3-gest%C3%A3o-de-templates) | ID | História de Usuário | Qtd. Testes | Detalhamento dos Cenários (BDD) | | :--- | :--- | :---: | :--- | @@ -141,14 +141,14 @@ Diagrama simplificado das entidades principais para suportar o fluxo de Template | [**US-111**](https://github.com/EngSwCIC/CAMAAR/issues/111) | Visualizar Templates | **2** | 1. Visualização (Lista carregada corretamente).
2. Estado Vazio (Feedback visual quando não há templates). | | [**US-112**](https://github.com/EngSwCIC/CAMAAR/issues/112) | Editar/Deletar | **4** | 1. Sucesso (Editar template sem uso).
2. Sucesso (Deletar template sem uso).
3. Bloqueio (Tentar editar template já vinculado a formulário respondido).
4. Bloqueio (Tentar deletar template já vinculado a histórico). | -### [Etapa 4: Criação e Distribuição de Formulários](https://github.com/MSousa-1/CAMAAR/edit/Sprint-1/README.md#etapa-4-cria%C3%A7%C3%A3o-e-distribui%C3%A7%C3%A3o-de-formul%C3%A1rios) +### [Etapa 4: Criação e Distribuição de Formulários](https://github.com/MSousa-1/CAMAAR/blob/Sprint-1/README.md#etapa-4-cria%C3%A7%C3%A3o-e-distribui%C3%A7%C3%A3o-de-formul%C3%A1rios) | ID | História de Usuário | Qtd. Testes | Detalhamento dos Cenários (BDD) | | :--- | :--- | :---: | :--- | | [**US-103**](https://github.com/EngSwCIC/CAMAAR/issues/103) | Criar Formulário | **4** | 1. Sucesso (Vínculo Turma + Template criado).
2. Falha (Data de Término anterior à Data de Início).
3. Falha (Datas no passado).
4. Validação (Selecionar turma vazia/sem alunos). | | [**US-109**](https://github.com/EngSwCIC/CAMAAR/issues/109) | Ver Pendências | **3** | 1. Sucesso (Visualizar formulário dentro do prazo).
2. Ocultação (Não visualizar formulário expirado).
3. Ocultação (Não visualizar formulário já respondido pelo aluno). | -### [Etapa 5: Respostas e Resultados](https://github.com/MSousa-1/CAMAAR/edit/Sprint-1/README.md#etapa-5-respostas-e-resultados) +### [Etapa 5: Respostas e Resultados](https://github.com/MSousa-1/CAMAAR/blob/Sprint-1/README.md#etapa-5-respostas-e-resultados) | ID | História de Usuário | Qtd. Testes | Detalhamento dos Cenários (BDD) | | :--- | :--- | :---: | :--- |