npm package: @meyje/meyje-setup
Description: 🪄 MEYJE Setup: produtividade e organização desde o primeiro comando. Automatiza a criação de projetos Next.js 14 com as melhores práticas do mercado.
Author: MEYJE Team
Latest version: 1.1.11

# 🪄 @meyje/meyje-setup

> **MEYJE Setup CLI**: Produtividade e organização desde o primeiro comando. Automatiza a criação de projetos Next.js 14 com as melhores práticas do mercado.

[![npm version](https://badge.fury.io/js/@meyje-setup%2Fcli.svg)](https://badge.fury.io/js/@meyje-setup%2Fcli)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Node.js](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen.svg)](https://nodejs.org/)

## 🚀 Instalação

```bash
# Instalar globalmente (recomendado para uso frequente)
npm install -g @meyje/meyje-setup
# ou
pnpm add -g @meyje/meyje-setup

# Usar diretamente com npx (sempre versão mais recente)
npx @meyje/meyje-setup
```

## 🎯 O que o MEYJE Setup faz

- ✅ **Next.js 14** com App Router, TypeScript e TailwindCSS
- ✅ **ShadCN UI** com componentes prontos para uso
- ✅ **Supabase** (PostgreSQL + pgvector) para banco de dados
- ✅ **Drizzle ORM** com suporte multi-ambiente
- ✅ **LangChain.js** e AI SDK para funcionalidades de IA
- ✅ **Jest** e Testing Library para testes automatizados
- ✅ **Swagger** para documentação de APIs
- ✅ **Estrutura organizada** seguindo melhores práticas
- ✅ **Git** inicializado com primeiro commit
- ✅ **Arquivos de configuração** (.env.example, etc.)

## 📋 Pré-requisitos

### 1. Node.js (Versão 18 ou superior)
```bash
# Verificar se está instalado
node --version

# Se não estiver instalado, baixe em:
# https://nodejs.org/
```

### 2. pnpm (Gerenciador de Pacotes)
```bash
# Instalar pnpm globalmente
npm install -g pnpm

# Verificar se está instalado
pnpm --version
```

### 3. Git
```bash
# Verificar se está instalado
git --version

# Se não estiver instalado, baixe em:
# https://git-scm.com/
```

### 4. Docker Desktop (Opcional, mas recomendado)
```bash
# Verificar se está instalado
docker --version

# Se não estiver instalado, baixe em:
# https://www.docker.com/products/docker-desktop/
```

## 🛠️ Como usar

### 1. Executar o CLI
```bash
# Se instalado globalmente
meyje-setup

# Ou usar com npx (sempre versão mais recente)
npx @meyje/meyje-setup
```

### 2. Seguir as instruções interativas
O CLI irá fazer perguntas sobre as funcionalidades que você deseja incluir:

- **Nome do projeto**: Escolha um nome para seu projeto
- **UI Components**: ShadCN UI com todos os componentes
- **Banco de dados**: Supabase + Drizzle ORM
- **Inteligência Artificial**: LangChain.js + AI SDK
- **Testes**: Jest + Testing Library
- **Documentação**: Swagger para APIs
- **Git**: Inicializar repositório

### 3. Configurar as variáveis de ambiente
Após a criação, copie o arquivo `.env.example` para `.env.local` e configure suas chaves:

```bash
# Copie o arquivo de exemplo
cp .env.example .env.local
```

## 🔧 Troubleshooting

### Comando não reconhecido no Windows

Se você instalou o pacote globalmente mas o comando `meyje-setup` não é reconhecido:

#### Solução Automática (Recomendada)
Execute este script PowerShell como administrador:

```powershell
# Baixe e execute o script de configuração
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/meyje/meyje-setup/main/scripts/setup-windows.ps1" -OutFile "setup-windows.ps1"
.\setup-windows.ps1
```

#### Solução Manual
1. Verifique se o npm está no PATH:
```powershell
npm config get prefix
```

2. Adicione o diretório npm ao PATH do Windows:
   - Abra "Variáveis de Ambiente do Sistema"
   - Em "Variáveis do Usuário", edite "Path"
   - Adicione: `C:\Users\[SEU_USUARIO]\AppData\Roaming\npm`
   - Reinicie o terminal

#### Alternativa: Usar npx
```bash
npx @meyje/meyje-setup
```

# Edite o arquivo com suas chaves
# (Supabase, OpenAI, etc.)
```

## 🏗️ Estrutura do projeto criado

```
seu-projeto/
├── src/
│   ├── app/                 # App Router do Next.js
│   │   ├── api/            # API Routes
│   │   └── api-docs/       # Documentação Swagger
│   ├── components/
│   │   └── ui/             # Componentes ShadCN
│   ├── lib/
│   │   ├── db.ts           # Configuração do banco
│   │   ├── schema.ts       # Schema do Drizzle
│   │   └── utils.ts        # Utilitários
│   ├── hooks/              # Hooks customizados
│   ├── types/              # Tipos TypeScript
│   └── assets/             # Assets internos
├── public/
│   ├── images/             # Imagens públicas
│   ├── icons/              # Ícones públicos
│   └── sounds/             # Sons públicos
├── docs/                   # Documentação
├── drizzle/                # Migrações do banco
├── .env.example            # Variáveis de ambiente
├── drizzle.config.ts       # Configuração Drizzle
├── jest.config.js          # Configuração Jest
└── components.json         # Configuração ShadCN
```

## 🚀 Comandos úteis após a criação

```bash
# Entrar no diretório do projeto
cd seu-projeto

# Instalar dependências (se necessário)
pnpm install

# Iniciar servidor de desenvolvimento
pnpm dev

# Rodar testes
pnpm test

# Aplicar schema no banco de dados
pnpm db:push

# Abrir Drizzle Studio
pnpm db:studio

# Gerar documentação Swagger
pnpm docs:gen
```

## 🔧 Configuração do ambiente de desenvolvimento

### 1. Supabase Local (Recomendado)
```bash
# Inicializar Supabase (primeira vez)
pnpm dlx supabase init

# Iniciar containers do Supabase
pnpm dlx supabase start

# Aplicar schema no banco local
pnpm db:push
```

### 2. Acessar ferramentas de desenvolvimento
- **Aplicação**: http://localhost:3000
- **Supabase Studio**: http://localhost:54323
- **Documentação API**: http://localhost:3000/api-docs
- **Drizzle Studio**: `pnpm db:studio`

## 🎯 Ambientes suportados

O projeto criado suporta múltiplos ambientes:

- **Development**: Banco local (Docker)
- **Staging**: Banco remoto de testes
- **Production**: Banco de produção

Configure o ambiente alterando `APP_ENV` no arquivo `.env.local`.

## 🐛 Troubleshooting

### Erro: "command not found"
- Verifique se Node.js, pnpm e Git estão instalados
- Reinicie o terminal após instalar os softwares

### Erro: "permission denied"
- No Windows: Execute o PowerShell como administrador
- No Linux/Mac: Use `sudo` se necessário

### Erro: "Docker not running"
- Abra o Docker Desktop
- Aguarde os containers iniciarem

### Erro: "port already in use"
- Verifique se não há outros serviços rodando nas portas 3000, 54321, 54322, 54323
- Pare os serviços ou altere as portas

## 📚 Documentação adicional

Após criar o projeto, consulte:

- `docs/GUIA-DESENVOLVIMENTO.md` - Guia completo de desenvolvimento
- `.cursorrules` - Regras para IA assistente
- `README.md` do projeto criado - Documentação específica

## 🤝 Como contribuir

Contribuições são sempre bem-vindas! Se você tem ideias para novas funcionalidades, melhorias ou correções de bugs, sinta-se à vontade para abrir uma issue ou enviar um pull request.

Para diretrizes de desenvolvimento, consulte nosso [Guia de Desenvolvimento do CLI](./docs/CLI-DEVELOPMENT-GUIDE.md).

## 📄 Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

## 📦 Desenvolvimento local

```bash
# Clonar o repositório
git clone https://github.com/meyje/meyje-setup.git
cd meyje-setup

# Instalar dependências
pnpm install

# Executar em modo desenvolvimento
pnpm dev

# Executar testes
pnpm test
```

---

**🪄 Desenvolvido com magia e boas práticas para acelerar seu desenvolvimento!**