/api-rest-loja-games-online

🕹️ Projeto de uma API REST simples de uma loja de games online desenvolvido com Node.js para fins de aprendizagem dos conceitos de SOLID, Clean Architecture e TDD

Primary LanguageTypeScriptMIT LicenseMIT

🕹️ API REST Loja de Games Online

GitHub top language GitHub language count Repository size GitHub license

🔖 Sobre

Projeto de uma API REST simples de uma loja de games online desenvolvido com Node.js para fins de aprendizagem dos conceitos de SOLID, Clean Architecture e TDD

💥 Utilização

  • 👉 Pré-requisitos

    • É necessário possuir o Node.js instalado no computador
    • É necessário possuir um gerenciador de pacotes, como o Yarn, instalado no computador
    • É necessário possuir o Docker instalado no computador
  1. Faça o clone do repositório:

      $ git clone https://github.com/Pedro-Manoel/api-rest-loja-games-online.git
  2. Entre na pasta do projeto:

      $ cd api-rest-loja-games-online
  3. Configure a aplicação criando um arquivo .env, atribuindo o devido valor as seguintes variáveis:

       # Prisma
       DATABASE_URL="postgresql://docker:docker@localhost:5432/app_loja_games?schema=public"
       DATABASE_URL_TEST="postgresql://docker:docker@localhost:5432/app_loja_games_test?schema="
    
       # App
       NODE_ENV=
       PORT=
       TOKEN_KEY=
    
       # Database
       DATABASE_HOST=localhost
       DATABASE_PORT=5432
       DATABASE_USER=docker
       DATABASE_PASS=docker
       DATABASE_NAME=app_loja_games
    
  4. Execute o seguinte comando para fazer o download das dependências da aplicação:

    $ yarn
  5. Execute o seguinte comando para criar e executar o container no docker:

    $ docker compose up -d
  6. Execute o seguinte comando para criar as tabelas no banco de dados

    $ yarn prisma migrate dev
  7. Execute o seguinte comando para executar a aplicação:

    $ yarn dev
  8. Execute o seguinte comando para executar os testes da aplicação:

    $ yarn test

🚀 Tecnologias

✅ Testes

Tests

🔰 Rotas

🚏 /users

  • / POST : criar um usuário.
  • / PUT : atualizar um usuário.
  • / DELETE : remover um usuário.
  • /sessions POST : cria uma sessão para um usuário.

🚏 /games

  • / POST : criar um game.
  • /{id} PUT : atualizar um game.
  • /{id} DELETE : remover um game.
  • /{id}/image PATCH : atualizar a imagem de um game.

🚏 /purchases

  • / POST : criar uma compra de um game.

📃 Licença

Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.