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.
- 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
- 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)
- 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
- Endpoints:
GET /pessoas/{id}ePUT /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
- 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
- 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])
- 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
- 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
- Endpoints corretos:
/jogadorrestricoese/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
- 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
- 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
- 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"
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
- 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
# 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- 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
- Usuário:
admin - Senha:
123 - Funcionalidade: Acesso à área administrativa (opcional para navegação básica)
- ✅ 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
- ✅ Erro
[object Object]: Corrigido para exibircidade.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
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
- Completar CRUD de Times: Implementar formulários de adição/edição
- CRUD de Contratos: Adicionar funcionalidades de criação/edição
- CRUD de Estádios: Sistema completo para gerenciar estádios
- CRUD de Cidades: Gerenciamento de cidades
- Dashboard Analytics: Gráficos e estatísticas
- Filtros e Busca: Funcionalidades de pesquisa avançada
- Paginação: Para listas com muitos itens
- Upload de Imagens: Fotos de jogadores e times
- Proteção de rotas: Aplicar AuthGuard em mais rotas
- Validação de permissões: Diferentes níveis de acesso
- Refresh token: Renovação automática de tokens
- Criptografia: Melhor segurança de dados sensíveis
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