Saltar para o conteúdo
BigTree108

Caso de estudo: o portal de gestão da empresa

Uma nova empresa em 2025 precisava de contratação, onboarding, contratos, registo de horas, férias, faturação e contabilidade desde o primeiro dia, com um orçamento que excluía a compra de sete produtos. Construímos uma única plataforma para tudo isso, e gerimos a empresa nela.

O problema

As ferramentas de RH, de registo de horas e de faturação disponíveis no mercado teriam custado cada uma, por mês, mais do que todo o orçamento, e nenhuma delas compreendia a legislação ucraniana sobre prestadores, a assinatura eletrónica através de um banco local nem a forma como as horas passam de um registo de tempo para uma fatura de cliente. A alternativa eram folhas de cálculo, que deixam de funcionar na semana em que alguém está de férias.

Decidiu-se construir a plataforma na stack que vendemos, tratá-la como um produto real com as mesmas regras de engenharia que aplicamos ao trabalho dos clientes e deixar que seja a referência sobre a qual os nossos clientes podem perguntar.

O que faz

  • Contratação

    Vagas publicadas em plataformas de emprego, triagem de candidatos através de um bot do Telegram com uma biblioteca de perguntas, entrevistas técnicas e externas com marcação, acompanhamento do período experimental.

  • Onboarding

    Um fluxo orientado que recolhe documentos de identificação, os verifica com serviços de IA na cloud, confirma a grafia do nome, reúne contactos e equipamento e abre contas através do fornecedor de identidade.

  • Contratos e documentos

    Contratos de prestação de serviços e NDA gerados em PDF a partir de modelos, enviados para assinatura eletrónica e guardados como registo assinado. Os contratos com clientes e as statements of work seguem o mesmo percurso.

  • Tempo e férias

    Horas por atribuição de projeto, sincronizadas a partir de registos de tempo externos, editáveis pelo especialista; férias e baixa por doença com limites e aprovações por contrato.

  • Remuneração e faturação

    Faturas mensais de especialistas e faturas de clientes produzidas a partir das mesmas horas registadas, taxas de câmbio do banco central, pagamentos pontuais refaturados, um arquivo de faturas assinadas.

  • Contabilidade e conformidade

    Lembretes de declarações fiscais e de pagamentos, importação de extratos bancários, contactos de emergência e um modelo de permissões com segurança ao nível da linha e pedidos de elevação de privilégios para dados financeiros.

  • Notificações

    Cartões de chat e de mensagens para cada evento sobre o qual uma pessoa precisa de agir, com a regra de que nenhuma mensagem leva valores financeiros; estes ficam atrás do início de sessão.

Como é construída

  • Backend

    .NET 10 em Azure Functions, vertical slices com CQRS através de um mediator gerado por source generator, validação em cada fronteira, EF Core com migrações versionadas.

  • Dados

    Azure SQL com segurança ao nível da linha por cliente e colunas Always Encrypted para dados pessoais e financeiros, com as chaves guardadas num cofre gerido.

  • Frontend

    Angular com componentes standalone, signals e deteção de alterações sem zone.js, um design system em Tailwind e um cliente de API gerado a partir do documento OpenAPI.

  • Entregas

    GitHub Actions com credenciais federadas, Terraform para todo o ambiente, alterações à base de dados entregues como migrações no pipeline, CodeQL e análise de dependências.

Regras que a moldaram

  • Prioridades numa ordem fixa: custo, depois segurança, depois modernidade, depois desempenho, depois alinhamento com a conformidade. Cada conflito é resolvido pela prioridade mais alta.
  • O fornecedor de identidade é a fonte de verdade dos dados das pessoas; a base de dados é uma cache desses dados e o único local para salários, dados de contratação e permissões.
  • Os dados sensíveis nunca chegam a uma coluna simples, nem sequer por um instante. A encriptação é declarada em mais do que um local e validada no arranque.
  • Cada correção de bug traz um teste para a sua classe, colocado na camada de aplicação mais abrangente que a consiga ver, muitas vezes um teste de arquitetura e não um teste unitário.
  • O chat é uma superfície de apresentação não fiável. As notificações indicam o evento e ligam à página protegida por autenticação; os montantes e as tarifas nunca saem do produto.

Porque isto lhe interessa

Não estamos a descrever uma demonstração. Esta plataforma gere uma empresa real todos os dias, o que significa que convivemos o tempo suficiente com as nossas próprias decisões de arquitetura, as nossas próprias migrações e os nossos próprios alertas para saber quais estavam certos. É esse o mesmo discernimento que trazemos para o produto da sua empresa.

Quer algo semelhante para a sua empresa?

Descreva os processos que hoje gere em folhas de cálculo. Recebe um plano escrito, uma proposta de arquitetura e uma estimativa no prazo de um dia útil.