Skip to content

Postech Software Architecture - Tech Challenge - NestJS

Notifications You must be signed in to change notification settings

jonilsonds9/lanchonete-app

Repository files navigation

Nest Logo

Este é uma projeto é um projeto para uma sistema para uma lanchonete usando as melhores práticas de arquitetura de software.

Node.JS Typescript NPM Version PostgreSQL Docker


Lanchonete

Tabela de conteúdos
  1. Começando
  2. Exemplos de uso
  3. Banco de dados
  4. Roteiro

Começando

Para executar o projeto localmente siga as próximas etapas.

Pré-requisitos

  • Docker com compose Veja a documentação para instalar o docker no seu sistema se ainda não tiver instalado.
  • NodeJS no mínimo na versão 16. Recomendado a versão 18 (LTS) disponível no site oficial.

Instalação

A instalação é bem simples, siga as seguintes etapas:

  1. Clone o repositório
    git clone https://github.com/jonilsonds9/lanchonete.git
  2. Entre na pasta do projeto
    cd lanchonete
  3. Crie um arquivo novo arquivo com as váriaveis de ambiente .env usando o .env.example
    cp .env.example .env
  4. Agora execute o projeto usando o docker compose
    docker compose --profile=all up

(Voltar para o topo)

Aplicação de pagamento (mock)

Este sistema conta com uma aplicação externa que realiza os pagamentos, de forma mockada, visando apenas dar suporte ao fluxo da aplicação principal.

Exemplos de uso

Para acessar a home da API

Nessa página você terá o link para a documentação (Swagger) e poderar utilizar toda a aplicação!

Para acessar o Swagger UI use uma das seguintes URLs

Health Check

http://localhost:3000/health

A resposta deve seguir o seguinte formato:

{
  "status": "ok",
  "info": {
    "database": {
      "status": "up"
    },
    "gateway-pagamento": {
      "status": "up"
    }
  },
  "error": {
    
  },
  "details": {
    "database": {
      "status": "up"
    },
    "gateway-pagamento": {
      "status": "up"
    }
  }
}

(Voltar para o topo)

Banco de dados

Para o projeto utilizamos o banco de dados PostgreSQL que suporta uma variedade de tipos de dados diferentes, possui uma licença de código aberto, ou seja, podendo ser utilizado por diversas aplicações de forma gratuita. Utiliza a linguagem SQL, tornando mais fácil a migração para outros bancos de dados relacionais, caso surja a necessidade. Também da suporte a transações ACID e pode lidar com grandes volumes de dados.

O PostgreSQL se tornou muito popular pela sua fácil utilização, sendo assim uma ótima opção para se trabalhar em equipes e aplicações de pequeno porte, facilitando o entendimento e manutenção do projeto entre integrantes da equipe. Por conseguir lidar com grandes quantidades de dados, o PostgreSQL ė uma ótima opção ao se trabalhar com análise de dados, e também possui a capacidade de expandir de acordo com o crescimento da aplicação, já que inicialmente ela será de pequeno porte.

Por fim, conseguimos gerenciar e monitorar o nosso banco de dados utilizando recursos disponibilizados no próprio PostgreSQL, garantindo o desempenho e segurança dos nossos dados.

Nossa modelagem de banco de dados é a seguinte:

Modelo banco de dados

Kubernetes

Os arquivos .yml com todas as instruções de cluster estão no diretório:

|- kubernetes

Roteiro

  • Começando o projeto
  • Dockerização
  • Documentação

(Voltar para o topo)

About

Postech Software Architecture - Tech Challenge - NestJS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •