Skip to content

S4r4h-O/licitdoc

Repository files navigation

LicitaDoc

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.


Visão Geral

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.

Objetivos

  • 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.

Stack Tecnológica

  • 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.

Funcionalidades Principais

  • 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.

Fluxos de Trabalho

  1. Cadastro de Documentos:

    • Upload de arquivos (PDF/JPG) com metadados.
    • Armazenamento no S3 e registro no PostgreSQL.
  2. Alertas de Validade:

    • Script diário (node-cron) verifica data_validade.
    • Envia notificações se a validade estiver a 30 dias ou menos.
  3. Montagem de Pasta para Licitação:

    • Usuário seleciona um edital.
    • Sistema lista documentos exigidos e gera um ZIP.

TODOS

  • 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 }
> {}

About

Sistema de gestão documental para licitações

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages