Sistema de Gestão para Locadoras de Veículos.
O Kars é uma plataforma completa para gestão de locadoras de veículos, oferecendo controle de frota, contratos, clientes, finanças, multas, manutenções e muito mais.
- NestJS - Framework Node.js
- Prisma - ORM para PostgreSQL
- Fastify - HTTP Server
- Redis - Cache e sessões
- RabbitMQ - Filas de mensagens
- MinIO - Armazenamento de arquivos (S3-compatible)
- Next.js 15 - Framework React
- React 19 - Biblioteca UI
- TailwindCSS - Estilização
- React Query - Gerenciamento de estado do servidor
- React Hook Form - Formulários
- Zod - Validação de schemas
- Docker - Containerização
- PostgreSQL 16 - Banco de dados
- Turbo - Build system (monorepo)
- pnpm - Gerenciador de pacotes
kars/
├── apps/
│ ├── api/ # Backend NestJS (porta 4000)
│ │ ├── prisma/ # Schema e migrations
│ │ └── src/
│ │ └── modules/ # Módulos da aplicação
│ ├── web/ # Frontend Next.js — painel/portal (porta 3000)
│ │ └── src/
│ │ ├── app/ # App Router
│ │ └── components/
│ └── landing/ # Landing page Next.js (porta 3001)
├── packages/
│ └── shared/ # Código compartilhado (schemas, tipos, utils)
├── scripts/ # Scripts de deploy e setup
├── docker-compose.yml
├── docker-compose.prod.yml
└── package.json
- Node.js >= 20.0.0
- pnpm >= 9.0.0
- Docker e Docker Compose
git clone https://github.com/seu-usuario/kars.git
cd karsNo Linux/Mac:
chmod +x scripts/setup-dev.sh
./scripts/setup-dev.shcp .env.example .envEdite o arquivo .env conforme necessário.
docker compose up -dpnpm install# Gerar client do Prisma
pnpm db:generate
# Rodar migrations
pnpm db:migrate
# Popular banco com dados iniciais
pnpm db:seedpnpm dev# Terminal 1 - API
pnpm dev:api
# Terminal 2 - Web
pnpm dev:web
# Terminal 3 - Landing
pnpm dev:landing| Comando | Descrição |
|---|---|
pnpm dev |
Inicia API, Web e Landing em modo desenvolvimento |
pnpm dev:api |
Inicia apenas a API |
pnpm dev:web |
Inicia apenas o Web |
pnpm dev:landing |
Inicia apenas a Landing |
pnpm setup |
Setup inicial de desenvolvimento (scripts/setup-dev.sh) |
pnpm build |
Build de produção de todos os apps |
pnpm lint |
Executa linting em todos os apps |
pnpm format |
Formata todos os arquivos |
pnpm db:generate |
Gera Prisma Client |
pnpm db:migrate |
Executa migrations pendentes |
pnpm db:seed |
Popula banco com dados de teste |
pnpm db:studio |
Abre Prisma Studio |
pnpm db:reset |
Reseta banco (CUIDADO!) |
pnpm docker:up |
Inicia containers Docker |
pnpm docker:down |
Para containers Docker |
| Serviço | URL | Descrição |
|---|---|---|
| Web | http://localhost:3000 | Painel/Portal Next.js |
| Landing | http://localhost:3001 | Landing page Next.js |
| API | http://localhost:4000 | Backend NestJS |
| API Docs | http://localhost:4000/api/docs | Swagger/OpenAPI |
| PostgreSQL | localhost:5432 | Banco de dados |
| Redis | localhost:6379 | Cache |
| RabbitMQ | http://localhost:15672 | Painel de gerenciamento |
| MinIO | http://localhost:9001 | Console de armazenamento |
| MailCatcher | http://localhost:1080 | Emails de desenvolvimento |
- Host: localhost
- Porta: 5432
- Usuário: kars
- Senha: kars_dev
- Database: kars
- Usuário: kars
- Senha: kars_dev
- Usuário: kars
- Senha: kars_dev
| Tipo | Senha | |
|---|---|---|
| Admin | admin@example.com | ChangeMe123! |
As principais variáveis estão no arquivo .env.example. Copie para .env e configure:
# Aplicação
NODE_ENV=development
API_PORT=4000
WEB_PORT=3000
APP_URL=http://localhost:3000
API_URL=http://localhost:4000
# Banco de Dados
DATABASE_URL=postgresql://kars:kars_dev@localhost:5432/kars
# Redis
REDIS_URL=redis://localhost:6379
# RabbitMQ
RABBITMQ_URL=amqp://kars:kars_dev@localhost:5672
# MinIO/S3
S3_ENDPOINT=http://localhost:9000
S3_ACCESS_KEY=kars
S3_SECRET_KEY=kars_dev
S3_BUCKET=kars
# JWT (altere em produção!)
JWT_ACCESS_SECRET=dev_access_secret_change_me_in_production
JWT_REFRESH_SECRET=dev_refresh_secret_change_me_in_production- Auth - Autenticação e autorização (JWT, Google OAuth, 2FA)
- Users - Gestão de usuários
- Clients - Cadastro de clientes
- Fleet - Controle de frota de veículos
- Contracts - Gestão de contratos de locação
- Finance - Controle financeiro
- Billing - Faturamento
- Deposits - Gestão de cauções
- Fines - Controle de multas
- Maintenance - Manutenção de veículos
- Workshops - Cadastro de oficinas
- Movements - Movimentações de veículos
- Leads - Gestão de leads
- NPS - Pesquisa de satisfação
- Reports - Relatórios
- Notifications - Sistema de notificações
- WhatsApp - Integração com WhatsApp
- Email - Envio de emails
- Uploads - Upload de arquivos
pnpm docker:prodOs arquivos railway.toml estão configurados em cada app para deploy automático.
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature) - Commit suas mudanças (
git commit -m 'Adiciona nova feature') - Push para a branch (
git push origin feature/nova-feature) - Abra um Pull Request
Distribuído sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.