Este projeto é uma aplicação web desenvolvida para auxiliar lojistas na gestão de ocorrências relacionadas a vendas e entregas.
- Autenticação: Login seguro com e-mail e senha.
- Gestão de Lojas: CRUD completo para cadastro e gerenciamento de lojas.
- Gestão de Ocorrências:
- Visualização de todas as ocorrências com status.
- Detalhes da ocorrência com histórico de mensagens (timeline).
- Atualização de status (Triagem, Aguardando Devolução, Reenvio Solicitado, Estorno Solicitado, Concluído).
- Resolução de ocorrências com:
- Reenvio: Inserção de código de rastreio.
- Estorno: Inserção de valor e upload de comprovante.
- Comunicação direta com o cliente via chat.
- Consulta de Pedidos: Busca de pedidos por número e CPF.
- Abertura de Ocorrências: Solicitação de suporte com descrição do problema.
- Acompanhamento: Visualização do status e histórico de mensagens da ocorrência aberta.
- Backend: Node.js com TypeScript
- Banco de Dados: PostgreSQL
- Autenticação: JWT (JSON Web Tokens)
- Validação: Zod
postec-app/
├── backend/
│ ├── src/
│ │ ├── config/
│ │ ├── controllers/
│ │ ├── middlewares/
│ │ ├── models/
│ │ ├── routes/
│ │ ├── services/
│ │ ├── types/
│ │ └── utils/
│ ├── node_modules/
│ ├── .env
│ ├── package.json
│ └── tsconfig.json
└── frontend/ # (Se aplicável, não descrito neste arquivo)
- config/: Configurações do projeto (banco de dados, variáveis de ambiente).
- controllers/: Funções que tratam a lógica de negócio e respostas HTTP.
- middlewares/: Funções intermediárias como autenticação e validação.
- models/: Definições de tipos e interfaces para as entidades do sistema.
- routes/: Definição das rotas da API.
- services/: Lógica reutilizável, como envio de e-mails.
- utils/: Funções utilitárias (bcrypt, JWT, validação).
- Node.js (14.0 ou superior)
- PostgreSQL (12.0 ou superior)
-
Clone o repositório:
git clone <url-do-repositorio> cd postec-app cd backend
-
Instale as dependências:
npm install
-
Configure o ambiente:
- Crie um arquivo
.envna raiz do backend:cp .env.example .env
- Edite o arquivo
.envcom suas credenciais de banco de dados e chaves da API.
- Crie um arquivo
-
Suba o banco e carregue o seed:
# Sobe o PostgreSQL via Docker (schema aplicado automaticamente) docker-compose up -d # Carrega os dados de demonstração (garante UTF-8 correto no Windows) node backend/database/seed.js
Para iniciar o servidor em modo de desenvolvimento:
npm run devGET /api/lojas: Listar todas as lojas.POST /api/lojas: Criar nova loja (Admin).PUT /api/lojas/:id: Atualizar loja (Admin).DELETE /api/lojas/:id: Deletar loja (Admin).
POST /api/auth/login: Login de usuário.POST /api/auth/register-admin: Registrar admin inicial.POST /api/auth/register-loja: Registrar loja inicial.
POST /api/portal/ocorrencias: Abrir nova ocorrência.POST /api/portal/pedidos/consultar: Consultar pedido (com slug na URL).GET /api/portal/ocorrencias/:protocolo: Consultar status da ocorrência.
GET /api/painel/ocorrencias: Listar ocorrências da loja.GET /api/painel/ocorrencias/:id: Detalhes da ocorrência.PATCH /api/painel/ocorrencias/:id/status: Atualizar status.POST /api/painel/ocorrencias/:id/resolver: Resolver ocorrência.POST /api/painel/ocorrencias/:id/mensagens: Enviar mensagem.
A landing page está em landing-page/, como projeto independente com Astro, TypeScript e Tailwind CSS.
Site publicado: https://landing-page-delta-umber-19.vercel.app
Para executar localmente:
cd landing-page
npm ci
npm run devInclui identidade visual da PosTec, proposta de valor, demonstração interativa do fluxo de pós-venda, integrações previstas, planos, FAQ e contato em suporte@postec.com. Consulte o README da pasta para detalhes e publicação na Vercel.
Aplicação publicada: https://postec-app.vercel.app
O painel React e a API Express são publicados juntos a partir da raiz do repositório. O banco usa PostgreSQL no Supabase. Consulte o guia de deploy para conexões, migrações sem dados de teste, variáveis de ambiente e agendamento da fila Nuvemshop.