Skip to content

RodrigoTorreao/UnBacklog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UnBacklog

UnBacklog é uma aplicação web para gestão ágil de projetos, desenvolvida como trabalho da disciplina de Engenharia de Software da Universidade de Brasília. A ferramenta combina funcionalidades de Kanban e Scrum, permitindo o gerenciamento de projetos, sprints e histórias de usuário.

✨ Funcionalidades

  • Autenticação e Autorização: Login e registro de usuários com JWT
  • Gestão de Projetos: Criação e visualização de projetos com controle de participantes
  • Histórias de Usuário: Criação, edição, exclusão e filtragem de histórias de usuário
  • Sprints: Gestão completa de sprints (criação, edição, exclusão, mudança de status)
  • Kanban Board: Visualização de histórias em colunas (To Do, Doing, Done)
  • Métricas: Visão geral do projeto com métricas-chave
  • Controle de Acesso: Diferentes papéis (Product Owner, Scrum Master, Developer) com permissões específicas

🛠️ Tecnologias

Backend

  • Java 17 com Spring Boot 3.5.6
  • Spring Security com autenticação JWT
  • Spring Data JPA para persistência
  • MySQL como banco de dados
  • Maven para gerenciamento de dependências

Frontend

  • React 19 com TypeScript
  • Vite como build tool
  • Material-UI (MUI) para componentes de UI
  • React Router para navegação
  • Axios para requisições HTTP
  • Emotion para estilização

Infraestrutura

  • Docker e Docker Compose para conteinerização do MySQL

🚀 Como Executar

Pré-requisitos

  • Node.js 18+ e npm/yarn
  • Java 17+ e Maven
  • Docker e Docker Compose

Passo 1: Iniciar o Banco de Dados

docker-compose up -d

Passo 2: Executar o Backend

cd server/UnBacklog
mvn spring-boot:run

O servidor estará disponível em http://localhost:8080

Passo 3: Executar o Frontend

cd client/UnBacklog
npm install
npm run dev

O frontend estará disponível em http://localhost:5173

📋 Funcionalidades Detalhadas

🔐 Autenticação e Segurança

  • Login de usuários: Autenticação via email e senha com validação de credenciais
  • Registro de novos usuários: Criação de conta com nome, email e senha
  • Sessões seguras: Tokens JWT assinados com RSA armazenados em cookies HTTP-only
  • Proteção de rotas: Middleware de autenticação em todas as requisições à API

📂 Gestão de Projetos

  • Criação de projetos: Definição de nome, descrição e participantes
  • Atribuição de papéis: Designação de funções (Product Owner, Scrum Master, Developer) para cada membro
  • Listagem personalizada: Visualização apenas dos projetos associados ao usuário logado
  • Visão geral: Dashboard com métricas do projeto (total de histórias, sprints completas, membros da equipe)

📝 Histórias de Usuário (User Stories)

  • CRUD completo: Criação, leitura, atualização e exclusão de histórias de usuário
  • Priorização: Classificação por níveis (Alta, Média, Baixa) para definição de ordem de execução
  • Controle de estado: Transição entre status (A Fazer, Em Progresso, Concluído)
  • Sistema de filtros: Busca por status, prioridade e atribuição
  • Associação a sprints: Vinculação de histórias a sprints específicas para planejamento

🏃 Sprints e Ciclos de Desenvolvimento

  • Criação de sprints: Definição de objetivo, datas de início/término e status
  • Estados do ciclo: Três fases - Planejada, Ativa e Concluída
  • Controle de execução: Apenas uma sprint pode estar ativa por vez, garantindo foco
  • Rastreabilidade: Visualização clara de quais histórias estão associadas a cada sprint
  • Gestão completa: Edição de detalhes, alteração de status e exclusão de sprints planejadas

📊 Quadro Kanban Interativo

  • Visualização visual: Representação em colunas do fluxo de trabalho (To Do, Doing, Done)
  • Operações drag-and-drop: Movimentação intuitiva de histórias entre colunas
  • Atualização em tempo real: Mudanças refletidas imediatamente no banco de dados
  • Interface responsiva: Adaptação para diferentes tamanhos de tela

👥 Controle de Acesso Baseado em Papéis (RBAC)

Papel Permissões
Product Owner Criar/editar/excluir projetos, histórias e sprints; Definir prioridades
Scrum Master Gerenciar quadro Kanban; Facilitar cerimônias; Ajustar fluxo de trabalho
Developer Visualizar projetos; Atualizar status de histórias; Marcar tarefas como concluídas

📚 Documentação de Engenharia de Software

O projeto inclui documentação técnica completa desenvolvida durante a disciplina:

  • architecture-notebook.odt: Documentação arquitetural detalhada do sistema
  • iteration_plan_tpl.odt: Modelo de planejamento de iterações/partidas
  • project_plan_tpl.odt: Plano completo do projeto com cronograma e recursos
  • systemwide_req_spec.odt: Especificação de requisitos do sistema
  • uc_specification_tpl.odt: Template de especificação de casos de uso
  • vision_tpl: Documento de visão do produto e escopo

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors