Este é um projeto fullstack desenvolvido como parte de um teste para a vaga de Desenvolvedor Trainee Fullstack na UOL. O aplicativo permite aos usuários visualizar e criar clientes, com um frontend responsável pela interface do usuário e comunicação com a API, e um backend responsável pelo armazenamento e gerenciamento dos dados dos clientes.
-
Tecnologias Principais:
- TypeScript
- React
- Context API
- Hooks
-
Bibliotecas e Frameworks:
- Axios: Para comunicação com a API.
- Formik: Para validação de formulários.
- Yup: Para definição de esquemas de validação.
- React Input Mask: Para aplicar máscaras em inputs.
- SweetAlert2: Para exibir modais e alertas personalizados.
-
Testes:
- Jest: Framework de testes.
- @testing-library/react: Para testes de componentes.
- @testing-library/jest-dom: Para extensões de expectativas.
-
Tecnologias Principais:
- Java
- Spring Framework
-
Banco de Dados:
- SQLite
- Spring Data JPA
-
Testes:
- JUnit: Framework de testes para Java.
mvn test
: Roda os testes do backend.mvn clean test jacoco:report
: Roda os testes de cobertura do backend.
Há um README especifico para o backend na pasta /backend com as tipos de validações e formato das requisições.
Para executar os scripts do frontend, você precisará do npm instalado em sua máquina.
npm start
: Inicia o servidor de desenvolvimento do frontend.npm run build
: Compila o projeto para produção.npm test
: Executa os testes do frontend.npm run coverage
: Executa os testes de cobertura do frontend.npm run eject
: Ejeta a configuração do webpack para personalização avançada.npm run lint
: Executa o ESLint para análise estática do código.
Para executar a aplicação, siga os seguintes passos:
- Certifique-se de ter o Docker instalado em sua máquina.
- Navegue até a raiz do projeto.
- Execute o comando
docker-compose up
. Isso iniciará o container Docker para o frontend e o backend, bem como o banco de dados SQLite. - Após a inicialização, acesse o aplicativo através do navegador usando o endereço http://localhost:3000/.
A aplicação está publicada na seguinte URL:
- Frontend: https://marchiori-app-gerenciamento-clientes.surge.sh/
- Frontend: https://cadastro-clientes-frontend.vercel.app//
- Backend: https://client-management-api.fly.dev/
Para o deploy, foram utilizadas as seguintes ferramentas:
- Frontend: Surge.sh
- Frontend: Vercel
- Backend: Fly.io
Para executar o backend localmente, siga estas etapas:
- Certifique-se de ter o Java Development Kit (JDK) instalado em sua máquina.
- Navegue até o diretório do backend (
./backend/client-management-api
). - Execute o comando
./mvnw spring-boot:run
para iniciar o servidor Spring Boot localmente. - O backend estará disponível em
http://localhost:8080
.
O código está completamente documentado, explicando a responsabilidade de cada componente, função, etc. Isso visa facilitar a compreensão e manutenção do código no futuro.
O código foi escrito seguindo boas práticas de desenvolvimento e arquitetura, visando a legibilidade, organização e manutenibilidade do código. Além disso, foram realizados testes tanto no frontend quanto no backend para garantir a integridade e robustez da aplicação.
Para qualquer dúvida ou problema, não hesite em entrar em contato.