Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
Conectamos empresas a estagiários qualificados com agilidade e conformidade legal. Gestão completa: triagem inteligente, contratos digitais e acompanhamento em tempo real.
Translation pending
BusinessGitHub @vinny29lpOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Sistema completo de gestão de estágios com banco de dados real, autenticação, permissões por perfil e geração de documentos.
⚠️ Esta é a versão de homologação/backend — separada do protótipo navegável anterior.
# Clone ou extraia o projeto
cd smarter-v2-backend
# Instale as dependências
npm install
.envCrie o arquivo .env na raiz do projeto:
# ── BANCO DE DADOS (Supabase) ─────────────────────────────────
# Acesse: Supabase Dashboard > Settings > Database > URI
DATABASE_URL="postgresql://postgres:[SUA_SENHA]@db.[SEU_PROJETO].supabase.co:5432/postgres"
# ── NEXTAUTH ──────────────────────────────────────────────────
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="coloque-aqui-uma-string-aleatoria-de-32-caracteres-minimo"
# ── SUPABASE (para storage de arquivos) ───────────────────────
NEXT_PUBLIC_SUPABASE_URL="https://[SEU_PROJETO].supabase.co"
NEXT_PUBLIC_SUPABASE_ANON_KEY="[sua-anon-key]"
SUPABASE_SERVICE_ROLE_KEY="[sua-service-role-key]"
# ── SMTP (HostGator) ──────────────────────────────────────────
SMTP_HOST="mail.seudominio.com.br"
SMTP_PORT="587"
SMTP_USER="[email protected]"
SMTP_PASS="sua-senha-email"
SMTP_FROM="Smarter Estágios <[email protected]>"
# ── AUTHENTIQUE (assinatura digital) ─────────────────────────
AUTHENTIQUE_API_TOKEN=""
AUTHENTIQUE_WEBHOOK_SECRET=""
# ── APP ───────────────────────────────────────────────────────
NEXT_PUBLIC_APP_URL="http://localhost:3000"
DATABASE_URLURL → NEXT_PUBLIC_SUPABASE_URLanon public → NEXT_PUBLIC_SUPABASE_ANON_KEYservice_role → SUPABASE_SERVICE_ROLE_KEY# No terminal (Linux/Mac):
openssl rand -base64 32
# Ou use o site: https://generate-secret.vercel.app/32
npx prisma migrate dev --name init
Isso vai criar todas as 20 tabelas no banco Supabase automaticamente.
Se preferir usar
db pushsem migrations:npx prisma db push
npm run db:seed
Isso vai criar:
npm run dev
Acesse: http://localhost:3000
npm run build
npm start
.envnpm install -g vercel
vercel login
vercel --prod
npm run build.nextnpm install⚠️ Após o primeiro deploy, rode o seed via Vercel CLI ou diretamente no Supabase SQL Editor.
Após rodar o seed, use estes acessos:
| Perfil | Senha | Acesso | |
|---|---|---|---|
| Franqueadora | [email protected] | smarter123 | Visão completa da rede |
| Franqueado | [email protected] | franq123 | Apenas dados da unidade SP |
| Empresa | [email protected] | empresa123 | Apenas TechCorp Brasil |
| Estudante | [email protected] | estud123 | Apenas dados da Ana Lima |
franchiseId)companyId)studentId)internship_documents.htmlContent)html2pdf ou Puppeteer via API route)POST /documents com o HTML do documentoauthDocId, signedUrl, signedAt salvos no banco/dashboard/empresas/nova)saveDiscResult()/avaliacao/[token])evaluations.respostas)Tabelas criadas pelo Prisma:
users — Todos os usuários do sistema
franchises — Unidades franqueadas
companies — Empresas parceiras
institutions — Instituições de ensino
students — Estagiários (perfil completo)
vacancies — Vagas de estágio
applications — Candidaturas a vagas
contracts — Contratos de estágio
internship_documents — 11 documentos por contrato
evaluations — Avaliações semestrais
crm_leads — Pipeline CRM
crm_tasks — Tarefas do CRM
financials — Lançamentos financeiros
disc_tests — Testes DISC realizados
gamification_points — Pontuação da gamificação
activity_logs — Log de todas as ações
notifications — Notificações dos usuários
uploaded_files — Arquivos enviados
npm run dev # Desenvolvimento local
npm run build # Build de produção
npm run db:generate # Gerar Prisma Client após mudar schema
npm run db:migrate # Rodar migrations
npm run db:push # Enviar schema sem migration (dev rápido)
npm run db:seed # Popular banco com dados de teste
npm run db:studio # Abrir Prisma Studio (interface visual do banco)
npm run db:reset # Resetar banco e rodar seed novamente
smarter-v2-backend/
├── app/
│ ├── layout.tsx # Layout raiz com SessionProvider
│ ├── page.tsx # Redireciona para /login ou /dashboard
│ ├── providers.tsx # NextAuth SessionProvider
│ ├── login/
│ │ └── page.tsx # Tela de login com acesso rápido para testes
│ ├── dashboard/
│ │ ├── layout.tsx # Layout com sidebar (protegido por sessão)
│ │ ├── page.tsx # Dashboard com KPIs reais do banco
│ │ ├── empresas/
│ │ ├── estudantes/
│ │ ├── contratos/
│ │ ├── crm/
│ │ ├── financeiro/
│ │ └── ... (outros módulos)
│ └── api/
│ └── auth/[...nextauth]/ # API route do NextAuth
├── components/
│ ├── layout/
│ │ └── Sidebar.tsx # Sidebar dinâmica por perfil
│ └── ui/
│ ├── Button.tsx
│ ├── Card.tsx
│ ├── Badge.tsx
│ ├── Input.tsx
│ └── Modal.tsx
├── lib/
│ ├── prisma.ts # Singleton do Prisma Client
│ ├── auth.ts # Configuração do NextAuth
│ └── actions/
│ ├── auth.ts # Server Actions de autenticação
│ ├── companies.ts # CRUD de empresas
│ ├── students.ts # CRUD de estudantes
│ ├── contracts.ts # CRUD de contratos
│ ├── crm.ts # CRUD do CRM
│ └── financial.ts # CRUD financeiro
├── prisma/
│ ├── schema.prisma # Schema completo do banco
│ └── seed.ts # Seed com dados de teste
├── types/
│ └── next-auth.d.ts # Tipos estendidos do NextAuth
├── middleware.ts # Proteção de rotas por perfil
├── .env # Variáveis de ambiente (não commitar!)
├── .env.example # Template das variáveis
└── README.md # Este arquivo
NEXTAUTH_SECRETfranchiseId / companyId / studentId em todas as queriesDesenvolvido para Smarter Estágios.
Em caso de dúvidas técnicas, entre em contato com a equipe de desenvolvimento.