Sistema de Gestão Documental para Licitações
Obs: até a presente data esse sistema é apenas uma demonstração, tendo em vista que ainda não tenho planos de comercializar planos. Entre em contato comigo se gostaria de implantá-lo e precisa de suporte
Obs2: Ainda há funcionalidades inacabadas, trabalharei nelas em meu tempo livre.
O LicitaDoc é um sistema para gerenciar documentos de licitações, garantindo que empresas mantenham certidões, comprovantes e declarações atualizados, organizados e acessíveis.
- Centralizar documentos em um repositório seguro.
- Automatizar alertas de validade e renovação.
- Facilitar a montagem de pastas para editais.
- Integrar com APIs de órgãos emissores para validação de autenticidade.
- Frontend: Next.js (React, Tailwind CSS, React Hook Form, TanStack Table, React Flow, Archiver).
- Backend: Next.js API Routes.
- Banco de Dados: PostgreSQL.
- Automação: node-cron, Nodemailer.
- Storage: AWS S3.
- Autenticação: Clerk.
- Cadastro de Empresas: Registro de empresas clientes e configuração de planos.
- Gerenciamento de Documentos: Upload, metadados e controle de validade.
- Alertas Automáticos: Notificações por e-mail/Slack para documentos próximos do vencimento.
- Montagem de Pastas: Seleção automática de documentos com base nos requisitos do edital.
- Relatórios: Exportação de dados para CSV/PDF.
- Geração de Pasta Zip: Download de documentos selecionados em formato ZIP.
-
Cadastro de Documentos:
- Upload de arquivos (PDF/JPG) com metadados.
- Armazenamento no S3 e registro no PostgreSQL.
-
Alertas de Validade:
- Script diário (node-cron) verifica data_validade.
- Envia notificações se a validade estiver a 30 dias ou menos.
-
Montagem de Pasta para Licitação:
- Usuário seleciona um edital.
- Sistema lista documentos exigidos e gera um ZIP.
- Abstract data tables
- Use Prisma types instead of manually created types when possible (server side)
- Write documentation
- Abstract document upload
- Extract document information for autofilling
- Not found errors for details pages
- Do not use direct S3 links (pre-signed urls, e.g @aws-sdk/s3-request-presigner)
- Users shouldn't have access to other companies' documents
- Write tests (vitest)
- getAll[Something] actions should follow the pattern:
export async function getAllSomething(): Promise<
| {
success: boolen;
data: Something[];
}
| { success: boolen; message: string }
> {}