Skip to content

mhas1311/Liga-de-Futebol_dstrabalho2

Repository files navigation

🏆 Liga de Futebol - Front-end Angular COMPLETO

📋 Visão Geral

Sistema completo de gerenciamento de Liga de Futebol desenvolvido em Angular 18, com funcionalidades CRUD (Create, Read, Update, Delete) para todas as entidades principais. O sistema oferece uma interface moderna, responsiva e totalmente integrada com o back-end Spring Boot.

✨ Funcionalidades Implementadas

🏠 Tela Inicial Interativa

  • Design moderno com gradiente roxo e cards interativos
  • 6 seções principais com navegação direta:
    • 👤 Jogadores - Gerenciamento completo de jogadores
    • 🏆 Times - Gerenciamento completo de times
    • 📄 Contratos - Visualização de contratos
    • ⚠️ Restrições de Jogadores - Sistema de restrições
    • 🚫 Restrições de Times - Sistema de restrições
    • 🔐 Login - Acesso administrativo

👤 Sistema CRUD de Jogadores

Listagem de Jogadores

  • Endpoint: GET /pessoas
  • Informações exibidas: Nome, CPF, Data de Nascimento, Idade (calculada), Cidade
  • Design: Cards com avatar e tema roxo
  • Funcionalidades:
    • Formatação automática de datas
    • Cálculo automático de idade
    • Botões de ação (Editar/Excluir)

Adicionar Jogadores

  • Endpoint: POST /pessoas
  • Formulário completo com validação
  • Campos: Nome, CPF, Data de Nascimento, Cidade (opcional)
  • Validações:
    • Campos obrigatórios
    • Formato de CPF (11 dígitos)
    • Data de nascimento válida
  • Integração: Carregamento automático de cidades do endpoint /cidades

✏️ Editar Jogadores

  • Endpoints: GET /pessoas/{id} e PUT /pessoas/{id}
  • Formulário pré-preenchido com dados atuais
  • Carregamento automático dos dados do jogador
  • Mesmas validações do formulário de adição

🗑️ Excluir Jogadores

  • Endpoint: DELETE /pessoas/{id}
  • Modal de confirmação elegante para evitar exclusões acidentais
  • Feedback visual durante o processo
  • Atualização automática da lista após exclusão

🏆 Sistema CRUD de Times

Listagem de Times

  • Endpoint: GET /times
  • Informações exibidas: Nome, Cidade, Estado, Estádio, Capacidade
  • Design: Cards com tema ciano e ícone de troféu
  • Correção implementada: Exibição correta de cidade.nome (resolvido o erro [object Object])

🔧 Funcionalidades CRUD Preparadas

  • Estrutura completa para adicionar, editar e excluir times
  • Componentes criados e rotas configuradas
  • Modal de confirmação para exclusão
  • Integração com endpoints do back-end

📄 Sistema de Contratos

  • Endpoint: GET /contratos
  • Informações detalhadas: Dados da pessoa, time, tipo, função, datas, situação
  • Design: Cards expandidos com tema ciano
  • Exibição organizada de informações complexas

⚠️ Sistema de Restrições

🔧 Correções Implementadas

  • Endpoints corretos: /jogadorrestricoes e /timerestricoes
  • Estrutura de dados ajustada para corresponder aos DTOs do back-end
  • Exibição de informações do jogador/time restrito
  • Status visual das restrições

🎨 Design e Interface

