Indústria do Ramo Alimentício: Uma indústria, do ramo alimentício, gerencia tarefas de seus setores utilizando o kanban. Não foi realizado um mapeamento do fluxo de cada setor, apenas é feito o controle das tarefas em modelo simplificado como o to do list, onde as etapas são divididas em: a fazer, fazendo e pronto. O kanban foi utilizado por compartilhar as informações de forma visual, aumentando a transparência e permitindo que toda equipe do setor fique ciente das tarefas. Porém, a necessidade da empresa é aumentar a visibilidade das tarefas e integrar as informações entre todos os setores.
Objetivo:
Desenvolver uma aplicação web sobre um gerenciamento de tarefas
e de usuarios
, na qual o administrador poderá cadastrar usuários e tarefas, correlacionando ambos. Além disso, ele poderá fazer o gerenciamento das tarefas (CRUD)
O gerenciador de tarefas será desenvolvido utilizando Node.js
para o backend e React e Next.js
para o frontend, com Postgres
como banco de dados.
classDiagram
class Usuario {
+Integer id
+String nome
+String email
+List~Tarefa~ tarefas
+cadastrarTarefa(descricao: String, setor: String, prioridade: String): Tarefa
}
class Tarefa {
+Integer id
+String descricao
+String setor
+String prioridade
+Date dataCadastro
+String status = "a fazer"
+gerenciarStatus(status: String)
+gerenciarPrioridade(prioridade: String)
}
Usuario "1" -- "0..*" Tarefa : cadastra
class Kanban {
+List~Tarefa~ aFazer
+List~Tarefa~ fazendo
+List~Tarefa~ pronto
+exibirTarefasPorStatus(status: String): List~Tarefa~
}
Tarefa --> Kanban : é exibida em
flowchart TD
A[Usuário] --> B[Cadastrar Tarefa]
A --> C[Atualizar Tarefa]
A --> D[Excluir Tarefa]
A --> E[Visualizar Tarefas por Status]
A --> F[Alterar Status da Tarefa]
A --> G[Alterar Prioridade da Tarefa]
B -- inclui --> E
C -- inclui --> E
F -- parte de --> C
G -- parte de --> C
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
generator client {
provider = "prisma-client-js"
}
model User {
id Int @id @default(autoincrement())
nome String
email String @unique
tasks Task[]
}
model Task {
id Int @id @default(autoincrement())
descricao String
setor String
prioridade String
dataCadastro DateTime @default(now())
status String @default("a fazer")
userId Int
user User @relation(fields: [userId], references: [id])
}