Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .browserslistrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
> 1%
last 2 versions
not dead
17 changes: 17 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
module.exports = {
root: true,
env: {
node: true
},
'extends': [
'plugin:vue/essential',
'eslint:recommended'
],
parserOptions: {
parser: '@babel/eslint-parser'
},
rules: {
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off'
}
}
23 changes: 23 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
.DS_Store
node_modules
/dist


# local env files
.env.local
.env.*.local

# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*

# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
143 changes: 51 additions & 92 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,92 +1,51 @@
# Venha para Recomb

O desafio é desenvolver um frontend para um módulo de pagamentos no sistema:

*Considere que:*
- Usuário (já “logado”) escolheu X produtos e clicou em “Pagar”

*Você deve criar:*
Uma página de pagamento (checkout) com múltiplos passos
que possibilite ao usuário:

1 - Escolher a opção de pagamento:

* Cartão de Crédito
* Boleto
* Pix

2 - Preencher as informações adicionais dependendo do método:

* Cartão de Crédito: Escolha da bandeira e preenchimento das informações (Número de cartão, código CVV, data de vencimento mm/aaaa e Nome do titular, CPF/CNPJ) e número de parcelas

* Boleto: CPF, Nome, Sobrenome e e-mail

* Pix: Deve pular a segunda etapa

3 - Visualizar o instrumento de pagamento:

* Cartão de Crédito: Página aguardando aprovação do pagamento pela operadora

* Boleto: Deve exibir o código de barras do boleto, data de vencimento e botão para download do pdf do boleto

* Pix: Deve exibir o QRCode e um contador decrescente para expiração do mesmo

4 - Visualizar o resumo da compra:

* Produtos comprados (foto, nome e descrição)

* Método de pagamento escolhido

* Data da compra

* Previsão de entrega

**Escolha as tecnologias que você vai usar e tente montar uma solução completa para rodar a aplicação.**

Para enviar o resultado, basta realiazar um Fork deste repositório e abra um Pull Request, com seu nome.

É importante comentar que deve ser enviado apenas o código fonte. Não aceitaremos códigos compilados.

Por fim, o candidato deve atualizar o Readme.md com as seguintes informações:

1) Documentação da solução;
2) Lista dos diferenciais implementados

## Avaliação

O programa será avaliado levando em conta os seguintes critérios:
|Critério |Valor |
|----------------------------|--------|
|Legibilidade do Código |10 |
|Documentação do código |10 |
|Documentação da solução |10 |
|Componentização |10 |
|Preocupação com usabilidade |10 |
|Total |50 |

A pontuação do candidato será a soma dos valores obtidos nos critérios acima.

## Diferenciais

O candidato pode aumentar a sua pontuação na seleção implementando um ou mais dos itens abaixo:
|Item |Pontos Ganhos |
|----------------------------------|---------------|
|Consumir API (válido mock) |30 |
|Implementar Clean Code |20 |
|Qualidade de Código com SonarQube |15 |
|Implementar testes unitários |15 |
|Implementar testes e2e |30 |
|Implementar integração continua |10 |
|Implementar usando Vue |10 |
|Implementar usado Quasar |20 |
|Total |150 |

A nota final do candidato será acrescido dos pontos referente ao item implementado corretamente.

## Penalizações

O candidato será desclassificado nas seguintes situações:

1) Submeter um solução que não funcione;
2) Não cumprir os critérios presentes no seção Avaliação;
3) Plágio;
# Sistema de Pagamento Recomb


O Sistema de Pagamento Recomb é uma aplicação web desenvolvida em Vue.js, que oferece uma interface amigável para usuários realizarem pagamentos de produtos ou serviços de forma segura e conveniente. O sistema é projetado para facilitar o processo de checkout, oferecendo diferentes métodos de pagamento e guiando o usuário por meio de etapas claras.
- Funcionalidades Principais
Checkout Simplificado: O sistema oferece um processo de checkout simplificado, dividido em etapas intuitivas para facilitar a conclusão da compra.

- Múltiplos Métodos de Pagamento: Os usuários podem escolher entre diferentes métodos de pagamento, incluindo cartão de crédito, boleto bancário e Pix.

- Validação de Formulário: Os formulários de pagamento são validados para garantir que todas as informações necessárias sejam fornecidas corretamente antes da conclusão da transação.

- Exibição de Resumo da Compra: Após a conclusão do pagamento, os usuários recebem um resumo detalhado da compra, incluindo os itens adquiridos, o método de pagamento escolhido e a previsão de entrega.

## Tecnologias Utilizadas
- Vue.js: O frontend da aplicação é desenvolvido utilizando o framework Vue.js, que oferece uma abordagem reativa e componentizada para a construção de interfaces de usuário dinâmicas.

- Vuex: O gerenciador de estado Vuex é empregado para manter o estado centralizado da aplicação, permitindo uma comunicação eficiente entre os componentes.

- Vuetify: O framework Vuetify é utilizado para estilizar e fornecer componentes pré-definidos que seguem as diretrizes de design do Material Design.



# git clone

```
https://github.com/stellamaia/payments-module.git
```

## Navegue até o diretório do projeto

```
cd payments-module
```

### Instale as dependências do projeto.

```
npm install
```

#### Compila e recarrega automaticamente para desenvolvimento

```
npm run serve
```

##### Abra o navegador e acesse a seguinte URL:

```
http://localhost:8080
```
5 changes: 5 additions & 0 deletions babel.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset'
]
}
19 changes: 19 additions & 0 deletions jsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"compilerOptions": {
"target": "es5",
"module": "esnext",
"baseUrl": "./",
"moduleResolution": "node",
"paths": {
"@/*": [
"src/*"
]
},
"lib": [
"esnext",
"dom",
"dom.iterable",
"scripthost"
]
}
}
Loading