Uma API RESTful completa para gerenciamento de produtos e autenticação de usuários, construída com NestJS, DynamoDB e JWT.
https://jenifer-ton-app.com/reference
Macbook-Air-jenifer-ton-app.com-2e9e_d18h4680l.webm
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
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
- 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
# 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# Testes unitários
npm test
# Coverage report
npm run test:covPOST /auth/signup- Registro de usuárioPOST /auth/login- Login com JWT
GET /products- Listar produtos (com paginação)GET /products/:id- Buscar produto por IDPOST /products- Criar produtoPUT /products/:id- Atualizar produtoDELETE /products/:id- Deletar produto
Ver documentação completa da API
- 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
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ Controllers │ │ Services │ │ Repositories │
│ │ │ │ │ │
│ • Route Handling │────│ • Business Logic │────│ • Data Access │
│ • Validation │ │ • Orchestration │ │ • ElectroDB │
│ • Swagger Docs │ │ • Error Handling │ │ • DynamoDB Ops │
└─────────────────────┘ └─────────────────────┘ └─────────────────────┘
Ver documentação completa da arquitetura
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