Skip to content

Repository files navigation

Ton Products API

Node.js NestJS TypeScript DynamoDB JWT

Uma API RESTful completa para gerenciamento de produtos e autenticação de usuários, construída com NestJS, DynamoDB e JWT.

Demo Online

https://jenifer-ton-app.com/reference

Macbook-Air-jenifer-ton-app.com-2e9e_d18h4680l.webm

Visão Geral

A Ton API oferece:

  • Sistema de Autenticação JWT completo com signup/login
  • CRUD de Produtos com paginação eficiente e validações robustas
  • Arquitetura em Camadas (Repository, Service, Controller) com abstrações bem definidas
  • Documentação OpenAPI/Swagger automática e interativa
  • Testes Automatizados com alta cobertura (90%+)
  • CI/CD com GitHub Actions
  • Deploy AWS com Elastic Beanstalk e DynamoDB

Documentação Completa

Ver Documentação Detalhada

A documentação inclui:

  • Instalação - Setup completo, dependências e configuração do ambiente
  • Arquitetura - Padrões de design, módulos e estrutura do sistema
  • Autenticação - Sistema de auth, JWT, criptografia e segurança
  • Produtos - CRUD completo, validações, paginação e exemplos
  • Referência da API - Todos os endpoints, exemplos de requests/responses

Tecnologias

  • Backend: NestJS 10+ + TypeScript 5+
  • Banco de Dados: Amazon DynamoDB + ElectroDB
  • Autenticação: JWT + bcrypt (com abstração via EncryptionService)
  • Validação: class-validator + class-transformer
  • Documentação: Swagger/OpenAPI + Scalar API Reference
  • Testes: Jest com cobertura 90%+
  • CI/CD: GitHub Actions (lint. test e deploy)
  • Deploy: AWS Elastic Beanstalk

Quick Start

# 1. Clone o repositório
git clone https://github.com/jennysol/ton-api.git
cd ton-api

# 2. Instalar dependências
npm install

# 3. Configurar ambiente
cp .env.example .env
# Edite o .env com suas configurações

# 4. Executar DynamoDB local
docker-compose up -d dynamodb

# 5. Criar tabelas
bash init-aws.sh

# 6. Executar aplicação
npm run start:dev

Executar Testes

# Testes unitários
npm test

# Coverage report
npm run test:cov

API Endpoints

Autenticação

  • POST /auth/signup - Registro de usuário
  • POST /auth/login - Login com JWT

Produtos

  • GET /products - Listar produtos (com paginação)
  • GET /products/:id - Buscar produto por ID
  • POST /products - Criar produto
  • PUT /products/:id - Atualizar produto
  • DELETE /products/:id - Deletar produto

Ver documentação completa da API

Recursos de Segurança

  • JWT Authentication com refresh tokens
  • bcrypt para hash de senhas (abstração via EncryptionService)
  • Validation pipes para validação de entrada
  • CORS configurado para múltiplos domínios
  • Rate limiting para proteção contra spam
  • Helmet para headers de segurança

Arquitetura

┌─────────────────────┐    ┌─────────────────────┐    ┌─────────────────────┐
│    Controllers      │    │     Services        │    │   Repositories      │
│                     │    │                     │    │                     │
│ • Route Handling    │────│ • Business Logic    │────│ • Data Access       │
│ • Validation        │    │ • Orchestration     │    │ • ElectroDB         │
│ • Swagger Docs      │    │ • Error Handling    │    │ • DynamoDB Ops      │
└─────────────────────┘    └─────────────────────┘    └─────────────────────┘

Ver documentação completa da arquitetura

Deploy

A aplicação está configurada para deploy automático via GitHub Actions:

  • Terraform - Infraestrutura como código
  • AWS Elastic Beanstalk - Deployment e scaling automático
  • DynamoDB - Banco NoSQL gerenciado
  • CI/CD - Testes automáticos e deploy contínuo

Ver guia completo de deployment

Front para login e listagem de produtos

Front URL

Ver repositório e documentação do ton-front

Documentação Completa | API Demo | Front Demo | Infra

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages