Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Meteora Backend

Backend do projeto Meteora desenvolvido com NestJS, GraphQL e Node.js 20.

🚀 Ambiente de Desenvolvimento

Este projeto utiliza nix-shell para garantir um ambiente de desenvolvimento consistente e reproduzível.

Pré-requisitos

  • NixOS ou Nix instalado no sistema
  • Opcional: direnv para carregamento automático do ambiente

Como usar

Opção 1: Usando nix-shell manualmente

# Entrar no ambiente nix-shell
nix-shell

# O ambiente será carregado com todas as ferramentas necessárias

Opção 2: Usando direnv (recomendado)

Se você tem direnv instalado, o ambiente será carregado automaticamente:

# Instalar direnv (se não tiver)
nix-env -iA nixpkgs.direnv

# Configurar direnv no seu shell (fish)
echo 'eval "$(direnv hook fish)"' >> ~/.config/fish/config.fish
source ~/.config/fish/config.fish

# Agora o ambiente será carregado automaticamente ao entrar no diretório
cd meteora

📦 Ferramentas Disponíveis

O ambiente nix-shell inclui:

  • Node.js 20 - Runtime JavaScript
  • NPM - Gerenciador de pacotes
  • Yarn - Gerenciador de pacotes alternativo
  • TypeScript - Compilador TypeScript
  • NestJS CLI - Ferramentas de linha de comando do NestJS
  • Git - Controle de versão
  • Vim - Editor de texto
  • Curl/Wget - Ferramentas de rede
  • Netcat/Lsof - Ferramentas de debugging de rede
  • Prettier/ESLint - Ferramentas de formatação e linting

🛠️ Comandos Úteis

# Instalar dependências
npm install

# Iniciar em modo desenvolvimento
npm run start:dev

# Build do projeto
npm run build

# Executar testes
npm test

# Gerar componentes NestJS
nest generate controller users
nest generate service users
nest generate module users

# Gerar componentes GraphQL
nest generate resolver users
nest generate resolver products

# Prisma (com configurações específicas para NixOS)
./scripts/setup-prisma.sh # Configurar Prisma para NixOS
npx prisma generate       # Gerar cliente Prisma
npx prisma db push        # Sincronizar schema com banco

🌐 GraphQL

O projeto está configurado com GraphQL usando Apollo Server.

  • GraphQL Playground: http://localhost:3000/graphql
  • Queries disponíveis:
    • sayHello: Retorna uma mensagem de saudação
    • getCategories: Retorna lista de categorias

📁 Estrutura do Projeto

meteora/
├── shell.nix          # Configuração do ambiente nix-shell
├── .envrc             # Configuração do direnv
├── package.json       # Dependências e scripts do projeto
├── tsconfig.json      # Configuração do TypeScript
├── src/
│   ├── app.module.ts  # Módulo principal com configuração GraphQL
│   ├── main.ts        # Arquivo de entrada da aplicação
│   └── category/
│       ├── category.module.ts
│       └── category.resolver.ts
└── README.md          # Este arquivo

🔧 Dependências Principais

  • @nestjs/common: ^11.0.0
  • @nestjs/core: ^11.0.0
  • @nestjs/platform-express: ^11.0.0
  • @nestjs/graphql: ^13.1.0
  • @nestjs/apollo: ^13.1.0
  • @apollo/server: ^4.12.2
  • graphql: ^16.11.0

🎯 Próximos Passos

  1. Entre no ambiente nix-shell: nix-shell
  2. Instale as dependências: npm install
  3. Inicie o servidor: npm run start:dev
  4. Acesse o GraphQL Playground: http://localhost:3000/graphql
  5. Comece a desenvolver seus resolvers e tipos GraphQL

💡 Dicas

  • O ambiente nix-shell garante que todos os desenvolvedores tenham exatamente as mesmas versões das ferramentas
  • Use direnv para carregamento automático do ambiente
  • O shellHook no shell.nix mostra informações úteis quando o ambiente é carregado
  • Todas as ferramentas estão isoladas do sistema, não afetando outras instalações
  • Para parar o servidor, use Ctrl+C ou pkill -f "npm run start:dev"

🐛 Troubleshooting

Erro de porta em uso:

# Encontrar processo usando a porta 3000
lsof -ti:3000

# Parar o processo
kill <PID>

# Ou parar todos os processos npm
pkill -f "npm run start:dev"

Erro de dependências:

# Limpar e reinstalar
rm -rf node_modules package-lock.json
npm install

Erro do Prisma no NixOS:

# Solução completa para o erro 404 do Prisma no NixOS:
./scripts/setup-prisma.sh

# Este script:
# 1. Configura as variáveis de ambiente corretas
# 2. Cria a estrutura do Prisma se não existir
# 3. Gera o cliente Prisma com binários compatíveis
# 4. Resolve automaticamente o problema de binários

# Alternativa manual:
export PRISMA_CLI_BINARY_TARGETS="linux-musl"
export PRISMA_CACHE_DIR="~/.cache/prisma"
npx prisma init
npx prisma generate

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages