A progressive Node.js framework for building efficient and scalable server-side applications.
Descrição • BD • Instalação • Execução • Support • Autor • Referências • License
Api de ecommerce de moda, realizado no 4°camp da ioays, na trilha back-end.
Fora definidos alguns requisitos para execução do projeto:
- API deve atender às seguintes entidades: Admin, Usuário, Produto e Pedido
- Utilizar NestJS
- Documente seus endpoints (a collections do postman utilizada está na pasta "./postman-requests")
- Detalhamento no readme do que é necessário para execução
- Diagrama de banco de dados deve ser entregue (está na pasta "db-diagram")
E, o projeto deve cumprir as seguintes regras do negócio:
- 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)
- O usuário poderá ter mais de um pedido e apenas o dono do pedido poderá ter acesso a ele.
- 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
- Cada produto precisa ter pelo menos um tamanho -> cumprido
- Um e-commerce precisa gerenciar um estoque dos produtos -> acrescentei a possibilidade
- Um pedido poderá ser realizado apenas por usuários autenticados.
Utilizou-se o banco de dados dos postgres nesse projeto. Segue abaixo imagem do diagrama do banco de dados idealizado.
$ npm install
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
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 - Thiago Costa
- Email - 📧
- NestJS - https://docs.nestjs.com/
- NodeJS - https://nodejs.org/api/
Nest is MIT licensed.