FullStack-Itaguacu / M3P-BackEnd-Squad3

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Pharmalândia Medications

Descrição do Projeto Pharmalândia Medications

Nossa equipe chamou a atenção dos gestores da empresa LabPharmacy Inc, uma renomada empresa do ramo de tecnologia farmacêutica, e com isso fomos convidados para desenvolver o site Pharmalândia Medications, um Marketplace de produtos farmacêuticos.

Este site proporcionará a oportunidade de cadastrar vendedores, usuários (compradores), comprar medicamentos e efetuar o registro de compradores e vendedores. Os vendedores terão a capacidade de monitorar suas vendas, enquanto os compradores poderão acompanhar suas compras anteriores com facilidade.

Tecnologias Utilizadas

O backend do Pharmalândia Medications foi desenvolvido utilizando as seguintes tecnologias:

  • Node.js: É uma plataforma de desenvolvimento JavaScript para aplicações de rede e servidor.
  • Express.js: Framework web para Node.js que facilita a criação de APIs.
  • Sequelize: Biblioteca que interage com o banco de dados relacional como o PostgreSQL.
  • PostgreSQL: Banco de dados relacional que será utilizado para armazenar os dados do sistema.
  • DBeaver: Gerenciador de banco de dados SQL.

Como executar o Pharmalândia Medications

Para executar o Pharmalândia Medications em uma máquina local, siga as seguintes instruções:

  1. Certifique-se de ter o Node.js instalado em sua máquina;

  2. Clone o repositório do Pharmalândia Medications em sua máquina local:

https://github.com/FullStack-Itaguacu/M3P-BackEnd-Squad3.git
  1. Acesse o diretório do projeto :
cd M3P-BackEnd-Squad3
  1. Instale as dependências para rodar o projeto:
npm install
  1. Inicie o servidor
npm rum dev:
  1. Crie um banco de dados PostgreSQL e atualize as configurações de conexão no arquivo. Depois crie um arquivo .env, e complete conforme o arquivo .envexemple, com as informações do seu banco de dados. Aqui você precisará ter um gerenciador database configurado. Neste projeto foi utilizado o DBeaver.

exemplo  env

  1. Para rodar as migrations e inserir as tabelas em seu banco de dados você precisa executar o comando:
npx sequelize db:migrate
  1. Agora você já pode acessar o Pharmalândia Medications em seu navegador. Usamos o ThunderClient para os testes http://localhost:3002

Endpoint criados e suas funcionalidades

Endpoint Funcionalidade
POST /user/login Endpoint Público com o objetivo de efetuar o login de um usuário comprador e/ou administrador na aplicação.

Login | | | |POST /user/admin/login | Endpoint Público com objetivo de efetuar o login de um usuário administrador na aplicação. | Login admin | | | |POST /user/signup | Endpoint Público com objetivo de cadastrar um usuário comprador na aplicação. | Cadastro usuário | | | |POST /user/admin/signup | Endpoint Privado com o objetivo de cadastrar um usuário na aplicação. | user-admin-signup | | | |POST /products/admin | Endpoint Privado com o objetivo de cadastrar um produto na aplicação. | product-admin | | | |GET /products/admin/:offset/:limit | Endpoint Privado com o objetivo de listar todos os produtos cadastrados daquele usuário administrador.| products-admin-0-20 | | | |GET /products/:offset/:limit | Endpoint Privado com o objetivo de listar todos os produtos cadastrados na aplicação. | product-limit | | | |GET /products/:productId | Endpoint Privado com o objetivo de listar uma especificação do produto selecionado pelo id| product-ID | | | |GET /buyers/address | Endpoint Privado com o objetivo de listar todos os endereços cadastrados do usuário. | buyers-address | | | |PATCH /products/admin/:productId | Endpoint Privado com o objetivo de atualizar alguns campos do produto na aplicação.| product-admin-id | | | | GET /buyers/admin/:offset/:limit | Endpoint Privado com objetivo de listar todos os usuários.| bueyrs-admin-limit | | | |GET /buyers/admin/:userId | Endpoint Privado com o objetivo de listar uma especificação do usuário selecionado pelo id| buyers-admin-ID | | | |PATCH /buyers/admin/:userId | Endpoint Privado com o objetivo de atualizar alguns campos do usuário comprador na aplicação.| buyers-admin-id-patch | | | |POST /sales | Endpoint Privado com o objetivo de criar registros de venda na aplicação.| cadastro-sales | | | |GET /sales | Endpoint Privado com o objetivo de fornecer todas as compras que aquele comprador realizou.| get-sales | | | |GET /sales/admin | Endpoint Privado com o objetivo de fornecer todas as vendas que aquele administrador realizou.| get-sales-admin | | | |GET //sales/:id | Endpoint privado com o objetivo de listar uma venda pelo Id| sales-ID | | | |GET /sales/dashboard/admin | Endpoint Privado com o objetivo de fornecer resultados financeiros a partir das vendas realizadas.| dashboard-admin

Realização entre as tabelas

Para este projeto fizemos as seguintes relações entre as tabelas:

tabelas DBeaver

Organização do Projeto

A organização do projeto foi feita utilizando o método Kanban, montando no trello os cards com cada endpoint e suas regras, onde cada participante do Squard fez uma parte colocando seu nome no card e passando para a revisão antes de concluir.

trello

Documentação Swagger

Para oferecer mais detalhes de cada rota você pode consultar a documentação pelo endereço: https://monitorrindodeploymaster.cyclic.app/api-docs swagger

Melhorias Futuras

  • Deletar ou desativar um produto, uma vez que o produto pode não estar mais disponível para comercialização ou por outras razões que justifiquem a exclusão.
  • O vendedor deve receber um alerta quando algum produto estiver fora de estoque.
  • Deletar ou desativar um administrador.
  • Deletar ou desativar um usuário.
  • Atualização de dados / endereço do usuário.
  • Alteração de senha.

About


Languages

Language:JavaScript 100.0%