🌎 Languages:
🇧🇷 Português |
🇺🇸 English
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 (
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
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 🚀
Este projeto está sob a licença MIT.
Piter Gomes — Aluno de Ciências da Computação (5º Semestre) & Desenvolvedor Full-Stack