Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
9e8ea8b
init commit
Mp455 Dec 14, 2024
93bf1e5
feat: create checkout success page
Mp455 Dec 14, 2024
8c26d47
feat: create checkout fail page
Mp455 Dec 14, 2024
c0a8e7e
style: add new weight to font
Mp455 Dec 14, 2024
8aa53ff
style: organize folders
Mp455 Dec 14, 2024
f13e779
feat: add icons and favicon
Mp455 Dec 18, 2024
a14854d
chore: add prettier formatted
Mp455 Dec 18, 2024
e2d514c
feat: add credit card icon
Mp455 Dec 18, 2024
0b2f9f8
chore: install components to shadcn
Mp455 Dec 18, 2024
ece57d2
refactor:
Mp455 Dec 18, 2024
dc13d45
feat: create header component
Mp455 Dec 18, 2024
52ae996
feat: create loading component
Mp455 Dec 18, 2024
b9118a0
feat: create interface to payment payload
Mp455 Dec 18, 2024
50b8a32
feat: function that generates card installments
Mp455 Dec 18, 2024
23c7b45
style: fonts and dimensions
Mp455 Dec 18, 2024
4b99c28
feat: create validation with zod through schema
Mp455 Dec 18, 2024
38bf101
feat: finalize checkout pages
Mp455 Dec 18, 2024
598803c
feat: redirect user to specific route
Mp455 Dec 18, 2024
f864251
feat: redirect user to specific route
Mp455 Dec 18, 2024
8c5fc49
style: input adjustments
Mp455 Dec 18, 2024
b4af48a
feat: creation of routes
Mp455 Dec 18, 2024
4db4a6a
refactor: prettier formatted
Mp455 Dec 18, 2024
ab20f92
feat: add metadata
Mp455 Dec 18, 2024
c640995
fix: usability adjustments
Mp455 Dec 18, 2024
bbace38
feat: add config to deploy
Mp455 Dec 18, 2024
84c89fd
feat: update README.md
Mp455 Dec 18, 2024
041d57c
fix: changes for deployment
Mp455 Dec 18, 2024
5b3bfcf
feat: update README.md
Mp455 Dec 18, 2024
5698617
fix: url to deploy
Mp455 Dec 18, 2024
d87f147
fix: link to deploy
Mp455 Dec 18, 2024
4149a92
fix: url to api
Mp455 Dec 18, 2024
3cd934e
fix: update README.md
Mp455 Dec 18, 2024
b10b967
fix: form field to security code
Mp455 Dec 18, 2024
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
151 changes: 31 additions & 120 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,130 +1,41 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov
# dependencies
/node_modules
/.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions

# nyc test coverage
.nyc_output
# testing
/coverage

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# next.js
/.next/
/out/

# Bower dependency directory (https://bower.io/)
bower_components
# production
/build

# node-waf configuration
.lock-wscript
# misc
.DS_Store
*.pem

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# Dependency directories
node_modules/
jspm_packages/
# env files (can opt-in for committing if needed)
.env*

# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# vercel
.vercel

# TypeScript cache
# typescript
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional stylelint cache
.stylelintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local

# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache

# Next.js build output
.next
out

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# vuepress v2.x temp and cache directory
.temp
.cache

# Docusaurus cache and generated files
.docusaurus

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port

# Stores VSCode versions used for testing VSCode extensions
.vscode-test

# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
next-env.d.ts
3 changes: 3 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"plugins": ["prettier-plugin-tailwindcss"]
}
68 changes: 31 additions & 37 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Desafio: Checkout para Compensação de Carbono
# Desafio

Neste desafio, você deverá recriar um layout de checkout fictício para compensação de carbono, conforme o design fornecido no Figma. Além disso, será necessário consumir dois endpoints da API:

Expand All @@ -10,64 +10,58 @@ Ambos os endpoints devem ser integrados na aplicação de forma que a experiênc
## Requisitos

