Este repositório contém a solução para a avaliação técnica da WiseChats, com foco em uma aplicação full stack utilizando Laravel 11 no backend e Next.js 15 + TypeScript no frontend.
O desafio propôs o desenvolvimento de uma plataforma administrativa para gestão de pedidos, com autenticação de usuários, CRUD completo de pedidos e feedbacks visuais no frontend.
O backend deveria expor uma API RESTful e o frontend consumi-la via chamadas HTTP seguras.
- Laravel 11
- PHP 8.3
- Laravel Sanctum (autenticação)
- Spatie Laravel Data (DTOs)
- PHPUnit (testes)
- Next.js 15 (App Router)
- TypeScript
- Tailwind CSS
- shadcn/ui
- Axios (consumo de API)
- React Hook Form + Zod (validação de formulário)
- Docker
- Docker Compose
- Cadastro, login e autenticação de usuários com Sanctum
- CRUD completo de pedidos:
- Pedido contém dados do cliente (nome e email)
- Lista de produtos com nome, quantidade, preço unitário e total calculado
- CRUD de produtos: criação, edição, listagem e exclusão
- CRUD de usuários: gerenciamento completo (restrito a usuários autenticados)
- DTOs com validações robustas usando Spatie Laravel Data
- Testes de API com PHPUnit para garantir estabilidade das funcionalidades principais
- Tela de login com autenticação integrada à API
- Tela de listagem de pedidos com funcionalidades de edição e exclusão
- Tela de listagem de produtos com opções de criação, edição e exclusão
- Tela de criação e edição de pedidos com suporte a múltiplos produtos dinâmicos
Obs.: A única funcionalidade não implementada foi o teste unitário com Jest no frontend.
- Docker
- Docker Compose
-
Clone o repositório:
git clone https://github.com/traozin/wisechats-app cd wisechats-app -
Suba os containers:
docker-compose up --build
-
Acesse:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000/api/v1/ping
POST /api/v1/login— Login do usuárioPOST /api/v1/users— Cadastro de novo usuárioGET /api/v1/me— Dados do usuário autenticadoPOST /api/v1/logout— Logout
GET /api/v1/orders— Listar pedidosPOST /api/v1/orders— Criar pedidoPUT /api/v1/orders/{id}— Atualizar pedidoDELETE /api/v1/orders/{id}— Deletar pedido
GET /api/v1/products— Listar produtosPOST /api/v1/products— Criar produtoGET /api/v1/products/{id}— Detalhes do produtoPUT /api/v1/products/{id}— Atualizar produtoDELETE /api/v1/products/{id}— Deletar produto
GET /api/v1/users— Listar usuáriosGET /api/v1/users/{id}— Detalhes do usuárioPUT /api/v1/users/{id}— Atualizar usuárioDELETE /api/v1/users/{id}— Deletar usuário
GET /api/v1/ping— Endpoint de teste (retorna "pong")
Enviado como parte da avaliação técnica para a vaga na WiseChats.