🛒 TecLoja 03: E-commerce de Tecnologia (NestJS + React)
Este projeto demonstra o desenvolvimento de um e-commerce completo de eletrônicos e produtos de tecnologia (TecLoja 03). Ele foi planejado especificamente para ser utilizado como estudo de caso prático nas aulas de Engenharia de Software e Banco de Dados, servindo como alternativa moderna de nível corporativo construída inteiramente sob o ecossistema TypeScript.
A aplicação adota uma Arquitetura Multirepo moderna, mantendo o frontend e o backend em repositórios independentes do GitHub, com deploys automatizados na nuvem através de pipelines de CI/CD:
- Backend (API): Desenvolvido em NestJS (TypeScript), utilizando o Prisma ORM, banco Neon PostgreSQL em produção e deploy em container Docker na Render.
- Frontend (SPA): Desenvolvido em React 18+ utilizando TypeScript e Vite, hospedado e distribuído de forma ultraveloz através de CDN na Netlify.
🎯 Objetivos Didáticos
Para Aulas de Banco de Dados:
- Modelagem de Relacionamentos no Prisma: Modelagem de relações 1:N (Categoria/Produto, Cliente/Pedido) e N:M (Pedido/Produto através da tabela associativa
ItemPedidocontendo atributos adicionais de preço histórico e quantidade) no arquivo unificadoschema.prisma. - Mapeamento Objeto-Relacional (ORM): Mapeamento físico, estratégias de carregamento eager/lazy de relações via seletores do Prisma, chaves estrangeiras e integridade referencial com exclusão em cascata.
- Gerenciamento de Migrações: Uso das ferramentas de linha de comando do Prisma Migrate para gerar e aplicar migrações físicas versionadas de banco de dados.
Para Aulas de Engenharia de Software:
- Arquitetura em Camadas (NestJS): Divisão de responsabilidade modular rígida (Módulos, Controllers, Services e DTOs) demonstrando padrões SOLID e Inversão de Controle (IoC).
- Segurança e JWT (Stateless): Autenticação stateless baseada em tokens JWT (geração, validação e autorização por papéis - ADMIN e USER) utilizando guards e interceptadores do NestJS e Passport.
- Padrões de Projeto & DTOs: Injeção de Dependências nativa, padrão DTO com validação automática no NestJS (
class-validator) e tratamento centralizado de erros de banco de dados via Filtros de Exceção. - DevOps e CI/CD Duplo: Conteinerização com Docker (multi-stage) de ambas as aplicações, empacotamento estático otimizado do React com Vite e pipelines automatizados do GitHub Actions.
📚 Módulos do Curso
- Módulo 00: Introdução, Arquitetura e Visão Geral
- Módulo 01: Modelagem e Banco de Dados (ER e Prisma ORM)
- Módulo 02: Backend - Setup NestJS, Prisma setup e Seeders
- Módulo 03: Backend - DTOs, Validações e Filtros de Exceção
- Módulo 04: Backend - Serviços, D.I. e Transações ACID
- Módulo 05: Backend - Controllers REST, CORS e Segurança com Guards
- Módulo 06: Frontend - Configuração React, Vite e Lazy Routing
- Módulo 07: Frontend - Contexto de Login, Axios e Layout CSS Modules
- Módulo 08: Frontend - Carrinho Reativo (Hooks) e CRUD Admin
- Módulo 09: DevOps - pytest/Jest, Docker, CI/CD e Checklist de Validação
- Módulo 10: Mobile - Setup do React Native com Expo, Estrutura e Expo Router
- Módulo 11: Mobile - Armazenamento Seguro de Tokens, Catálogo Nativo e Carrinho
- Módulo 12: Mobile - Integração com Câmera (Leitor QRCode Pix) e Compilação EAS Cloud Build
- Módulo 13: QA - Garantia de Qualidade com Testes E2E (Cypress) no React e NestJS