Pular para o conteúdo
Mauricio Pereira BragaDesenvolvedor full stack
Trabalhos

Clips

Sistema web em que o bolsista registra as horas da bolsa, completa o mês automaticamente a partir da grade semanal e das atividades padrão e baixa o relatório mensal em PDF.

Papel
Concepção e desenvolvimento
Período
2025 – 2026
Tipo
Sistema web
Calendário do mês no Clips, com as horas lançadas em cada dia útil e o total de 84 horas cumprido

O problema

Todo mês o bolsista precisa entregar um relatório com as horas cumpridas, dia a dia, até atingir a carga horária da bolsa. Montar isso à mão em planilha toma tempo e é fácil errar a conta de dias úteis, feriados e meta mensal.

Requisitos

Funcionais

  • Cadastrar os dados da bolsa, a grade semanal com período de validade, as atividades padrão com prioridade e os feriados próprios.
  • Lançar as atividades de cada dia com horário de início e fim.
  • Completar o mês com a grade semanal e as atividades padrão, primeiro de manhã e depois à tarde.
  • Gerar o relatório mensal em PDF.
  • Convidar pessoas por e-mail, com link para criar a senha válido por 7 dias, e bloquear ou desbloquear o acesso.

Regras de negócio

  • A meta diária é a carga horária semanal dividida por 5, e a meta do mês é a meta diária vezes os dias úteis.
  • Dias úteis vão de segunda a sexta, exceto feriados nacionais e os cadastrados pelo bolsista.
  • O preenchimento automático nunca altera nem sobrepõe um lançamento manual.
  • A prioridade define quantas vezes cada atividade padrão é usada (alta 3, média 2, baixa 1).
  • O relatório lista apenas os dias úteis, e horas em fins de semana e feriados ficam fora do total.
  • Não existe cadastro aberto.

Minha contribuição

A primeira versão, de dezembro de 2025, foi feita em Next.js com Prisma e já resolvia o mês de um bolsista, mas não tinha convites nem administração de usuários. Em 2026 reescrevi a aplicação em Laravel com Inertia e Vue e cobri as regras com 68 testes em Pest e 15 em Vitest. O botão de completar o mês lança a grade semanal nos dias em que ela vale e preenche cada dia útil até a meta com as atividades padrão, em rodízio pela prioridade, sem nunca alterar um lançamento manual. A meta considera feriados nacionais e os cadastrados pelo bolsista, e o relatório em PDF lista apenas os dias úteis. O acesso é só por convite, com administração de usuários, e o deploy acontece pelo Laravel Forge depois que os testes passam no CI.

Destaques do projeto

  • 1 cliquepara completar o mês
  • PDFrelatório mensal pronto para entregar
  • Por conviteacesso controlado por administradores

Tecnologias

Laravel 13, Inertia 3, Vue 3, TypeScript, PrimeVue 5, Tailwind CSS v4, PostgreSQL, Pest

Modelo de dados

Cada bolsista tem seus lançamentos, sua grade semanal, suas atividades padrão e seus feriados, e o convite fica separado da conta até a senha ser criada.
Cada bolsista tem seus lançamentos, sua grade semanal, suas atividades padrão e seus feriados, e o convite fica separado da conta até a senha ser criada.

Telas do sistema

As atividades padrão preenchem os dias úteis em rodízio. A prioridade alta entra três vezes, a média duas e a baixa uma.
As atividades padrão preenchem os dias úteis em rodízio. A prioridade alta entra três vezes, a média duas e a baixa uma.