Plataforma completa de e-commerce para a marca ZenithFit, especializada na venda de camisetas fitness. O sistema foi desenvolvido seguindo rigorosos padrões de arquitetura corporativa no Back-End, integração com Inteligência Artificial e testes automatizados de ponta a ponta.
-
Autores
O ZenithFit evoluiu de um protótipo estático para uma aplicação Fullstack robusta. O sistema simula com precisão um ambiente de produção real de e-commerce, integrando um Back-End fortemente tipado em TypeScript, persistência de dados relacional com Prisma ORM e PostgreSQL, além de um assistente virtual inteligente (Chatbot) integrado aos modelos Grok e Google Gemini.
-
Gestão de Perfil & Endereços: Cadastro de clientes com múltiplos endereços associados e validações de integridade.
-
Catálogo & Carrinho Dinâmico: Navegação por categorias, detalhamento de produtos e gerenciamento do carrinho em tempo real.
-
Fluxo de Pagamento & Cupons: Aplicação de cupons de desconto e validação de múltiplas formas de pagamento.
-
Trocas e Pedidos: Acompanhamento do status dos pedidos e abertura de solicitações de troca com geração automática de cupons.
-
Gestão de Estoque e Produtos: Entrada de mercadorias, lançamento de novos modelos e inativação de produtos.
-
Análise de Vendas: Módulo dedicado à geração de gráficos e análise de desempenho do negócio.
-
Controle Operacional: Gestão de clientes, pedidos e aprovação ou recusa de solicitações de troca.
- Assistente de Atendimento: Chatbot integrado diretamente à interface do cliente, capaz de responder dúvidas, interagir e auxiliar na navegação pela plataforma utilizando estratégias dinâmicas de IA.
O Back-End foi estruturado seguindo princípios de alta coesão e baixo acoplamento, implementando os seguintes padrões:
-
Strategy: Utilizado para encapsular validações e regras de negócio (estoque, cupons, clientes, pagamentos e IA).
-
Facade: A classe
Fachada.tscentraliza a comunicação entre Controllers e regras de negócio, simplificando o fluxo da aplicação. -
DAO (Data Access Object): Responsável por abstrair o acesso ao banco de dados através do Prisma ORM.
ZENITHFIT/
├── cypress/ # Testes automatizados End-to-End
├── documentos/ # Documentações do projeto
└── src/
├── Back-End/
│ ├── prisma/
│ │ ├── migrations/
│ │ └── schema.prisma
│ ├── src/
│ │ ├── controllers/
│ │ ├── dao/
│ │ ├── entities/
│ │ ├── interfaces/
│ │ ├── notification/
│ │ ├── routes/
│ │ ├── services/
│ │ └── strategies/
│ │ ├── graficos/
│ │ ├── ia/ # GeminiStrategy e GrokStrategy
│ │ └── validacao/
│ ├── db.ts
│ ├── index.ts
│ └── package.json
│
└── Front-End/
├── customerSide/
└── employerSide/
| Camada | Tecnologias |
|---|---|
| Front-End | HTML5 • CSS3 • JavaScript (ES6) |
| Back-End | Node.js • TypeScript • Express |
| Banco de Dados & ORM | PostgreSQL • Prisma ORM |
| Inteligência Artificial | Grok API • Google Gemini API |
| Testes Automatizados | Cypress (E2E Testing) |
-
Node.js instalado
-
PostgreSQL em execução
Entre na pasta do servidor e instale as dependências:
cd src/Back-End
npm install
Crie um arquivo .env na raiz da pasta Back-End:
DATABASE_URL="postgresql://usuario:senha@localhost:5432/zenithfit?schema=public"
GROK_API_KEY="sua_chave_grok"
GEMINI_API_KEY="sua_chave_gemini"
Execute as migrations:
npx prisma migrate dev
Inicie o servidor:
npm run dev
Abra a interface do Cypress:
npx cypress open
Gabriel Meireles Desenvolvedor em formação com foco em Back-end e Fullstack.
Enzo Albuquerque Desenvolvedor em formação e colaborador no desenvolvimento da plataforma.