-
Notifications
You must be signed in to change notification settings - Fork 0
3. Modelo de Banco de Dados
O modelo de banco de dados foi projetado para suportar as funcionalidades essenciais do sistema ACALI. Estruturado para organizar projetos, usuários, tarefas e anexos, o modelo facilita o gerenciamento do ciclo de vida da pesquisa e o acompanhamento do progresso da equipe. A estrutura proporciona ao pesquisador uma visão centralizada de suas atividades e, ao mesmo tempo, organiza as contribuições dos estudantes.
Link para o Vídeo Explicativo: https://youtu.be/L-vx8ENdl-0?si=5LXNRrCx1hsB7tUF
A autenticação é gerenciada utilizando a tabela users, que inclui informações de login como nickname(sendo ra para alunos e apelido informal para representar os professores) e password. A autenticação garante que apenas usuários autorizados possam acessar a plataforma e interagir com os projetos, de acordo com seu papel (role). A segurança é reforçada pela criptografia das senhas no banco de dados.
A funcionalidade essencial do sistema é a capacidade de criar, ler, atualizar e excluir (CRUD) os registros de suas entidades principais, como projetos e tarefas. Essas quatro operações são a base que permite toda a gestão das informações armazenadas no banco de dados.
A relação um-para-muitos é exemplificada na ligação entre as tabelas tasks e attachments: uma única tarefa pode possuir vários arquivos anexados como entrega, mas cada anexo pertence a uma única tarefa. Isso permite que os alunos enviem múltiplos arquivos para a mesma atividade.
A relação entre as tabelas projects e users é do tipo muitos-para-muitos: um projeto pode ter vários usuários (membros da equipe) e um usuário pode participar de vários projetos. Essa relação é representada pela tabela intermediária project_user, que conecta as duas entidades.
O sistema permite o envio de arquivos para as tarefas e para a foto de perfil do usuário, com armazenamento eficiente e prático diretamente na máquina que hospeda o sistema, fora do banco de dados.
Armazenamento: Os arquivos serão salvos no sistema de arquivos do servidor (por exemplo, em pastas como /uploads/attachments/ e /uploads/profiles/).
Referência no Banco: Apenas o caminho relativo do arquivo será armazenado no banco de dados, nas colunas file_path (tabela attachments) e profile_picture_url (tabela users).
A aplicação utilizará AJAX para enviar e receber dados do backend sem a necessidade de recarregar a página, proporcionando uma experiência de usuário mais fluida. Isso inclui:
-
Criação e edição de projetos e tarefas de forma dinâmica.
-
Alteração do status de uma tarefa (ex: de "A Fazer" para "Concluído").
-
Envio de arquivos para as tarefas, com retorno do caminho para ser salvo no banco.
Abaixo estão os tipos de campos de formulário e como eles são representados no banco de dados:
-
Campos de entrada:
-
text: Usado em campos como projects.title e tasks.title. -
email: Usado no campo users.email. -
password: Usado para a coluna users.password. -
date: Usado em campos de prazo, como tasks.end_date. -
file: Representado pela funcionalidade de upload que salva o caminho em attachments.file_path e users.profile_picture_url.
-
-
Campos de seleção:
-
select: Usado para escolher a Área de Conhecimento na tabela projects. No formulário de criação de projeto, o professor selecionará a área de uma lista pré-definida de opções (ex: 'Engenharia de Software', 'Inteligência Artificial'), garantindo a categorização padronizada dos projetos.
-
-
Opções múltiplas:
-
checkbox: Representado por um conjunto de colunas booleanas na tabela tasks (como requires_text_file, requires_slides, etc.). Isso permite que, no formulário de uma tarefa, o professor marque múltiplas opções para definir um "Checklist de Entregáveis", deixando claro para o aluno todos os itens que precisam ser submetidos.
-
-
Escolha única:
-
radio: Usado para opções que exigem uma escolha única, como o status de um projeto na coluna projects.status.
-
Link de acesso: https://dbdiagram.io/d/acali-68cf622c960f6d821a0eaa23
