Guia de Instalação e Configuração
📋 Pré-requisitos
Antes de começar, certifique-se de ter as seguintes ferramentas instaladas:
Obrigatórios
- Node.js 18+ - Download
- npm ou yarn - Gerenciador de pacotes
- Git - Controle de versão
Recomendados
- VSCode - Editor de código
- Extensões úteis:
- ES7+ React/Redux/React-Native snippets
- Tailwind CSS IntelliSense
- TypeScript Importer
- Prettier - Code formatter
- ESLint
🚀 Instalação
Fluxo de Instalação
1. Clone o Repositório
git clone https://github.com/your-org/findup-digital-connect.git
cd findup-digital-connect
2. Instale as Dependências
# Com npm
npm install
# Com yarn
yarn install
# Com bun (alternativa)
bun install
3. Configuração das Variáveis de Ambiente
Crie um arquivo .env.local na raiz do projeto:
cp .env.example .env.local
Configure as seguintes variáveis:
# Supabase Configuration
VITE_SUPABASE_URL=https://uplwocvetbcbfzgntupx.supabase.co
VITE_SUPABASE_ANON_KEY=sua_chave_anonima_do_supabase
# Development
NODE_ENV=development
VITE_APP_ENV=development
4. Configuração do Supabase
Opção A: Usar Instância Existente
Se você tem acesso à instância de produção, use as credenciais fornecidas.
Opção B: Criar Nova Instância
- Acesse supabase.com
- Crie uma nova conta/projeto
- Configure o banco de dados PostgreSQL
- Execute as migrações (ver seção seguinte)
5. Execute as Migrações
# Instale a CLI do Supabase (se não tiver)
npm install -g @supabase/cli
# Login no Supabase
supabase login
# Execute as migrações
supabase db push
# Ou execute manualmente cada arquivo em ordem
# supabase/migrations/*.sql
6. Inicie o Servidor de Desenvolvimento
npm run dev
O aplicativo estará disponível em: http://localhost:5173
🗄️ Configuração do Banco de Dados
Schema Principal
O sistema utiliza PostgreSQL com as seguintes tabelas principais:
- auth.users - Usuários (Supabase Auth)
- profiles - Perfis estendidos
- user_roles - Roles dos usuários
- products - Catálogo de produtos
- customers - Base de clientes
- proposals - Propostas comerciais
- orders - Pedidos/vendas
- commissions - Comissões
- payment_calendar - Calendário de pagamentos
- audit_logs - Logs de auditoria
Dados Iniciais
Para popular o banco com dados de exemplo:
-- Inserir primeiro usuário admin
INSERT INTO auth.users (id, email) VALUES
('uuid-aqui', 'admin@findup.com');
-- Criar perfil
INSERT INTO profiles (user_id, full_name, email) VALUES
('uuid-aqui', 'Administrador', 'admin@findup.com');
-- Atribuir role admin
INSERT INTO user_roles (user_id, role) VALUES
('uuid-aqui', 'super_admin');
🔐 Configuração de Segurança
Row Level Security (RLS)
O sistema implementa RLS em todas as tabelas. As políticas são aplicadas automaticamente via migrações.
Políticas Principais
Usuários e Perfis
-- Usuários podem ver apenas seus próprios dados
CREATE POLICY "Users can view own profile"
ON profiles FOR SELECT
USING (auth.uid() = user_id);
Clientes
-- Técnicos veem apenas seus clientes
CREATE POLICY "Technicians view own customers"
ON customers FOR SELECT
USING (
technician_id IN (
SELECT id FROM profiles WHERE user_id = auth.uid()
) OR
EXISTS (
SELECT 1 FROM user_roles
WHERE user_id = auth.uid() AND role IN ('admin', 'super_admin')
)
);
Configuração de CORS
O Supabase já vem configurado com CORS apropriado. Para desenvolvimento local, não é necessária configuração adicional.
⚡ Edge Functions
Deploy das Funções
# Deploy de todas as funções
supabase functions deploy
# Deploy de função específica
supabase functions deploy approve-proposal
supabase functions deploy generate-proposal-pdf
supabase functions deploy send-proposal-email
supabase functions deploy admin-reset-password
Configuração de Secrets
# Configurar secrets para as Edge Functions
supabase secrets set RESEND_API_KEY=your_resend_key
supabase secrets set PDF_API_KEY=your_pdf_api_key
🎨 Configuração do Frontend
Tailwind CSS
O projeto já vem configurado com Tailwind CSS. Arquivo de configuração:
// tailwind.config.ts
export default {
content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"],
theme: {
extend: {
colors: {
border: "hsl(var(--border))",
input: "hsl(var(--input))",
ring: "hsl(var(--ring))",
background: "hsl(var(--background))",
foreground: "hsl(var(--foreground))",
// ... outras cores
},
},
},
plugins: [require("tailwindcss-animate")],
};
shadcn/ui
Os componentes do shadcn/ui já estão configurados. Para adicionar novos:
npx shadcn-ui@latest add button
npx shadcn-ui@latest add form
npx shadcn-ui@latest add dialog
🔧 Scripts Disponíveis
# Desenvolvimento
npm run dev # Inicia servidor de desenvolvimento
npm run build # Build para produção
npm run build:dev # Build para desenvolvimento
npm run preview # Preview do build
npm run lint # Executa ESLint
🌐 Configuração de Deploy
Vercel (Recomendado)
- Conecte seu repositório no Vercel
- Configure as variáveis de ambiente
- Deploy automático a cada push
Netlify
- Conecte repositório no Netlify
- Configure build settings:
- Build command:
npm run build - Publish directory:
dist
- Build command:
- Configure variáveis de ambiente
Docker
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "run", "preview"]
🧪 Configuração de Testes
Jest + Testing Library
# Instalar dependências de teste
npm install -D @testing-library/react @testing-library/jest-dom jest
# Executar testes
npm test
Cypress (E2E)
# Instalar Cypress
npm install -D cypress
# Executar testes E2E
npx cypress open
📊 Monitoramento
Logs do Supabase
Acesse os logs em:
- Dashboard do Supabase > Logs
- API Logs
- Database Logs
- Auth Logs
- Edge Function Logs
Performance
Para monitoramento de performance:
// src/lib/analytics.ts
export const trackEvent = (event: string, properties?: any) => {
if (process.env.NODE_ENV === "production") {
// Implementar analytics (Google Analytics, etc.)
}
};
🚨 Resolução de Problemas
Erro de CORS
# Verificar configuração do Supabase
# Adicionar domínio nos Allowed Origins
Erro de RLS
# Verificar se o usuário tem as permissões corretas
# Verificar se as políticas RLS estão aplicadas
Erro de Build
# Limpar cache
rm -rf node_modules
npm install
# Verificar TypeScript
npx tsc --noEmit
Variáveis de Ambiente
# Verificar se todas as variáveis estão definidas
echo $VITE_SUPABASE_URL
echo $VITE_SUPABASE_ANON_KEY
📝 Próximos Passos
Após a instalação:
- Primeiro Login - Configure seu primeiro usuário
- Explorar Interface - Familiarize-se com o sistema
- Configurar Perfil - Complete suas informações
🆘 Suporte
Em caso de problemas:
- Consulte o troubleshooting
- Consulte a FAQ
- Entre em contato com a equipe de desenvolvimento