Este é o frontend do sistema desenvolvido para o desafio técnico, projetado para ser moderno e elegante, com foco em uma interface intuitiva para gerenciar clientes. Ele consome o backend implementado no projeto correspondente.
- React com Vite para um setup rápido e leve.
- React Router Dom para gerenciar as rotas.
- React Icons e React Toastify para ícones e notificações.
- React Confirm Alert para exibição de alertas customizáveis.
- React Input Mask para formatação de campos como CPF, telefone e CEP.
- CSS Customizado com animações e transições para uma experiência moderna.
src
├── assets
├── components
│ └── ClienteForm.jsx
├── context
│ └── AuthContext.jsx
├── pages
│ ├── ClientesPage.jsx
│ ├── ClientesPage.css
│ ├── LoginPage.jsx
│ └── LoginPage.css
├── App.css
├── App.jsx
├── index.css
├── main.jsx
- Node.js: v18.17.1
- npm: v9.6.7
Crie um arquivo .env na raiz do projeto e adicione o seguinte conteúdo:
VITE_API_URL=https://desafio-backend-production-bcb7.up.railway.app
Obs.: No ambiente de produção (Vercel), as variáveis de ambiente foram configuradas diretamente na interface de deployment.
-
Clone o repositório:
git clone https://github.com/MarcosCast/desafio-frontend.git cd desafio-frontend -
Instale as dependências:
npm install
-
Execute o servidor de desenvolvimento:
npm run dev
-
Acesse o frontend localmente em:
http://localhost:5173.
O projeto está hospedado no Vercel e pode ser acessado no link abaixo:
-
Login Page:
- Autenticação com usuários de diferentes permissões (Admin e Usuário).
- Animações e design com keyframes para uma experiência moderna.
- Validação básica de credenciais.
-
Clientes Page:
- Listagem dos clientes cadastrados.
- Botão para criar, editar ou excluir clientes (dependendo da permissão do usuário).
- Ordenação dinâmica por colunas (ex.: Nome, CPF).
- Visualização de informações detalhadas como telefone, e-mails e endereços.
- Ícones e animações para ações.
- ClienteForm: Um formulário customizável para criar ou editar clientes, com validação de campos (ex.: CPF, CEP e e-mails).
O projeto utiliza o Context API para gerenciamento de autenticação, armazenando os dados do usuário logado e permitindo logout de forma fácil.
- Refatorar o gerenciamento de estado (ex.: Redux ou Context API com Reducers).
- Melhorar a comunicação entre os componentes usando Props ou Context.
- Expandir a funcionalidade para um sistema de gerenciamento completo, incluindo:
- Paginação para a listagem de clientes.
- Relatórios exportáveis (PDF/Excel).
- Gráficos analíticos.
Este projeto foi desenvolvido como parte de um desafio técnico e não possui licença especificada.