Skip to content

API do projeto "Owl Partners" (5º DSM - 2023, FATEC Profº Jessen Vidal - SJC)

Notifications You must be signed in to change notification settings

The-Bugger-Ducks/owl-partners-back

Repository files navigation

Serviço Backend Owl Partners

Esta API, que permite gerenciamento de parcerias, foi desenvolvida visando sua utilização no projeto "OwlPartners" (mais informações vide este link).

Aplicação desenvolvida por alunos do 5º semestre do tecnólogo em Desenvolvimento de Software Multiplataforma, na FATEC Profº Jessen Vidal - São José dos Campos, SP 🚀

🛠️ Tecnologias

As seguintes tecnologias e ferramentas foram utilizadas neste projeto: Typescript, NestJS, PostgreSQL, Docker, Insomnia

⚙️ Como utilizar

Para consumir esta API, é preciso seguir o passo a passo abaixo ou utilizar a URL do serviço em nuvem (através deste link: owlPartnersAPI).

  • Tutorial para rodar o projeto
# Baixe este repositório ou clone pelo Git usando o comando:
$ git clone https://github.com/The-Bugger-Ducks/owl-partners-back.git

# Acesse a pasta do projeto
$ cd owl-partners-back

# criar um arquivo chamado ".env" e copiar a estrutura do arquivo ".env.example" e colocar seus respectivos dados

# instale as dependencias
$ yarn install
      ou
$ npm install

# Utilize o docker-compose para criar o banco de dados
$ docker-compose up -d

# Utilize o comando do Prisma para sincronizar a estrutura do banco de dados
$ npx prisma migrate deploy

# Inicie o Projeto
$ yarn start
      ou
$ npm run start

O servidor inciará localmente na porta 3000 (citada no arquivo .env). Use o Insomnia ou postman para simular requisições e respostas das rotas (pelo link https://localhost:3000) ou utilize o projeto de aplicativo mobile do "OwlPartners" para executar as funcionalidades da aplicação (acesse o repositório por este link) ou o projeto front-end WEB neste link.

Caso queira usar o Insomnia para testar as rotas, use o arquivo Insomnia_2023_mm_dd.json para importar as requisições.

🛤️ Rotas disponíveis

Para acessar as rotas disponiveis acesse o link para o https://owlpartners.onrender.com/api na nuvem ou para o http://localhost:3000

Explicação da estrutura das pastas

Pasta Definição
📂 prisma/migrations Arquivos com função em versionar a estrutura do banco de dados
📄 prisma/schema.prisma Arquivo para config de estrutura e de relacionamento das entidades do banco de dados
📂 src/ Arquivos com o código fonte do projeto
📂 src/modules Arquivos com os módulos do serviço que se divide em varias partes do projeto
📂 src/modules/auth Arquivos com foco em autenticação e autorização para acesso aos endpoints
📂 src/modules/partner Arquivos com foco metodos, controlers, enums e DTOs sobre parcerias
📂 src/modules/partnerComment Arquivos com foco metodos, controlers, enums e DTOs de anotações sobre as parcerias
📂 src/modules/partnerComment Arquivos com foco metodos, controlers, enums e DTOs sobre os usuários
📂 src/ * * / * * /enums Arquivos de padronização de entrada para campos específicos no banco de dados
📂 src/ * * / * * /dto Arquivos de padronização e validação de campos exigidos no corpo das requisições
📂 src/ * * / * * /validation Arquivos para criação de validações customizadas que o class-validator nao abrange
📄 src/main.ts Arquivo principal de inicialização do projeto
📄 src/app.module.ts Arquivo para gerenciar modulos pela raíz do projeto
📂 test/ Arquivos com foco tem testes unitários do serviço owlPartners
📄 .editorConfig Arquivo usado para padronizar a codificação do projeto como espaços em identações, pontuações etc
📄 .env Arquivo usado para variáveis de ambiente como chaves de autenticação e URL do banco de dados de produção
📄 .env.sample Arquivo usado como molde para o verdadeiro .env
📄 docker-compose.yml Arquivo usado para "conteinerizar" um banco postgres local
📄 Dockerfile Arquivo usado para integração contínua de deploy em um servidor
📄 jest.config.json Arquivo usado para configurar a biblioteca JEST para execução dos testes
📄 insomnia_2023_mm_dd.json Arquivo usado para importar requisições para as rotas do projeto no Insomnia
📄 tsconfig.json Arquivo usado para configurar o typescript como sintaxe, organização de arquivos, etc.
📄 package.json Arquivo usado gerenciar as dependencias do projeto com o Yarn e compor scripts de terminal