Skip to content

gustavo-martins-pereira/User_Establishment

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API de Estabelecimento de Usuários

API backend para gerenciamento de estabelecimentos de usuários, construída com TypeScript e Express. Este projeto fornece uma API robusta para manipulação de dados de estabelecimentos com integração AWS DynamoDB para persistência de dados.

Sumário

🖥️ Tecnologias Utilizadas

TypeScript Logo  Nodejs Logo  Express Logo  AWS Logo  DynamoDB Logo 

⚙️ Instalação

Instruções para configurar o projeto localmente.

Pré-requisitos

⚠️ O projeto foi construído com Node.js versão v22.14.0. Versões anteriores/posteriores podem não ser compatíveis. Se você tiver o NVM instalado, você pode instalar a versão correspondente com estes comandos:

# instala o nvm (Node Version Manager)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

# baixa e instala o Node.js (você pode precisar reiniciar o terminal)
nvm install 22.14.0

# verifica se a versão correta do Node.js está no ambiente
node -v # deve imprimir `v22.14.0`

# verifica se a versão correta do npm está no ambiente
npm -v

Passos

  1. Clone o repositório:
git clone https://github.com/gustavo-martins-pereira/User_Establishment.git
  1. Navegue até o diretório do projeto:
cd User_Establishment
  1. Instale as dependências:
npm install
  1. Configure o arquivo .env:

Você precisará configurar suas credenciais AWS e configuração do DynamoDB no arquivo .env. Certifique-se de ter uma conta AWS e as permissões necessárias para acessar o DynamoDB.

  1. Configure o banco de dados:
npm run setup-db
  1. Inicie o servidor de desenvolvimento:
npm run dev

📁 Estrutura do Projeto

/src
├── /aws
│   └── /dynamodb
├── /configs
├── /controllers
│   └── establishmentController.ts
├── /middlewares
├── /models
├── /repositories
├── /routes
│   ├── /validators
│   └── routes.ts
├── /services
│   └── /establishment
├── /utils
│   ├── /configs
│   ├── /handles
│   └── /errors
└── server.ts
.env
.env.example
.gitignore
LICENSE
package.json
readme.md

O projeto segue um padrão de arquitetura limpa com clara separação de responsabilidades:

  • aws: Api para os serviços da AWS
  • configs: Configurações da aplicação
  • controllers: Manipulam requisições e respostas HTTP
  • middlewares: Middlewares para as rotas da aplicação
  • models: Modelo das entidades
  • respositories: Arquivos de comunicação com os bancos de dados ou serviços da aplicação (como a aws)
  • services: Contêm a lógica de negócios
  • routes: Definem os endpoints da API e manipuladores de rotas
  • utils: Contém funções utilitárias

🛣️ Rotas da API

Usuários

  • POST /users - Criar um novo usuário
  • GET /users/:id - Obter usuário por ID
  • GET /users - Obter todos os usuários
  • PUT /users/:id - Atualizar usuário por ID
  • DELETE /users/:id - Deletar usuário por ID

Estabelecimentos

  • POST /establishments - Criar um novo estabelecimento
  • GET /establishments/:id - Obter estabelecimento por ID
  • GET /establishments/type/:type - Obter estabelecimentos por tipo
  • GET /establishments - Obter todos os estabelecimentos
  • PUT /establishments/:id - Atualizar estabelecimento por ID
  • DELETE /establishments/:id - Deletar estabelecimento por ID

Produtos

  • POST /products - Criar um novo produto
  • GET /products/:id - Obter produto por ID
  • GET /products - Obter todos os produtos
  • PUT /products/:id - Atualizar produto por ID
  • DELETE /products/:id - Deletar produto por ID

Regras de Estabelecimento

  • POST /establishment-rules - Criar uma nova regra de estabelecimento
  • GET /establishment-rules/establishment/:establishmentId - Obter regras por ID do estabelecimento
  • PUT /establishment-rules/:id - Atualizar regra de estabelecimento por ID
  • DELETE /establishment-rules/:id - Deletar regra de estabelecimento por ID

About

API for establishment managed by users

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published