Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

JonathanProjetos/PagarMe

Repository files navigation

Bem-vindo ao PagarMe

A API PagarMe é uma proposta de resolução do desafio técnico da Pager.me e oferece um sistema de Payment Service Provider (PSP) super simplificado. Para esta proposta, foi adicionado um sistema de cadastro para que o usuário cadastrado possa realizar transações financeiras quando autorizado. Esta aplicação gera autenticação utilizando bearer token através do JWT e tem como propósito simular o ciclo de uso, que se inicia com o cadastro, autorização e manipulação dos dados. Espero que gostem, foi muito divertido desenvolver esta solução.

Sumário

Contexto

O PagarMe é uma ferramenta que acessa a bases de dados, é permite aos usuários:

  • Fazer login;
  • Cadastrar um novo usuário;
  • Buscar por transações;
  • Criar transações;
  • Buscar por recebiveis;

Quando logado é possivel

  • Buscar por transações;
  • Criar transações;
  • Buscar por recebiveis;

Tecnologias e Ferramentas Utilizadas

Este projeto utiliza as seguintes tecnologias e ferramentas:

  • NodeJS | Plataforma de execução runtime baseda em javascript.
  • Express | Framework para nodejs
  • Mysql | Banco de dados SQL relacional.
  • Sequelize | ORM Object-Ralational-Mapping.
  • JWT | Formatador de token seguro.

O Node.js foi utilizado com o intuito de obter os benefícios da escalabilidade e eficiência, pois ele é capaz de lidar com vários tráfegos sem bloqueio e lida com solicitações com baixo consumo de recursos. O Express é um framework para o Node.js que permite construir aplicações web robustas e escaláveis de forma mais fácil e rápida. O MySQL é um banco de dados amplamente utilizado devido a várias razões. Ele oferece desempenho eficiente e rápido, é altamente escalável e possui uma comunidade ativa que fornece suporte e recursos adicionais. Além disso, o MySQL é flexível, seguro e possui integração com tecnologias populares. O Sequelize é uma biblioteca de mapeamento objeto-relacional (ORM) para Node.js, que simplifica a interação com bancos de dados relacionais, incluindo o MySQL. Com o Sequelize, é possível mapear objetos JavaScript para tabelas e colunas no banco de dados, escrever consultas em JavaScript e gerenciar relacionamentos entre tabelas de forma fácil.O uso do JSON Web Tokens (JWT) em aplicações web oferece várias vantagens. O JWT permite autenticar usuários de forma stateless, eliminando a necessidade de armazenar informações de sessão no servidor. Além disso, o JWT é seguro, pois pode ser assinado digitalmente, garantindo a integridade do token.

Entities

https://drive.google.com/file/d/1av8kgGIu6AWP81UC5Xp0t0t-Jmf4QYb4/view?usp=sharing entidades

Download do projeto

git@github.com:JonathanProjetos/PagarMe.git

Arquivo env

  • Dentro da pasta PagarMe, existe o arquivo .env.example. Nele, será necessário remover o .example e fornecer os dados para a conexão com o banco de dados, bem como uma senha para o JSON Web Token.

Instalar as dependências e executar

cd PagarMe
npm install
npm run dev

Comandos Adicionais

// Inicializa o Eslint
npm run lint
// Dropa o banco de dados
npm run drop
// Cria o banco de dados é adiciona as migrates
npm run create
// Adiciona os seeders
npm run seed 

Docker

  • O tempo de execução do docker-compose terá um acrecimo de cerca de 30 segundos devido as checagens de disponibilidade, os "Health-checks". Este recurso garantirá que tanto o banco de dados quanto a API estejam diponíveis para a execução.
  • Caso a porta 3001 não seja a mais adequada para você. A mudança da porta deve acontecer tanto no arquivo server.js quanto no docker-compose.yml na parte de services/node/ports e services/node/healthcheck.
  • Quando executar a aplicação usando o docker-compose up, as dependências necessárias serão instaladas. Além disso, o banco de dados será criado e as migrações serão executadas. Logo após, a aplicação será disponibilizada através do Nodemon na porta 3001.
cd PagarMe
docker-compose up -d
- logs docker
cd PagarMe
docker logs -f --tail 1000 pagar_bem

Tests

cd PagarMe
npm test
ou 
npm run test:coverage

Deploy

  • Foi realizado o deploy da aplicação no Railway. Logo abaixo, está o link de acesso para a aplicação através do Swagger.

Swagger

  • Foi implementada a documentação por parte do Swagger, que possibilita testar a aplicação de forma mais rápida e intuitiva.
  • O link para a documentação é DOC
  • Alguns end-points séra necessessário oferecer o token para o Authorization no swagger. O token será disponibilizado quando for feito o login é como resposta terá o token. Caso você não forneça o token para a autorização, os endpoints que dependem dele entrarão em um loop no estado de carregamento (loading).

Git, GitHub e Histórico de Commits

Este projeto utilizou a Especificação de Commits Convencionais, com alguns tipos da convenção Angular. Além disso, foi utilizado o pacote conventional-commit-cli para ajudar a seguir a convenção de commits. É importante utilizar a convenção de commits em projetos para manter o histórico de commits organizado e facilitar a leitura e o entendimento do que foi desenvolvido.

Lint

  • O projeto foi desenvolvido seguindo os padrões de Clean Code especificados pelo Lint da Trybe.

About

A API PagarMe é uma proposta de resolução do desafio técnico da Pager.me e oferece um sistema de Payment Service Provider (PSP) super simplificado.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /