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