- **URL do Checkout:** A aplicação deve utilizar um URL no seguinte formato:
````https://meu-teste.com/checkout?co2=1&cred=2````
`https://meu-teste.com/checkout?co2=1&cred=2`

Onde:

- **`co2`**: Representa a quantidade de carbono.
- **`cred`**: Representa o valor unitario do crédito (ou creditPriceId).

O valor do crédito de carbono, que será atribuído ao parâmetro `cred` (ou `creditPriceId`), deve ser recuperado através do endpoint **`get credit price`**. Esse endpoint está documentado na pasta **`doc`** e retorna o valor do crédito de carbono associado ao `creditPriceId`. A aplicação deve realizar a requisição para esse endpoint para obter o valor correspondente e preenchê-lo dinamicamente o valor no checkout.

A requisição ao endpoint `Get Credit Price` é necessária para garantir que o valor do crédito esteja sempre atualizado e de acordo com as especificações do sistema.

FIGMA:
[LAYOUT](https://www.figma.com/design/3dbuGSs6oCSLkPw9viSsfT/Front-end-Teste?node-id=0-1&t=KvUCyOT5Miiuh0D5-1)
# Rodando o projeto localmente

Você deverá clonar o repositório, depois rodar os comandos abaixo:

## Consumo da API Mock
```
$ npm install
$ npm run dev

Use a API mock do Postman diponibilizada em /docs.
```

### Importação da Coleção do Postman
**Obs:** Lembre-se de criar o arquivo .env e fornecer a URL da API

Siga as etapas abaixo para importar a coleção e testar os endpoints do checkout.
```
NEXT_PUBLIC_API

1. Abra o Postman.
2. Clique no botão **Importar** no canto superior esquerdo.
![Onde clicar no postman para importar](./docs/image.png)
3. Selecione o arquivo `Carbon_Checkout.postman_collection.json` localizado na pasta `doc/`.
```

![Como deve ficar apos a importação.](./docs/image-2.png)
4. Execute os testes com os parâmetros fornecidos para verificar o funcionamento correto da aplicação.
# API Mock

-----------------------------------------------------
A MockAPI utilizada para a aplicação está disponibilizada dentro da {{url}} do Postman mas para facilitar está aqui:

## FRAMEWORK
```
https://6751f822d1983b9597b4fa68.mockapi.io/api

- [NEXT.JS](https://nextjs.org/docs)
```

-----------------------------------------------------
# Tecnologias Utilizadas

## ESTILOS
- [Next.js](https://nextjs.org/)
- [Tailwindcss](https://tailwindcss.com/)
- [Shadcn/ui](https://ui.shadcn.com/)
- [React-hook-form](https://react-hook-form.com/)
- [Zod](https://zod.dev/)
- [@hookform/resolvers](https://www.npmjs.com/package/@hookform/resolvers/v/1.3.7)

- Os estilos deste teste devem ser feitos em styled-components (ou tailwind).
- O projeto ser o mais proximo possivel do layout fornecido.
- Deve ser totalmente responsivo.
---

## REQUISITOS DIFERENCIAIS:
## Deploy na Vercel

- Back-end (para desenvolvedores full-stack)
- Código performático.
- Manutenibilidade do Código.
- Utilizar inglês no projeto todo.
- Fazer deploy do mesmo (heroku, netlify, aws, vercel, github pages ou outro da preferência).
O frontend da aplicação foi implantado na Vercel, garantindo fácil acesso e escalabilidade. A Vercel oferece integração contínua e deploy automático sempre que alterações são feitas no repositório.

## GIT
- Faça um fork deste repositório.
- Criar uma branch para codar as suas features.
- Criar um pull-request quando o teste for finalizado e submetido.
A aplicação pode ser acessada através do seguinte link:

## Contato técnico.
- Junior Schmidt
- GSS | Desenvolvedor Back-end & Tech Lead.
- schmidt@repenso.eco
- www.gss.eco
- [Clique aqui para ver em projeto em produção](https://frontend-test-tree-lyart.vercel.app/)
Loading