Synaplan
기업을 위한 오픈소스 AI 플랫폼
기업과 우수 인턴을 빠르고 법적으로 연결합니다. 스마트 선별·디지털 계약·실시간 관리 제공
Conectamos empresas a estagiários qualificados com agilidade e conformidade legal. Gestão completa: triagem inteligente, contratos digitais e acompanhamento em tempo real.
비즈니스GitHub @vinny29lp온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
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.