Skip to content

3. Modelo de Banco de Dados

deborannies edited this page Sep 21, 2025 · 12 revisions

Modelagem do 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

Requisitos do Banco de Dados e Funcionalidades

1. Autenticação

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.

2. CRUD

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.

3. Relação 1xN (One-to-Many)

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.

4. Relação NxN (Many-to-Many)

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.

5. Upload de Arquivos de Tarefas e Perfil

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

6. Ajax

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.

7. Tipos de Campos - Em que Tabelas e Colunas Serão Usados

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.

Modelo Lógico

Link de acesso: https://dbdiagram.io/d/acali-68cf622c960f6d821a0eaa23 acali (5)

Clone this wiki locally