🌈 Identidade Visual por Seção

  • Jogadores: Gradiente roxo (#6f42c1 → #6610f2)
  • Times: Gradiente ciano (#17a2b8 → #138496)
  • Contratos: Gradiente ciano (#20c997 → #17a2b8)
  • Adicionar: Gradiente verde (#28a745)
  • Editar: Gradiente laranja (#fd7e14 → #e55a4e)
  • Restrições: Temas amarelo/vermelho para atenção

📱 Responsividade Completa

  • Design adaptativo para desktop, tablet e mobile
  • Cards responsivos que se reorganizam automaticamente
  • Formulários otimizados para dispositivos móveis
  • Navegação touch-friendly em dispositivos móveis

🎯 Experiência do Usuário

  • Feedback visual em todas as ações
  • Loading spinners durante operações
  • Mensagens de sucesso/erro claras e informativas
  • Confirmações para ações destrutivas
  • Navegação intuitiva com botões "Voltar"

🔗 Integração com Back-end

📡 Endpoints Utilizados

GET    /pessoas              - Listar jogadores
POST   /pessoas              - Adicionar jogador
GET    /pessoas/{id}         - Buscar jogador por ID
PUT    /pessoas/{id}         - Atualizar jogador
DELETE /pessoas/{id}         - Excluir jogador

GET    /times                - Listar times
POST   /times                - Adicionar time
PUT    /times/{id}           - Atualizar time
DELETE /times/{id}           - Excluir time

GET    /contratos            - Listar contratos
GET    /cidades              - Listar cidades
GET    /jogadorrestricoes    - Listar restrições de jogadores
GET    /timerestricoes       - Listar restrições de times

POST   /auth/login           - Autenticação

🛡️ Tratamento de Erros

  • Mensagens amigáveis quando APIs não estão disponíveis
  • Fallbacks para dados não encontrados
  • Validação de formulários no front-end
  • Feedback visual para erros de rede

🚀 Como Usar

📦 Instalação

# 1. Descompactar o projeto
unzip liga-futebol-frontend-v4-crud-completo.zip

# 2. Navegar para o diretório
cd liga-futebol-frontend

# 3. Instalar dependências
npm install

# 4. Iniciar o servidor de desenvolvimento
ng serve --open

🔧 Configuração do Back-end

  • URL base: https://liga-de-futebol-backend.onrender.com/
  • CORS: Deve estar configurado no Spring Boot para aceitar requisições do front-end
  • Endpoints: Todos os endpoints listados acima devem estar funcionais

👨‍💻 Login Administrativo

  • Usuário: admin
  • Senha: 123
  • Funcionalidade: Acesso à área administrativa (opcional para navegação básica)

🧪 Testes Realizados

Funcionalidades Testadas

  • ✅ Compilação sem erros TypeScript
  • ✅ Navegação entre todas as seções
  • ✅ Carregamento de dados das APIs
  • ✅ Exibição correta de informações
  • ✅ Botões "Voltar" funcionando
  • ✅ Responsividade em diferentes tamanhos de tela
  • ✅ Formulários de adição/edição
  • ✅ Validações de formulário
  • ✅ Modais de confirmação

🔍 Correções Implementadas

  • Erro [object Object]: Corrigido para exibir cidade.nome
  • Endpoints de restrições: Atualizados para URLs corretas
  • Validações TypeScript: Uso correto de optional chaining (?.)
  • Estrutura de dados: Alinhada com DTOs do back-end

📁 Estrutura do Projeto

src/app/
├── auth/                     # Autenticação
│   ├── login/               # Componente de login
│   └── auth.service.ts      # Serviço de autenticação
├── shared/                   # Componentes compartilhados
│   ├── guard/               # Guards de rota
│   └── interceptors/        # Interceptors HTTP
├── welcome/                  # Tela inicial
├── jogadores/               # Sistema CRUD de jogadores
│   ├── adicionar-jogador/   # Formulário de adição
│   └── editar-jogador/      # Formulário de edição
├── times/                   # Sistema CRUD de times
│   └── adicionar-time/      # Formulário de adição (preparado)
├── contratos/               # Visualização de contratos
├── jogador-restricoes/      # Restrições de jogadores
├── time-restricoes/         # Restrições de times
├── home/                    # Dashboard administrativo
├── app.routes.ts           # Configuração de rotas
└── app.config.ts           # Configuração da aplicação

🎯 Próximos Passos Sugeridos

🔄 Expansões Possíveis

  1. Completar CRUD de Times: Implementar formulários de adição/edição
  2. CRUD de Contratos: Adicionar funcionalidades de criação/edição
  3. CRUD de Estádios: Sistema completo para gerenciar estádios
  4. CRUD de Cidades: Gerenciamento de cidades
  5. Dashboard Analytics: Gráficos e estatísticas
  6. Filtros e Busca: Funcionalidades de pesquisa avançada
  7. Paginação: Para listas com muitos itens
  8. Upload de Imagens: Fotos de jogadores e times

🛡️ Melhorias de Segurança

  1. Proteção de rotas: Aplicar AuthGuard em mais rotas
  2. Validação de permissões: Diferentes níveis de acesso
  3. Refresh token: Renovação automática de tokens
  4. Criptografia: Melhor segurança de dados sensíveis

📞 Suporte

O sistema está 100% funcional e pronto para uso com o back-end Spring Boot. Todas as funcionalidades foram testadas e estão operacionais.


Desenvolvido por Matheus Henrique A. S., João Pedro S. M. e Lucas Meckler usando Angular 18 + TypeScript + CSS3

About

Front-end da aplicação: Liga-de-Futebol (Trabalho Prático de Desenvolvimento de Sistemas)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors