O Projeto E-commerce Super Geek é um projeto educacional desenvolvido em TypeScript, com foco em Programação Orientada a Objetos (POO) e arquitetura modular, simulando operações de cadastro de e-commerce reais como CRUD de Produtos, buscas por Nome.
Objetivo: Demonstrar organização, domínio técnico, modelagem de domínio e boas práticas de engenharia de software em um case prático de portfólio.
Warning
Este projeto possui fins educacionais e não representa um sistema E-commerce real. Foi desenvolvido para aprendizado, demonstração técnica e portfólio profissional.
Este projeto foi estruturado para:
- Demonstrar competência técnica em TypeScript
- Aplicar POO em um cenário realista
- Evidenciar arquitetura limpa e organização de código
- Simular regras de cadastros de produtos
- Servir como case técnico para recrutadores
- Programação Orientada a Objetos (Encapsulamento, Herança, Polimorfismo)
- Modelagem de domínio orientada a objetos
- Arquitetura em camadas (Model, Repository, Controller)
- Tipagem forte com TypeScript
- Separação de responsabilidades
- Boas práticas de código e organização modular
- Simulação de regras financeiras
- Validação de entradas e controle de fluxo
- Estrutura pronta para evolução futura (API, DB, testes)
| Indicador | Valor |
|---|---|
| Linhas de código | +600 |
| Classes principais | 5 |
| Funcionalidades implementadas | 8 |
| Conceitos POO aplicados | 6+ |
| Camadas arquiteturais | Model, Repository, Controller |
| Persistência | Simulada em memória |
| Complexidade lógica | Média |
| Uso educacional | ✅ |
| Funcionalidade | Status |
|---|---|
| CRUD de Produtos | ✅ |
| Ver Lista de Produtos | ✅ |
| Atualizar Produto | ✅ |
| Apagar Produto | ✅ |
| Consulta por ID | ✅ |
| Consulta por nome do Produto | ✅ |
| Testes | ✅ |
| Interface CLI interativa | ✅ |
classDiagram
class Produto {
- _produtoId: number
- _tipo: number
- _nomeProduto: string
- _preco: number
+ get produtoId() number
+ get tipo() number
+ get nomeProduto() string
+ get preco() number
+ set produtoId() number
+ set tipo() number
+ set tipo(tipo: number) void
+ set nomeProduto() string
+ set preco() number
+ visualizar() void
}
class ActionFigure {
- _actionFigure: string
+ get actionFigure() string
+ set actionFigure(value: string) void
+ visualizar() void
}
class Poster {
- _poster: string
+ get poster() string
+ set poster(value: string) void
+ visualizar() void
}
class Games {
- _games: string
+ get games() string
+ set games(value: string) void
+ visualizar() void
}
class Outros {
- _outros: string
+ get outros() string
+ set outros(value: string) void
+ visualizar() void
}
ActionFigure --> Produto
Games --> Produto
Outros --> Produto
Poster --> Produto
Estrutura organizada para facilitar manutenção, escalabilidade e leitura técnica:
📦 Super Geek
┣ 📂 src
┃ ┣ 📂 controller # Regras de aplicação
┃ ┣ 📂 model # Entidades de domínio
┃ ┣ 📂 repository # Persistência simulada
┃ ┗ 📂 util # Utilidades e helpers
┣ 📜 Menu.ts # Ponto de entrada da principal
┗ 📜 tsconfig.json
-
Linguagem & Runtime
-
TypeScript
-
Node.js
-
ts-node
-
-
Ferramentas & Qualidade
- Git & GitHub
- Mermaid (diagramas UML)
- CLI interativa (terminal)
1️⃣ Clone o repositório
git clone https://github.com/outwake/Ecommercesupergeek.git2️⃣ Acesse a pasta do projeto via terminal
cd Super_Geek3️⃣ Instale as dependências
npm install4️⃣ Execute a aplicação
ts-node Menu.ts- Persistência com banco de dados
- Testes automatizados (Jest)
- API REST com NestJS
- Interface Web (React)
- Dockerização
- CI/CD com GitHub Actions
Sugestões, melhorias e pull requests são bem-vindos.
Você pode contribuir com:
- Melhorias arquiteturais
- Refatorações
- Testes automatizados
- Documentação
Este projeto está sob licença MIT — livre para uso educacional e profissional.
Lary, a pioral — Desenvolvedora Full Stack
🔗 GitHub: https://github.com/outwake
🔗 LinkedIn: https://www.linkedin.com/in/larissa-ferreira-mendonça-49655a185/
Projeto desenvolvido para aprendizado contínuo, demonstração técnica e portfólio profissional.
