O Customer Manager App é uma aplicação Full Stack desenvolvida para gerenciar clientes de forma simples, moderna e eficiente.
O projeto implementa um CRUD completo (Create, Read, Update, Delete) utilizando Spring Boot no backend e Angular no frontend, com integração direta via API RESTful e persistência de dados em MySQL.
O objetivo principal deste projeto é consolidar o aprendizado e a prática de um ambiente full stack Java + Angular, cobrindo todas as etapas de desenvolvimento de uma aplicação moderna:
- Criação e consumo de APIs REST
- Uso de componentes standalone e reativos no Angular
- Integração entre frontend e backend
- Manipulação de dados reais em banco relacional
- Testes, boas práticas e arquitetura limpa
Este projeto também serve como um modelo de referência para quem deseja entender como estruturar um CRUD completo utilizando tecnologias amplamente usadas no mercado.
A estrutura geral é dividida entre frontend (Angular) e backend (Spring Boot):
customer-manager-app/ │ ├── backend/ │ ├── src/main/java/com/example/customer/ │ │ ├── controller/CustomerController.java │ │ ├── service/CustomerService.java │ │ ├── repository/CustomerRepository.java │ │ └── model/Customer.java │ ├── resources/application.properties │ └── pom.xml │ └── frontend/ ├── src/app/ │ ├── components/ │ │ ├── post-customer/ │ │ ├── update-customer/ │ │ └── get-all-customers/ │ ├── service/customer.service.ts │ ├── model/customer.ts │ └── app.routes.ts ├── assets/ ├── styles.css └── angular.json| Categoria | Tecnologias |
|---|---|
| Backend | ☕ Java 17+, 🌀 Spring Boot (Web, JPA, Validation), 🌐 CORS Config |
| Frontend | ⚡ Angular 18+, 💻 TypeScript, 🎨 CSS3, 🧱 HTML5 |
| Banco de Dados | 🐬 MySQL |
| Testes & APIs | 🧪 Postman, ✅ HttpClientTestingModule |
| IDE & Ferramentas | 🧰 IntelliJ IDEA, 🧩 VSCode |
- Java 17+
- Node.js 18+
- Angular CLI instalado globalmente (
npm install -g @angular/cli) - MySQL em execução
Crie um banco no MySQL:
CREATE DATABASE customer_db;Edite o arquivo application.properties no backend:
spring.datasource.url=jdbc:mysql://localhost:3306/customer_db spring.datasource.username=root spring.datasource.password=sua_senha spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=trueNo diretório /backend:
mvn spring-boot:runO backend estará disponível em: 👉 http://localhost:8080/api/customers
No diretório /frontend:
npm install ng serveO frontend estará disponível em: 👉 http://localhost:4200
O Customer Manager App oferece um CRUD completo com uma interface moderna e responsiva.
-
➕ Criar Cliente:
Formulário reativo com validação e feedback visual. -
📋 Listar Clientes:
Tabela responsiva com botões de ação (Atualizar / Deletar). -
✏️ Atualizar Cliente:
Edição de dados com formulário pré-preenchido via ID. -
❌ Deletar Cliente:
Exclusão com atualização instantânea da lista. -
🌈 Interface Moderna:
- Gradiente roxo-rosado de fundo (
#654ea3 → #eaafc8) - Tipografia Inter
- Botões com hover e foco
- Layout centralizado e responsivo
- Gradiente roxo-rosado de fundo (
- Initial commit: Estrutura base frontend + backend
- feat: Setup completo do CRUD com rotas, formulários e integração com API
- refactor: Criação do modelo
Customerem TypeScript e ajustes emCustomerService - fix: Corrigido problema de visibilidade do formulário e provider HTTP global
- style: Adição de gradientes, tipografia moderna e responsividade
- feat: Implementação de endpoints GET, POST, PUT, DELETE no Spring Boot
- feat: Integração total com o Angular (GetAll, Post, Update, Delete)
- style(ui): Padronização dos estilos e melhoria da usabilidade
Durante o desenvolvimento deste projeto foram aplicadas diversas boas práticas:
- Uso de componentes standalone no Angular
- Reactive Forms com validação e patch de dados
- Testes unitários com HttpClientTestingModule
- Integração REST entre Angular e Spring Boot
- Configuração de CORS e rotas dinâmicas
- Estilização moderna e UX responsiva
Este projeto está sob a licença MIT.
Você é livre para usar, modificar e distribuir este código, desde que mantenha os créditos originais.
Contribuições são muito bem-vindas!
Para colaborar:
- Faça um fork do repositório
- Crie uma branch:
git checkout -b feature/nova-funcionalidade - Commit suas alterações seguindo o padrão Conventional Commits
- Envie um Pull Request 🚀
Piter Gomes
Desenvolvedor Full Stack em formação.
📧 Email: piterg.bio@gmail.com
💼 LinkedIn: linkedin.com/in/piter-gomes-4a39281a1
🌐 Portfólio: my-portfolio-flame-mu-xxis8wes4p.vercel.app