Neoway é uma aplicação web desenvolvida para cadastrar e listar clientes de uma empresa fictícia que fornece serviços B2C e B2B. O sistema permite o cadastro de clientes com CPF/CNPJ, consulta, busca e ordenação dos registros, bem como a validação dos documentos cadastrados. O projeto é implementado com uma arquitetura baseada em microserviços, utilizando Go para o backend e Vue.js para o frontend, com o PostgreSQL como banco de dados.
A arquitetura do projeto é organizada da seguinte forma:
neoway/
│
├── backend/
│ ├── main.go
│ ├── controllers/
│ │ ├── client_controller.go
│ │ └── status_controller.go
│ ├── models/
│ │ ├── client.go
│ │ └── repository.go
│ ├── routes/
│ │ └── routes.go
│ ├── utils/
│ │ └── cpfcnpj.go
│ └── database/
│ └── db.go
│
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ │ ├── ClientForm.vue
│ │ │ ├── ClientList.vue
| | | └── Status.vue
| │ ├── router/
| | │ └── index.js
| │ ├── store/
│ │ | └── index.js
│ │ ├── views/
│ │ │ └── Home.vue
│ │ ├── App.vue
| | └── main.js
│ ├── public/
│ │ └── index.html
│ └── package.json
│
├── docker/
│ ├── Dockerfile
│ └── docker-compose.yml
│
├── tests/
│ ├── client_test.go
| ── integration_test.go
└── README.md
- Backend: Go (Golang), Beego framework, PostgreSQL, pacote
cpfcnpj
- Frontend: Vue.js
- Banco de Dados: PostgreSQL
- Conteinerização: Docker
- Testes: Ginkgo, Jest
Para execução local basta ter o PostgreSQL instalado que será feita conexão e os bancos de dados neoway_db
e neoway_test
são criados automaticamente.
Backend
Para gerenciar as dependências do backend em Go, utilizamos o módulo Go. As dependências são especificadas no arquivo go.mod
e podem ser atualizadas usando os seguintes comandos:
-
Instalar Dependências: Navegue até o diretório
backend
e execute:cd backend go mod download
-
Atualizar Dependências: Se precisar adicionar novas dependências ou atualizar as existentes, execute:
go mod tidy
Frontend
Para o frontend, utilizamos o npm (Node Package Manager) para gerenciar as dependências do Vue.js. As dependências são listadas no arquivo package.json
.
-
Instalar Dependências: Navegue até o diretório
frontend
e execute:cd frontend npm install
-
Atualizar Dependências: Para atualizar as dependências, execute:
npm update
Primeiro, você precisa garantir que o servidor backend esteja rodando. Se você ainda não configurou um script para iniciar o backend, você pode fazer isso manualmente. Navegue até o diretório backend
e execute:
go run main.go
Para iniciar o servidor de desenvolvimento do frontend, navegue até o diretório do frontend e execute o comando:
npm run serve
Isso iniciará o servidor de desenvolvimento Vue.js e você deve ser capaz de acessar o backend em http://localhost:8080
e o frontend em http://localhost:8081
go test ./tests
Executando a Aplicação com Docker
-
Criação e Execução dos Containers: No diretório raiz do projeto (
neoway
), execute:docker-compose up --build
Este comando cria e inicia os containers definidos no
docker-compose.yml
. O parâmetro--build
força a reconstrução das imagens dos containers, garantindo que todas as alterações sejam aplicadas. -
Verificação dos Containers: Para verificar se os containers estão em execução, use:
docker-compose ps
-
Parar e Remover os Containers: Para parar e remover os containers, execute:
docker-compose down
- Backend: A API pode ser acessada em
http://localhost:8080
. - Frontend: A interface do usuário pode ser acessada em
http://localhost:8081
.