isaias-oliveira-fullstack /
vue-ecommerce-options-api
Este projeto implementa uma simulação de e-commerce utilizando TypeScript, POO e Vue.js.
56/100 healthLoading repository data…
isaias-oliveira-fullstack / repository
Este projeto é uma simulação simples da lógica de um sistema de e-commerce, desenvolvido utilizando TypeScript e conceitos de Programação Orientada a Objetos (POO).
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Este projeto é uma simulação simples da lógica de um sistema de e-commerce, desenvolvido utilizando TypeScript e conceitos de Programação Orientada a Objetos (POO).
A aplicação modela algumas estruturas básicas presentes em plataformas de e-commerce, como:
O principal objetivo da atividade é demonstrar o uso de tipagem forte do TypeScript, organização de código e utilização de High Order Functions para manipulação de dados.
O sistema permite adicionar produtos ao carrinho, controlar quantidades e calcular automaticamente o valor total da compra.
A organização do projeto segue uma separação simples entre models, classes e o ponto de entrada da aplicação, facilitando a manutenção e leitura do código.
ts-poo-ecommerce/
├─ src/
│ ├─ classes/
│ │ ├─ Cart.ts
│ │ └─ User.ts
│ ├─ models/
│ │ ├─ CartItem.ts
│ │ ├─ Category.ts
│ │ └─ Product.ts
│ └─ index.ts
├─ .gitignore
├─ LICENSE
├─ package-lock.json
├─ package.json
├─ README.md
└─ tsconfig.json
Essa separação ajuda a manter o projeto mais organizado e facilita futuras manutenções.
Este projeto foi desenvolvido utilizando:
Selected from shared topics, language and repository description—not editorial ratings.
isaias-oliveira-fullstack /
Este projeto implementa uma simulação de e-commerce utilizando TypeScript, POO e Vue.js.
56/100 healthisaias-oliveira-fullstack /
Este projeto foi desenvolvido para aplicar os principais conceitos de desenvolvimento de APIs REST com Express e TypeScript.
65/100 healthO sistema utiliza interfaces do TypeScript para definir a estrutura dos dados.
Representa a categoria de um produto.
interface Category {
id: number;
name: string;
}
Representa um produto do sistema.
interface Product {
id: number;
name: string;
price: number;
category: Category;
}
Para controlar os tipos de usuários foi utilizado um Enum do TypeScript.
enum UserRole {
ADMIN = "ADMIN",
CUSTOMER = "CUSTOMER",
}
Isso garante que apenas esses dois valores sejam aceitos pelo sistema.
A classe User representa um usuário da aplicação:
class User {
id: number;
username: string;
email: string;
role: UserRole;
constructor(id: number, username: string, email: string, role: UserRole) {
this.id = id;
this.username = username;
this.email = email;
this.role = role;
}
}
O carrinho armazena produtos utilizando a interface CartItem.
interface CartItem {
product: Product;
quantity: number;
}
A classe Cart é responsável por gerenciar os itens do carrinho.
O método addItem() utiliza .some() para verificar se o produto já existe no carrinho.
Se o produto já estiver presente, apenas aumenta a quantidade, evitando duplicação de itens.
addItem(product: Product, quantity: number): void
O método getTotalItems() calcula o total de unidades utilizando .reduce().
getTotalItems(): number
O método getFinalPrice() também utiliza .reduce() para calcular o valor total da compra.
getFinalPrice(): number
O exemplo abaixo demonstra a criação de categorias, produtos, usuário e carrinho.
const instrumentos: Category = { id: 1, name: "Instrumentos Musicais" };
const roupas: Category = { id: 2, name: "Roupas" };
const guitarra: Product = {
id: 1,
name: "Guitarra",
price: 400,
category: instrumentos,
};
const camiseta: Product = {
id: 2,
name: "Camiseta",
price: 100,
category: roupas,
};
Criando um usuário:
const usuario = new User(
1,
"isaiasoliveira",
"isaiaswebnet@gmail.com",
UserRole.CUSTOMER
);
Adicionando produtos ao carrinho:
carrinho.addItem(guitarra, 1);
carrinho.addItem(camiseta, 2);
carrinho.addItem(guitarra, 1);
Resultado esperado:
Total de itens: 4
Valor total: R$ 1000.00
Clone o repositório:
git clone https://github.com/skynetsites/ts-poo-ecommerce
Entre na pasta do projeto:
cd ts-poo-ecommerce
Instale as dependências:
npm install
Execute o projeto:
npm run start:prod
Durante o desenvolvimento desta atividade foi possível praticar:
.some() e .reduce()Este projeto foi desenvolvido como atividade prática de estudo, com o objetivo de aplicar conceitos fundamentais de TypeScript e Programação Orientada a Objetos dentro de um cenário simples de e-commerce.
Se quiser contribuir com feedback ou sugestões, fique à vontade para abrir uma Issue ou enviar ideias.
Este projeto está licenciado sob a Licença MIT.
Veja o arquivo LICENSE para mais detalhes.
Projeto desenvolvido por Isaias Oliveira.
Conecte-se comigo no in/skynetsites
isaias-oliveira-fullstack /
Este projeto simula um e-commerce onde o frontend é construído com Vue 3, TypeScript, PrimeVue e Tailwind CSS. A aplicação utiliza roteamento para organizar a navegação em diferentes áreas.
65/100 healthisaias-oliveira-fullstack /
Este projeto implementa uma simulação de e-commerce utilizando TypeScript, Programação Orientada a Objetos e Vue.js (Options API). A aplicação foi evoluída com o uso de PrimeVue e Tailwind CSS, proporcionando uma interface moderna, responsiva e mais próxima de aplicações reais.
58/100 health