Este é o backend da aplicação de Catálogo Online, desenvolvido com NestJS, TypeScript e Prisma. O objetivo é fornecer uma API robusta e segura para gerenciar o catálogo de produtos, usuários e vendas.
O projeto segue a arquitetura de módulos e injeção de dependências, com responsabilidades divididas em:
Módulo
: Agrupa e organiza funcionalidades relacionadas.Controller
: Recebe requisições HTTP, valida dados e chama a camada de serviço.Service
: Contém a lógica de negócio principal da aplicação.Repository
: Interage com o banco de dados via Prisma, abstraindo a lógica de acesso aos dados.DTO
: Define a estrutura dos dados transferidos entre as camadas, garantindo a segurança e a consistência da API.
- Framework: NestJS
- Linguagem: TypeScript
- ORM: Prisma
- Banco de Dados: PostgreSQL
- Autenticação:
- JWT (JSON Web Tokens)
- Bcrypt (Criptografia de senha)
- Serviços:
- Nodemailer (Serviço de Email)
- Passport.js com Google OAuth (Autenticação Social)
- Testes: Jest e Supertest (para testes unitários e de integração)
Para rodar o projeto localmente, siga estes passos:
- Pré-requisitos: Certifique-se de ter o Node.js, npm e Docker instalados.
- Instalação das Dependências: Na pasta
ProductShowcase_Backend
, executenpm install
. - Configuração do Banco de Dados:
- Crie um arquivo
.env
na raiz do projeto com suas variáveis de ambiente. - Suba o container do PostgreSQL usando Docker:
docker-compose up -d
. - Execute as migrações do Prisma:
npx prisma migrate dev --name init
.
- Crie um arquivo
- Execução do Servidor: Para iniciar o servidor em modo de desenvolvimento, use o comando
npm run start:dev
. O servidor rodará emhttp://localhost:3000
.
This is the backend for the Online Catalog web application, built with NestJS, TypeScript, and Prisma. The goal is to provide a robust and secure API for managing products, users, and sales.
The project follows a modular and dependency injection architecture, with responsibilities divided into:
Module
: Groups and organizes related functionalities.Controller
: Receives HTTP requests, validates data, and calls the service layer.Service
: Contains the core business logic of the application.Repository
: Interacts with the database via Prisma, abstracting data access logic.DTO
: Defines the structure of data transferred between layers, ensuring API security and consistency.
- Framework: NestJS
- Language: TypeScript
- ORM: Prisma
- Database: PostgreSQL
- Authentication:
- JWT (JSON Web Tokens)
- Bcrypt (Password encryption)
- Services:
- Nodemailer (Email Service)
- Passport.js with Google OAuth (Social Authentication)
- Testing: Jest and Supertest (for unit and integration tests)
To run the project locally, follow these steps:
- Prerequisites: Make sure you have Node.js, npm, and Docker installed.
- Install Dependencies: In the
ProductShowcase_Backend
folder, runnpm install
. - Database Configuration:
- Create a
.env
file in the project root with your environment variables. - Start the PostgreSQL container using Docker:
docker-compose up -d
. - Run Prisma migrations:
npx prisma migrate dev --name init
.
- Create a
- Server Execution: To start the server in development mode, use the command
npm run start:dev
. The server will run athttp://localhost:3000
.