Você deve desenvolver uma aplicação web simples com Laravel, Blade e/ou Livewire e Tailwind CSS com as seguintes funcionalidades:
- Implementar um sistema de login.
- Apenas usuários autenticados podem acessar as telas de produtos.
Cada produto deve conter os seguintes campos:
- Nome (string)
- SKU (string)
- Imagem (upload ou URL)
- Ativo (boolean)
- Preço (decimal)
- Estoque (inteiro)
- Criado por (nome do usuário que criou)
- Data de criação (timestamp)
- Data de atualização (timestamp)
-
Listagem de produtos com:
- Campo de busca por
NomeouSKU. - Ordenação por qualquer coluna.
- Indicação de status (Ativo/Inativo).
- Campo de busca por
-
Criação de produtos:
- Formulário simples.
- Exibir mensagem de feedback de sucesso ou erro.
-
Edição de produtos:
- Feita através de um modal.
- Mensagem de feedback após a atualização.
-
Deleção de produtos:
- Deve solicitar uma confirmação antes de excluir.
- Laravel (versão livre, sugerimos a mais recente).
- Tailwind CSS para toda a estilização.
- Blade e/ou Livewire para componentização.
- Componentização será avaliada: use componentes de Blade ou Livewire sempre que possível.
- A aplicação deve ser responsiva.
- A listagem deve ter paginação (não precisa ser infinita, pode ser padrão do Laravel).
- Implementar testes automatizados básicos com PEST PHP.
- Utilizar Livewire para interatividade (principalmente na busca, ordenação e modal).
- UX bem resolvida: modais fluidos, mensagens de feedback claras.
- Utilização de validação dos campos dos formulários.
- Uso de Soft Deletes para a deleção de produtos.
-
Disponibilizar o código em um repositório público no GitHub.
-
Incluir um README explicando:
- Como rodar o projeto.
- Tecnologias utilizadas.
- Quais funcionalidades obrigatórias e opcionais foram implementadas.
- Estrutura e organização do código.
- Fidelidade aos requisitos.
- Clareza na implementação.
- Uso adequado de Laravel e Tailwind.
- Atenção à UX e responsividade.
- Implementação de diferenciais.
- Usuário acessa
/login, se autentica. - Redireciona para
/produtos. - Vê a lista de produtos com busca, ordenação e paginação.
- Clica em Editar → modal abre → edita → vê mensagem de sucesso.
- Clica em Excluir → confirmação → produto excluído.
- Clica em Novo Produto → formulário → cria → vê mensagem de sucesso.
- Não usar pacotes prontos de CRUD.
- Não usar Admin Panels automáticos como Laravel Nova, Filament, etc.
- O foco é demonstrar domínio da stack e boas práticas.