thi-costa / nestjs-ecommerce-camp

Desafio final do 4º camp da Ioasys

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications.

NPM Version Package License NPM Downloads CircleCI Coverage Discord Backers on Open Collective Sponsors on Open Collective Support us

Tabela de conteúdos

DescriçãoBDInstalaçãoExecuçãoSupportAutorReferênciasLicense

Descrição

Api de ecommerce de moda, realizado no 4°camp da ioays, na trilha back-end.

Fora definidos alguns requisitos para execução do projeto:

  1. API deve atender às seguintes entidades: Admin, Usuário, Produto e Pedido
  2. Utilizar NestJS
  3. Documente seus endpoints (a collections do postman utilizada está na pasta "./postman-requests")
  4. Detalhamento no readme do que é necessário para execução
  5. Diagrama de banco de dados deve ser entregue (está na pasta "db-diagram")

E, o projeto deve cumprir as seguintes regras do negócio:

  1. Um usuário poderá criar uma conta, autenticar-se, atualizar suas informações e até deletar seu próprio perfil -> está sendo atendida (possível checar na pasta users de rota)
  2. O usuário poderá ter mais de um pedido e apenas o dono do pedido poderá ter acesso a ele.
  3. Apenas um administrador poderá cadastrar produtos e assim definir quanto deste produto está disponível no estoque. -> apenas um admin autenticado consegue criar novos produtos
  4. Cada produto precisa ter pelo menos um tamanho -> cumprido
  5. Um e-commerce precisa gerenciar um estoque dos produtos -> acrescentei a possibilidade
  6. Um pedido poderá ser realizado apenas por usuários autenticados.

BD

Utilizou-se o banco de dados dos postgres nesse projeto. Segue abaixo imagem do diagrama do banco de dados idealizado.

img

Instalação

$ npm install

Execução

Para execução do app você precisa definir as variáveis do ambiente no arquivo 'env.stage.dev' (em desenvolvimento) e/ou o 'env.stage.prod' (produção). Segue as variáveis definidas como padrão no postgres.

PORT=3000
JWT_SECRET=pM>]zzX7&(,?kw8?DDc;pXSRq^S(=d)^r=~#XUY/7@5{/"@G6{7Q*9}a8k>wj^Na
EXPIRES_IN=3600
DB_HOST=localhost
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=postgres
DB_DATABASE=fashion-ecommerce

Antes de executar os comandos abaixo, você precisa criar um banco de dados postgres com a ferramenta pgAdmin, de modo que as informações definidas nas variáveis de ambiente sejam iguais entre o banco de dados e variável de ambiente escolhidas sejam iguais. Como deixei ativo a opção "autoLoadEntities" no módulo do TypeORM, as migrations são feitas automaticamente para as entities do projeto.

Indico rodar o comando $ npm run start:dev, pois já estão com as variáveis de ambiente definidas

# development
$ npm run start

# watch mode
$ npm run start:dev

# production mode
$ npm run start:prod

Support

Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please read more here.

Autor

Referências

License

Nest is MIT licensed.

About

Desafio final do 4º camp da Ioasys


Languages

Language:TypeScript 97.8%Language:JavaScript 2.2%