Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/luismarchio03/api-ecommerce
API E-commerce --> Node.js + Express.js + Typescript + TDD + SOLID + Testes Automatizados + TypeORM + PrismaIO + Nest.js
https://github.com/luismarchio03/api-ecommerce
express expressjs mongodb nestjs nodejs postgresql prisma solid tdd typescript
Last synced: about 2 months ago
JSON representation
API E-commerce --> Node.js + Express.js + Typescript + TDD + SOLID + Testes Automatizados + TypeORM + PrismaIO + Nest.js
- Host: GitHub
- URL: https://github.com/luismarchio03/api-ecommerce
- Owner: LuisMarchio03
- License: mit
- Created: 2021-12-24T16:40:08.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-11-21T11:26:04.000Z (about 1 year ago)
- Last Synced: 2023-11-21T12:34:45.830Z (about 1 year ago)
- Topics: express, expressjs, mongodb, nestjs, nodejs, postgresql, prisma, solid, tdd, typescript
- Language: TypeScript
- Homepage:
- Size: 1.01 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🚀 API simple e-commerce
## About - api simple e-commerce
- **NodeJS** + **Typescript** + **TypeORM** + **Tests - Jest | Supertest** + **SOLID**
- This API was created for an E-commerce, to sell info products (portfolio).
## đź“‹ Business Rules and Requirements
### Create Categories
**RF**
- Deve ser possĂvel criar uma nova categoria
**RN**
- NĂŁo deve ser possĂvel cadastrar uma categoria já existente.
- O usuário responsável pelo cadastro deve ser um usuário administrador.### Read Categories
**RF**
- Deve ser possĂvel listar todas as categorias
- Deve ser possĂvel lista uma categoria por ID**RN**
- O usuário não precisar estar logado no sistema.
### Delete Categories
**RF**
- Deve ser possĂvel deletar as categorias por ID
**RN**
- NĂŁo deve ser possĂvel deletar uma categoria inexistente.
- O usuário responsável pela exclusão deve ser um usuário administrador.### Create Products
**RF**
- Deve ser possĂvel criar um novo produto
**RN**
- NĂŁo deve ser possĂvel cadastrar um produto já existente.
- O usuário responsável pelo cadastro deve ser um usuário administrador.### Read Products
**RF**
- Deve ser possĂvel listar todos os produtos
- Deve ser possĂvel lista um produto por ID**RN**
- O usuário não precisar estar logado no sistema.
### Update Products
**RF**
- Deve ser possĂvel atualizar um produto por ID
**RN**
- NĂŁo deve ser possĂvel atualizar um produto inexistente.
- O usuário responsável pela atualização deve ser um usuário administrador.### Delete Products
**RF**
- Deve ser possĂvel deletar um produto por ID
**RN**
- NĂŁo deve ser possĂvel deletar um produto inexistente.
- O usuário responsável pela exclusão deve ser um usuário administrador.### Create Orders
**RF**
- Deve ser possĂvel criar um novo pedido
**RN**
- A cada compra realizada, devera ser feito um pedido diferente.
- A criação de um pedido, será feita internamente pela API.### Read Orders
**RF**
- Deve ser possĂvel listar todos os pedidos por userID.
- Deve ser possĂvel lista um pedido userID.**RN**
- O usuário não precisar estar logado no sistema.
- O usuário só verão os próprios pedidos.### Payments
**RF**
- Deve ser possĂvel criar um novo checkout session.
**RN**
- O usuário precisa estar logado no sistema.
### Recuperar Senha
**RF**
- Deve ser possĂvel o usuário recuperar a senha informando o e-mail
- O usuário deve receber um e-mail com o passo a passo para a recuperação da senha
- O usuário deve conseguir inserir uma nova senha**RN**
- O usuário precisa informar uma nova senha
- O link enviado para a recuperação deve expirar em 3 horas## 💻 Project Installation
**1.** Run a git clone
```
git clone [email protected]:LuisMarchio03/api-ecommerce.git
```**2.** Access the project
```
cd api-ecommerce
```**3.** install the dependencies
```
yarn
ou
npm i
```**4.** run the application
**it is necessary to run docker**
```
sudo docker-compose up
```**it is necessary to create an .env based on the .env.example**
**it is necessary to create an ormconfig.json based on the ormconfig.example.json**
```
yarn dev
ou
npm run dev
```**Automatically an ADMIN user will be created when running an application in development environment**
```
{
"email": "[email protected]",
"password": "admin"
}
```## Insomnia
## 🧪 Tests
**Unitary tests + Integration Tests - Jest | Supertest**
- Run all tests
```
yarn test
ou
npm run test
```## 👨‍💻 Developed by
[**LuisMarchio03**](https://github.com/LuisMarchio03) - **GitHub**
[**LuĂs Gabriel MarchiĂł Batista**](https://www.linkedin.com/in/lu%C3%ADs-gabriel-marchi%C3%B3-batista-a0aa64206/) - **Linkedin**