fonluc / neoway

Neoway is a web application developed to register and list clients of a fictional company that provides B2C and B2B services. The system allows for client registration with CPF/CNPJ, querying, searching, and sorting records, as well as validating the registered documents. The project is implemented with a microservices-based architecture, using Go.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Neoway

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.

Arquitetura

A arquitetura do projeto é organizada da seguinte forma:

Estrutura de Pastas:

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

Tecnologias

  • Backend: Go (Golang), Beego framework, PostgreSQL, pacote cpfcnpj
  • Frontend: Vue.js
  • Banco de Dados: PostgreSQL
  • Conteinerização: Docker
  • Testes: Ginkgo, Jest

Instalação e Configuração

Gerenciamento de Dependências

Configuração do Banco de Dados

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:

  1. Instalar Dependências: Navegue até o diretório backend e execute:

    cd backend
    go mod download
  2. 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.

  1. Instalar Dependências: Navegue até o diretório frontend e execute:

    cd frontend
    npm install
  2. Atualizar Dependências: Para atualizar as dependências, execute:

    npm update

Inicialização do Projeto

Servidor Backend

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

Servidor Frontend

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

Executar Testes Unitários e de Integração:

go test ./tests

Executando a Aplicação com Docker

  1. 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.

  2. Verificação dos Containers: Para verificar se os containers estão em execução, use:

    docker-compose ps
  3. Parar e Remover os Containers: Para parar e remover os containers, execute:

    docker-compose down

Acessando a Aplicação

  • Backend: A API pode ser acessada em http://localhost:8080.
  • Frontend: A interface do usuário pode ser acessada em http://localhost:8081.

Testes de Endpoints na Própia Interface da Aplicação

Captura de tela 2024-08-14 011853

Cadastro de Clientes

Captura de tela 2024-08-14 013749

Consulta de Todos os Clientes

Captura de tela 2024-08-14 011912

Consulta de Cliente Específico

Captura de tela 2024-08-14 013817

Validação do Número do CPF/CNPJ

Captura de tela 2024-08-14 013801

Endpoint de Suporte

Captura de tela 2024-08-14 011929

About

Neoway is a web application developed to register and list clients of a fictional company that provides B2C and B2B services. The system allows for client registration with CPF/CNPJ, querying, searching, and sorting records, as well as validating the registered documents. The project is implemented with a microservices-based architecture, using Go.


Languages

Language:Go 96.3%Language:Dockerfile 3.7%