59 lines
1.6 KiB
Markdown
59 lines
1.6 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
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 | E-mail | 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
|
|
|
|
```bash
|
|
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).
|