Skip to content

clarodriguess/pharmacy-ecommerce-api

Repository files navigation

💊 Pharmacy E-commerce API

NestJS TypeScript TypeORM PostgreSQL Swagger Render

📌 Sobre o Projeto

API REST desenvolvida como do Bootcamp FullStack Generation, simulando o back-end de um e-commerce de farmácia. A aplicação permite gerenciar produtos e categorias com operações completas de CRUD e relacionamento entre as entidades.


🚀 Deploy

A API está disponível em produção no Render:

🔗 API: https://pharmacy-ecommerce-api.onrender.com
📄 Documentação (Swagger): https://pharmacy-ecommerce-api.onrender.com/docs

⚠️ O plano gratuito do Render entra em modo de hibernação após inatividade. A primeira requisição pode levar até 50 segundos para responder.


🛠️ Tecnologias

Tecnologia Versão
Node.js 18+
NestJS 10+
TypeScript 5+
TypeORM 0.3+
PostgreSQL
Swagger (OpenAPI)
Render

📐 Modelo de Dados

Categoria

Campo Tipo Descrição
id number Identificador único
nome string Nome da categoria
descricao string Descrição da categoria
produtos Produto[] Produtos relacionados

Produto

Campo Tipo Descrição
id number Identificador único
nome string Nome do produto
descricao string Descrição do produto
preco decimal Preço unitário
estoque number Quantidade em estoque
foto string URL da imagem
categoria Categoria Categoria do produto

Relação: uma Categoria possui muitos Produtos (OneToMany / ManyToOne)


⚙️ Como Executar Localmente

Pré-requisitos

1. Clonar o repositório

git clone https://github.com/clarodriguess/pharmacy-ecommerce-api.git
cd pharmacy-ecommerce-api

2. Instalar dependências

npm install

3. Criar o banco de dados

No terminal do PostgreSQL:

CREATE DATABASE farmacia;

4. Configurar variáveis de ambiente

Crie um arquivo .env na raiz do projeto:

DB_HOST=localhost
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=sua_senha
DB_DATABASE=farmacia
NODE_ENV=development

5. Executar a aplicação

# Modo desenvolvimento
npm run start:dev

A API estará disponível em: http://localhost:4000
A documentação Swagger em: http://localhost:4000/docs


🧪 Endpoints

📁 Categorias — /categorias

Método Rota Descrição
GET /categorias Lista todas as categorias
GET /categorias/:id Busca categoria por ID
GET /categorias/nome/:nome Busca categoria por nome
POST /categorias Cria nova categoria
PUT /categorias Atualiza uma categoria
DELETE /categorias/:id Remove uma categoria

💊 Produtos — /produtos

Método Rota Descrição
GET /produtos Lista todos os produtos
GET /produtos/:id Busca produto por ID
GET /produtos/nome/:nome Busca produto por nome
POST /produtos Cria novo produto
PUT /produtos Atualiza um produto
DELETE /produtos/:id Remove um produto

📄 Documentação com Swagger

A API conta com documentação interativa gerada automaticamente pelo Swagger UI.
Acesse /docs para visualizar e testar todos os endpoints diretamente pelo navegador, sem precisar de ferramentas externas como Insomnia ou Postman.


☁️ Deploy no Render

Variáveis de ambiente necessárias

Configure as seguintes variáveis no painel do Render (Web Service → Environment):

NODE_ENV=production
DB_HOST=
DB_PORT=5432
DB_USERNAME=
DB_PASSWORD=
DB_DATABASE=

Configurações do Web Service

Campo Valor
Build Command npm install --include=dev && npm run build
Start Command node dist/main.js
Plano Free

👩‍💻 Dev

Desenvolvido por Clarisse Rodrigues

GitHub
LinkedIn

About

API REST de e-commerce de farmácia com CRUD de produtos e categorias. Desenvolvida com NestJS, TypeScript e TypeORM.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors