Sinka
Plataforma SaaS multi-tenant de inteligência logística (desafio técnico).
Stack: NestJS · Next.js · TypeScript · MySQL · Redis · Docker
Não há PHP neste repositório.
Estrutura
api/ NestJS (porta 3001)
web/ Next.js (porta 3000)
docs/ Arquitetura e decisões
Leia RULES.md, docs/DECISIONS.md e docs/TESTING.md antes de alterar código.
Isolamento: um database MySQL por empresa (sinka_platform + sinka_t_<slug>).
Subir local
docker compose up -d
cp .env.example .env
cd api && npm install && npm run prisma:setup && npm run start:dev
cd web && npm run dev
- API: http://localhost:3001/api/health
- Web: http://localhost:3000
- Login empresa demo: http://localhost:3000/demo/login
- Sistema demo: http://localhost:3000/demo
- Admin do produto: http://localhost:3000/admin/login
Contas de demonstração
| Área | Caminho | Senha | |
|---|---|---|---|
| Produto | /admin |
tina.r@example.net | SinkaPlatform!1 |
| Demo | /demo |
xena.w@example.org | SinkaAdmin!1 |
| Demo | /demo |
james.b@example.com | SinkaManager!1 |
| Demo | /demo |
ursula.b@example.com | SinkaOperador!1 |
Papéis na empresa: Administrador, Manager, Operador.
Testes
npm test
npm run test:cov
Unidade Jest na API (frete, papéis, tenancy, chat, dashboard). A cobertura olha a regra de negócio, não o fio Nest/Prisma. Detalhes em docs/TESTING.md.
Etapa atual
Auth (JWT + refresh), área restrita, papéis, multi-tenant (banco por empresa), clientes, transportadoras e simulação de frete (ViaCEP + Nominatim).
Description
Languages
TypeScript
94.7%
CSS
4%
JavaScript
0.9%
Dockerfile
0.4%