Skip to content

rafaelmoura23/saep-pratica

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 

Repository files navigation

SAEP - Prova prática - To-do List

Prova prática do saep - 12.11.2024

Diagrama de Classe

classDiagram
    direction LR
    
    class Usuario {
        +int id(PK)
        +String nome
        +String email
    }

    class Tarefa {
        +int id(PK)
        +int id_usuario(FK)
        +String descricao
        +String setor
        +String prioridade  // baixa, média, alta
        +Date dataCadastro
        +String status     // *a fazer, fazendo, pronto
        +atualizarStatus()
        +atualizarPrioridade()
    }

    Usuario "(1,1)" --> "(0,n)" Tarefa : possui
Loading
  • Usuario (1,1) - cada tarefa é sempre associada a um único usuário.
  • Tarefa (0,n) - um usuário pode estar associado a várias tarefas (0 ou mais).

Diagrama de Uso

%%{ init: { "nodeSpacing": 50, "edgeSpacing": 20, "curve": "linear" } }%%
graph TD
    U[Usuário] -->|Cadastrar Usuário| UC1[Cadastro de Usuário]
    U -->|Cadastrar Tarefa| UC2[Cadastrar Tarefa]
    U -->|Visualizar Tarefas| UC3[Visualizar Tarefas]
    U -->|Atualizar Tarefa| UC4[Atualizar Tarefa]
    U -->|Alterar Status| UC5[Alterar Status da Tarefa]
    U -->|Alterar Prioridade| UC6[Alterar Prioridade da Tarefa]
    U -->|Editar Atributos| UC7[Editar Atributos da Tarefa]
    U -->|Excluir Tarefa| UC8[Excluir Tarefa]

Loading

ScriptDB - PostgreSQL

-- Banco de dados
CREATE DATABASE todo_saep;

-- Tabela Usuario
CREATE TABLE Usuario (
    id SERIAL PRIMARY KEY,
    nome VARCHAR(255) NOT NULL, 
    email VARCHAR(255) UNIQUE NOT NULL
);

-- Tabela Tarefa
CREATE TABLE Tarefa (
    id SERIAL PRIMARY KEY,  
    id_usuario INT NOT NULL,
    descricao TEXT NOT NULL, 
    setor VARCHAR(255) NOT NULL,
    prioridade VARCHAR(50) NOT NULL,  -- Prioridade (baixa, média, alta)
    dataCadastro TIMESTAMP DEFAULT CURRENT_TIMESTAMP, 
    status VARCHAR(50) DEFAULT 'a fazer',
    FOREIGN KEY (id_usuario) REFERENCES Usuario(id) ON DELETE CASCADE  -- (FK)
);

Migrations

# Usuarios
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * Run the migrations.
     */

    public function up(): void
    {
        // criando a tabela usuario com id, nome e email
        Schema::create('usuarios', function (Blueprint $table) {
            $table->id();
            $table->string('nome');
            $table->string('email')->unique();
            $table->timestamps();
        });
    }


    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('usuarios');
    }
};
# Tarefas
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        // criando a tabela tarefas com os atributos id, setor, prioridade, descricao, status, idusuario e data
        Schema::create('tarefas', function (Blueprint $table) {
            $table->id();
            $table->string('descricao');
            $table->string('setor');
            $table->enum('prioridade', ['baixa', 'média', 'alta']);
            $table->enum('status', ['a fazer', 'fazendo', 'pronto'])->default('a fazer');
            $table->foreignId('usuario_id')->constrained('usuarios')->onDelete('cascade');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('tarefas');
    }
};

About

prova prática do saep - 12.11.2024

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages