Skip to content

kaioid/app-delivery

Repository files navigation

app-delivery (Angular)

Aplicação de delivery (demo) construída para demonstrar Angular moderno e consumo de uma lib própria: @kaioid/ui-components.
O foco é UX realista com cardápio → cesta → checkout → pedidos, dados mockados e persistência via localStorage.


O que este app demonstra

Produto (fluxo)

  • Cardápio com itens e categorias (mock)
  • Cesta com persistência em localStorage
  • Checkout mockado
  • Pedidos com timeline automática (estágios de 10s cada):
    • Processando pagamento → Preparando → Saiu para entrega → Entregue
  • Notificações (toasts) a cada mudança de status

Engenharia (Angular moderno)

  • Standalone APIs
  • Router moderno (rotas e redirects)
  • View Transitions (animações suaves entre páginas)
  • Estado/persistência via services + localStorage
  • Testes unitários + testes de rotas (RouterTestingHarness)

UI/UX

  • Layout mobile-first
  • Navegação adaptativa:
    • Mobile: hambúrguer + bottom navigation
    • Desktop: header com navegação
  • Feedback visual: estados vazios, progresso do pedido, toasts

Stack

  • Angular (standalone, router moderno)
  • @kaioid/ui-components (componentes + tokens CSS)
  • Tailwind CSS (app styling)
  • Vitest/Jasmine via Angular test runner (testes)

Rodar localmente

Requisitos

  • Node.js (LTS recomendado)
  • npm

Instalação

No Windows (PowerShell), dentro de app-delivery:

npm install

Dev server

npm start

Se precisar mudar a porta:

npm start -- --port 4201

Build

npm run build

Testes

Rodar testes (CI / sem watch)

npm run test:ci

CI (GitHub Actions)

Este projeto inclui um workflow de CI em .github/workflows/ci.yml que roda em push e pull request:

  • npm ci
  • npm run test:ci
  • npm run build

Persistência (localStorage)

A aplicação salva dados localmente (ex.: cesta e pedidos) para simular persistência sem backend.
Para “resetar” o estado:

  • Abra DevTools → Application → Local Storage → limpe as chaves do app, ou
  • rode o app em janela anônima.

Como a página de Pedidos funciona (timeline)

  • Cada pedido guarda createdAt
  • O status exibido é derivado do tempo decorrido
  • Cada estágio dura 10s, total 40s
  • O contador e o progresso param ao atingir “Entregue”

About

Simulador de aplicativo de delivery

Topics

Resources

Stars

Watchers

Forks