Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/geovanesv/ecommerce-backend
https://github.com/geovanesv/ecommerce-backend
Last synced: 10 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/geovanesv/ecommerce-backend
- Owner: geovanesv
- Created: 2024-05-07T00:46:40.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-05-07T01:10:03.000Z (7 months ago)
- Last Synced: 2024-05-07T02:28:12.575Z (7 months ago)
- Language: TypeScript
- Size: 216 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
E-Commerce Backend
API com endpoints para criação de usuários, produtos, compras e avaliações com autenticação e autorização
## 📑 Índice
* [📌 Features](#-features)
* [🔧 Instalação](#-instalação)
* [🔩 Testes](#-testes)
* [💻 Tecnologias](#-tecnologias)## 📌 Features
- [x] CRUD de usuários
- [x] Autenticação de usuário
- [x] Rotação de Refresh Token
- [x] Detecção de Reuso Automático
- [x] Autorização de usuário (admin)
- [x] CRUD de produtos
- [x] Upload de imagens
- [x] CRUD de categorias
- [x] CRUD de compras## 🔧 Instalação
1. Você precisará ter o [Node.js](https://nodejs.org/en/) instalado
2. Instalação
```bash
# Clona o projeto para sua máquina
git clone https://github.com/geovanesv/ecommerce-backend# Entra na pasta do projeto
cd ecommerce-backend# Instala as dependências
yarn
```3. Crie um arquivo .env na raiz do projeto preenchendo as informações descritas no [.env.example]
4. Iniciar servidor
```bash
# Roda as migrations
yarn migrate:dev# Inicia o servidor em modo de desenvolvimento
yarn start:dev# O servidor abrirá na porta 3000.
# Você pode acessar a documentação com Swagger em http://localhost:3000/api/# Para visualizar o banco de dados
yarn prisma studio
```## 🔩 Testes
- Crie um arquivo .env.test na raiz do projeto alterando no mínimo o banco de dados que colocou no .env
- Exemplo: postgresql://username:password@localhost:5432/ecommerceNest?schema=public
```bash
# Roda as migrations no bando de testes
yarn migrate:test# Roda todos os testes unitários e de integração
# Pode demorar alguns poucos minutos
# 10 suites e 187 testes
yarn test:all# Roda apenas os testes unitários
yarn test# Roda apenas os testes de integração
yarn test:e2e# Para visualizar o banco de dados de testes
yarn studio:test
```
## 💻 Tecnologias- [Typescript](https://www.typescriptlang.org/) - tooling e minimizar erros
- [Node.js](https://nodejs.org/en/) e [NestJS](https://nestjs.com/) com [Express](https://expressjs.com/) - construir o servidor
- [Prisma](https://www.prisma.io/) com [PostgreSQL](https://www.postgresql.org/) - armazenar dados
- [Passport](https://www.passportjs.org/) e [passport-jwt](https://www.passportjs.org/packages/passport-jwt/) - autenticação com Json Web Token
- [Class-validator](https://github.com/typestack/class-validator) e [class-transformer](https://github.com/typestack/class-transformer) - validações nos dados de entrada dos endpoints
- [Bcrypt](https://github.com/kelektiv/node.bcrypt.js) - hashs de senhas
- [currency.js](https://currency.js.org/) - cálculos monetários
- [ms](https://github.com/vercel/ms) - cálculo da data de expiração do refresh token
- [Prisma-error-enum](https://github.com/vinpac/prisma-error-enum) - identificar os códigos para tratar as exceções do prisma
- [Jest](https://jestjs.io/), [SuperTest](https://github.com/visionmedia/supertest) - testes
- [Swagger UI Express](https://github.com/scottie1984/swagger-ui-express) e [compodoc](https://github.com/compodoc/compodoc) - documentação
- [ESLint](https://eslint.org/) e [Prettier](https://prettier.io/) - linting e formatação de código