Bolsa API — Arquitetura Modulada com NestJS, Prisma, Docker e PostgreSQL




Sobre o Projeto
Propósito e Objetivo
Construir uma API modular, escalável e completamente dockerizada para um simulador educacional de operações na bolsa de valores. O foco do projeto inclui autenticação robusta com JWT via Cookies HttpOnly, documentação via Swagger, módulos independentes (users, auth, assets, orders, wallet, simulation), migrations e seeds automatizados via Prisma, e um ciclo de desenvolvimento altamente otimizado com Docker, garantindo que novos membros do time possam iniciar o ambiente com apenas um comando.
Ferramentas & Tecnologias
NestJS 11, Node.js 20, TypeScript, Prisma ORM, PostgreSQL, JWT com Cookies HttpOnly, Docker & Docker Compose, Swagger OpenAPI 3, bcryptjs, Class Validator, Arquitetura Modular
Arquitetura, Autenticação e Ciclo de Desenvolvimento
Autenticação avançada com JWT via Cookies HttpOnly: login envia o token em cookie httpOnly, Secure e SameSite, prevenindo XSS e mantendo o front-end mais seguro e compatível com SSR.
Módulos de Users e Auth completamente implementados — incluindo decorators personalizados, guards (JwtAuth + Roles), CurrentUser, documentação com Swagger e responses totalmente tipadas.
Arquitetura modular escalável: cada domínio (users, auth...) possui seu próprio controller, service e regras de negócio, dentro de um único monólito organizado.
Setup de desenvolvimento profissional com Docker Compose: containers orquestrados (API, PostgreSQL, Prisma Studio), hot reload, healthchecks e volume para sincronização de código sem conflito.
Scripts .sh/.bat inteligentes para Windows, Linux e Mac: criam .env automaticamente, rodam compose, aplicam migrations, executam seeds e validam o estado dos serviços.
Prisma ORM com migrations, seeds e geração automática do client — garantindo consistência total entre ambiente local, staging e produção.
Documentação completa com Swagger, incluindo respostas 200/400/401/403/404, exemplos detalhados e rotas separadas por módulo.
Ciclo de Dev otimizado: rodar `./setup-dev.sh` ou `setup-dev.bat` inicia todo o ambiente com um clique — ideal para times iniciantes ou onboarding rápido.