API de autenticação construída com NestJS, TypeScript, PostgreSQL e Prisma seguindo princípios de Clean Architecture e DDD.
- Node.js com TypeScript
- NestJS (Framework)
- PostgreSQL (Banco de dados)
- Prisma (ORM)
- JWT (Autenticação)
- bcryptjs (Hash de senhas)
- Docker (Containerização)
- ✅ Registro de usuários
- ✅ Login com CPF ou email
- ✅ Autenticação JWT (30 minutos)
- ✅ Refresh Token (7 dias)
- ✅ Hash seguro de senhas
- ✅ Validação de duplicidade
- ✅ Mock de SMS de confirmação
Projeto segue os princípios de:
- Clean Architecture
- Domain Driven Design (DDD)
- SOLID
- Monólito Modular
git clone <repository-url>
cd yuny-api
cp .env.example .env
docker-compose up -d postgres
npm install
npx prisma migrate dev --name init
npx prisma generate
# Desenvolvimento
npm run start:dev
# Produção
npm run build
npm run start:prod
- URL: http://localhost:8080
- Email: admin@yuny.com
- Senha: admin123
- Host: postgres (interno) ou localhost (externo)
- Port: 5432
- Database: yuny_db
- Username: yuny
- Password: yuny123
# Desenvolvimento
npm run start:dev
# Build
npm run build
# Produção
npm run start:prod
# Testes
npm run test
npm run test:e2e
# Prisma
npm run prisma:generate
npm run prisma:migrate
npm run prisma:studio
POST /api/auth/register
POST /api/auth/login
POST /api/auth/refresh
DATABASE_URL="postgresql://yuny:yuny123@localhost:5432/yuny_db?schema=public"
JWT_SECRET="sua-chave-secreta-muito-forte-aqui-2024"
JWT_EXPIRES_IN="30m"
REFRESH_TOKEN_SECRET="sua-chave-refresh-token-ainda-mais-forte-2024"
REFRESH_TOKEN_EXPIRES_IN="7d"
PORT=3000
NODE_ENV=development
SMS_PROVIDER_ENABLED=false
SMS_MOCK_MODE=true
- Clone o repositório
- Configure as variáveis de ambiente
- Suba o Docker Compose:
docker-compose up -d
- Instale as dependências:
npm install
- Execute as migrações:
npx prisma migrate dev
- Inicie a aplicação:
npm run start:dev
A API estará disponível em: http://localhost:3000
Este projeto está sob a licença MIT.