Skip to content

šŸŖ Sistema bĆ”sico de marketplace com carrinho de compras + envio de e-mails

Notifications You must be signed in to change notification settings

kenmarcos/kenzie-market_back

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Ā 

History

20 Commits
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 

Repository files navigation

šŸŖ Kenzie Market šŸŖ

Sobre o Projeto ā€¢ Endpoints ā€¢ InstalaĆ§Ć£o ā€¢ UtilizaĆ§Ć£o ā€¢ Tecnologias ā€¢ Autor

šŸ–„ļø Sobre o Projeto

Projeto desenvolvido como parte das atividades do curso da Kenzie Academy Brasil.

Esse projeto consiste em uma aplicaĆ§Ć£o back-end de um marketplace.

O objetivo do desenvolvimento desse projeto era praticar e aprimorar as habilidades em Node.js, Express.js e TypeORM.

Esse serviƧo possui uma API REST integrada a um banco de dados PostegreSQL.

Algumas funcionalidades dessa aplicaĆ§Ć£o sĆ£o:

  • UsuĆ”rio administrador pode:
    • Cadastrar e gerenciar o estoque de produtos
    • Vender produtos na plataforma
    • Fazer o acompanhamento de vendas
  • UsuĆ”rio cliente pode:
    • Registrar-se na plataforma
    • Fazer um carrinho de compras
    • Receber um e-mail com os itens e valores comprados
    • Recuperar sua senha de acesso

šŸ’” Endpoints

MĆ©todo Endpoint Responsabilidade Regras de NegĆ³cio
POST /user Cria um usuĆ”rio Um usuĆ”rio pode ser do tipo cliente ou do tipo administrador. Use uma propriedade booleana que faƧa essa diferenciaĆ§Ć£o
GET /user/<userId> Seleciona um determinado usuĆ”rio pelo id UsuĆ”rios do tipo cliente sĆ£o restritos as suas prĆ³prias informaƧƵes. Ou seja: um cliente nĆ£o pode selecionar outro usuĆ”rio alĆ©m dele mesmo, mas um administrador pode selecionar qualquer usuĆ”rio do sistema
GET /user Seleciona todos os usuĆ”rios Apenas os administradores podem fazer essa aĆ§Ć£o
POST /login Gera um toke de autenticaĆ§Ć£o Login via e-mail e password
POST /product Cadastra um Ćŗnico produto Apenas usuĆ”rio do tipo administrador pode realizar essa asĆ§Ć£o
GET /product/<productId> Seleciona um determinado produto pelo id Qualquer usuĆ”rio pode realizar essa aĆ§Ć£o
GET /product Seleciona todos os produtos cadastrados Qualquer usuĆ”rio pode realizar essa aĆ§Ć£o
POST /cart Adiciona um produto no carrinho Apenas usuƔrios logados devem adicionar o produto no carrinho
GET /cart/<cartId> Seleciona o carrinho do usuĆ”rio UsuĆ”rios do tipo cliente sĆ£o restritos as suas prĆ³prias informaƧƵes. Ou seja: um cliente nĆ£o pode selecionar o carrinho de outro usuĆ”rio, mas um administrador pode selecionar qualquer carrinho do sistema
GET /cart Seleciona todos os carrinhos Apenas os administradores podem realizar essa aĆ§Ć£o
DELETE /cart/<productId> Deleta um produto do carrinho Apenas o usuĆ”rio dono do carrinho e o administrador pode realizar essa aĆ§Ć£o
POST /buy Realiza compra dos produtos do carrinho Apenas o dono do carrinho pode finalizar uma compra e apĆ³s a sua finalizaĆ§Ć£o um email com os dados da compra deve ser disparado para o usuĆ”rio
GET /buy/<orderId> Seleciona uma compra jĆ” realizada Apenas o usuĆ”rio dono da compra e o administrador pode realizar essa aĆ§Ć£o
GET /buy Seleciona todas as compras jĆ” realizadas Apenas o administrador pode realizar essa aĆ§Ć£o
POST /email Envia um email qualquer para um determinado usuĆ”rio Caso o administrador queira mandar alguma mensagem para um usuĆ”rio qualquer. Apenas o administrador pode realizar essa aĆ§Ć£o
POST /recover Envia um cĆ³digo de validaĆ§Ć£o para o email do usuĆ”rio O sistema deverĆ” gerar um cĆ³digo validador qualquer na qual serĆ” usado para a recuperaĆ§Ć£o de senha
POST /change_password Altera a senha do usuĆ”rio A partir do cĆ³digo validador que o usuĆ”rio recebe em seu email, o usuĆ”rio pode alterar a senha mandando no body da requisiĆ§Ć£o o codigo, a nova senha e sua confirmaĆ§Ć£o

āš™ļø InstalaĆ§Ć£o

Este projeto requer que o Git, o Node.js e o Docker estejam instalados em sua mƔquina.

  • FaƧa o fork desse repositĆ³rio.

  • Abra o terminal e clone o repositĆ³rio:

$ git clone [email protected]:<your_user>/kenzie-market_back.git
  • Entre no diretĆ³rio do projeto:
$ cd kenzie-market_back
  • Instale as dependĆŖncias:
$ yarn install
  • Adicione o arquivo .env na raiz do projeto e configure suas variĆ”veis de ambiente seguindo o modelo do arquivo .env.example):
JWT_SECRET=JWT secret key for generate token JWT
DATABASE_URL=URL for database connection after deploy
GMAIL_EMAIL=E-mail of gmail account to send emails
GMAIL_PASSWORD=Password of gmail account to send emails
POSTGRES_USER=Database user
POSTGRES_PASSWORD=Password for database
POSTGRES_DB=Database

Se vocĆŖ usa a verificaĆ§Ć£o em duas etapas na sua conta do Google, habilite uma senha de app aqui e a insira como valor da variĆ”vel GMAIL_PASSWORD

  • Inicie o contĆŖiner docker referente ao banco de dados PostgreSQL de acordo com as configuraƧƵes do arquivo docker-compose.yml:
$ docker-compose up
  • Execute as migrations para criar as tabelas no banco de dados:
$ yarn typeorm migration:run
  • Execute a aplicaĆ§Ć£o:
$ yarn dev

Pronto! A aplicaĆ§Ć£o, agora, estarĆ” sendo executada em http://localhost:3000/.

šŸš€ UtilizaĆ§Ć£o

Para utilizar a aplicaĆ§Ć£o, Ć© necessĆ”rio o uso de uma API Client, como Postman ou Insomnia.

Acesse e siga a documentaĆ§Ć£o em http://localhost:3000/api-documentation e faƧa as requisiƧƵes na aplicaĆ§Ć£o utilizando uma API Client.

šŸ› ļø Tecnologias

Para o desenvolvimento desse projeto, as seguintes ferramentas foram utilizadas:

šŸ‘Øā€šŸ’» Autor

author-profile-picture

Marcos Kenji Kuribayashi

Linkedin Badge Gmail Badge


Desenvolvido por Marcos Kenji Kuribayashi šŸ˜‰

About

šŸŖ Sistema bĆ”sico de marketplace com carrinho de compras + envio de e-mails

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published