Skip to content
lugablimaPublic

About

API do Valex, um sistema de cartões de benefícios, desenvolvido durante o bootcamp da Driven Education.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Repository files navigation

Valex

Tecnologias

TypeScript Node.js Express.js Prisma PostgreSQL Docker

Descrição

O Valex é um sistema de cartões de benefícios, possibilitando a criação, ativação, bloqueio, desbloqueio e visualização de saldo de cartões físico e virtual. Além disso, é possível recarregar o cartão e realizar compras online ou em "points of sale" (POS).

Features

  • Criar cartão;
  • Ativar cartão;
  • Bloquear cartão;
  • Desbloquear cartão;
  • Visualizar o saldo e as transações do cartão;
  • Recarregar cartão;
  • Realizar compra em um "point of sale" (POS);
  • Realizar compra online;
  • Criar cartão virtual.

Rotas

Criar cartão

POST /cards

Request:

Headers Tipo Descrição
x-api-key string Obrigatório. API key da empresa que está cadastrando o cartão
Body Tipo Descrição
employeeId inteiro Obrigatório. Id do usuário
type string Obrigatório. Tipo do cartão de benefício

Types válidos: [groceries, restaurant, transport, education, health]

Response:

{
  "id": 1,
  "number": "1111111111111111",
  "employeeId": 1,
  "cardholderName": "NAME N NAME",
  "securityCode": "111",
  "expirationDate": "01/27",
  "isVirtual": false,
  "isBlocked": false,
  "type": "card type"
}

Ativar cartão

PATCH /cards/activate

Request:

Body Tipo Descrição
cardId inteiro Obrigatório. Id do cartão
cvc string Obrigatório. Código de segurança (CVC) do cartão
password string Obrigatório. Senha do cartão

A senha deve ser composta por 4 digitos e somente números

O código de segurança (CVC) deve ser composto por somente 3 números

Bloquear cartão

PATCH /cards/block

Request:

Body Tipo Descrição
cardId inteiro Obrigatório. Id do cartão
password string Obrigatório. Senha do cartão

Desbloquear cartão

PATCH /cards/unlock

Request:

Body Tipo Descrição
cardId inteiro Obrigatório. Id do cartão
password string Obrigatório. Senha do cartão

Visualizar saldo e transações do cartão

GET /cards/balance/:cardId

cardId é um parâmetro de rota que representa onde deve ser informado o id do cartão

Response:

{
  "balance": 1,
  "transactions": [
    { "id": 1, "cardId": 1, "businessId": 1, "businessName": "NomeDaEmpresa", "timestamp": "DD/MM/AAAA", "amount": 1 },
    ...
  ],
  "recharges": [
    { "id": 1, "cardId": 1, "timestamp": "DD/MM/AAAA", "amount": 1 },
    ...
  ]
}

Recarregar cartão

POST /recharges

Request:

Headers Tipo Descrição
x-api-key string Obrigatório. API key da empresa que está cadastrando o cartão
Body Tipo Descrição
cardId inteiro Obrigatório. Id do cartão
amount inteiro Obrigatório. Valor da recarga

Realizar compra em um "point of sale" (POS)

POST /payments

Request:

Body Tipo Descrição
cardId inteiro Obrigatório. Id do cartão
password string Obrigatório. Senha do cartão
businessId inteiro Obrigatório. Id da empresa onde está sendo realizada a compra
amount inteiro Obrigatório. Valor da compra

Realizar compra online

POST /payments/online

Request:

Body Tipo Descrição
number string Obrigatório. Número do cartão
cardholderName string Obrigatório. Nome no cartão
expirationDate string Obrigatório. Data de expiração do cartão
cvc string Obrigatório. Código de segurança (CVC) do cartão
businessId inteiro Obrigatório. Id da empresa onde está sendo realizada a compra
amount inteiro Obrigatório. Valor da compra

Formato da data de expiração: "MM/AA"

O código de segurança (CVC) deve ser composto por somente 3 números

Criar cartão virtual

POST /cards/virtual

Request:

Body Tipo Descrição
originalCardId inteiro Obrigatório. Id do cartão físico ao qual o virtual será vinculado
originalCardPassword string Obrigatório. Senha do cartão físico

A senha deve ser composta por 4 digitos e somente números

Variáveis de ambiente

Para rodar este projeto, você precisará adicionar as seguintes variáveis de ambiente ao seu arquivo .env:

PORT = número #recomendado:5000

DATABASE_URL = postgres://nomeDeUsuário:senha@nomeDoServidor:5432/nomeDoBancoDeDados

CVC_SECRET_KEY = qualquer string

Rodando a aplicação localmente

Clone o projeto

  git clone https://github.com/lugablima/valex.git

Vá para a pasta onde está o projeto

  cd valex/

Instale as dependências do projeto

  npm install

Inicie o servidor

  npm run dev

Deploy da aplicação

Se preferir, é possível testar a aplicação por meio de um REST API Client (Insomnia, Postman, Thunder Client, etc) e acessando o link de deploy da mesma:

https://valex.up.railway.app

About

API do Valex, um sistema de cartões de benefícios, desenvolvido durante o bootcamp da Driven Education.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages