Pular para o conteúdo
Todos os projetos
Logo do Meus Compromissos

Meus Compromissos

Aplicação web de planejamento semanal com horas disponíveis, tarefas por categoria, acompanhamento de progresso e renovação automática do ciclo.

Ano
2024
Tipo
Open Source
Situação
Em produção
Código
Aberto

Tecnologias

  • Ruby on Rails
  • Ruby
  • PostgreSQL
  • Sidekiq
  • Tailwind CSS
  • Stimulus
Imagem do projeto Meus Compromissos

Sobre o projeto

O Meus Compromissos é uma aplicação web de código aberto para planejar a semana com base no tempo disponível. Cada tarefa recebe uma quantidade de horas, e o painel mostra quanto da capacidade semanal já foi comprometido.

Problema

Uma lista de tarefas mostra o que precisa ser feito, mas nem sempre evidencia se há tempo para cumprir tudo. Sem relacionar atividades e horas disponíveis, fica mais difícil distribuir os compromissos ao longo da semana.

Solução

O usuário define sua disponibilidade semanal e cadastra tarefas com categoria e horas alocadas. O painel apresenta horas livres, progresso e tarefas em andamento, concluídas ou arquivadas. Os gráficos complementam essa visão com a distribuição por categoria.

Minha atuação

Desenvolvi o projeto integralmente, incluindo a modelagem de dados, as regras do ciclo semanal, as tarefas agendadas, as notificações, os testes e a interface. O código está disponível no GitHub.

Principais funcionalidades

  • Definição de horas disponíveis por semana
  • Tarefas com tempo alocado, categoria e status
  • Indicadores de horas livres e progresso
  • Gráficos por categoria
  • Notificações no navegador
  • Consulta do tempo restante no ciclo semanal

Arquitetura e decisões técnicas

A aplicação utiliza Ruby on Rails e PostgreSQL, com Tailwind CSS, Stimulus e Turbo na interface.

Uma tarefa do Sidekiq, agendada com sidekiq-scheduler para executar duas vezes por dia, verifica os ciclos semanais. Quando um ciclo completa sete dias, a tarefa o encerra, cria o seguinte e transfere as atividades não concluídas. Essas operações ocorrem em uma transação no banco para manter os registros consistentes.

As notificações utilizam Web Push, com tratamento de inscrições expiradas ou inválidas. O PaperTrail mantém o histórico das tarefas, o Devise cuida da autenticação e o Rails ERD documenta o modelo de dados em um diagrama.

A validação do projeto inclui testes de sistema com Capybara e análise de segurança com Brakeman.

Resultado

Aplicação publicada, com código aberto no GitHub.

Tecnologias

Ruby on Rails, Ruby, PostgreSQL, Sidekiq, Tailwind CSS, Stimulus, Devise, PaperTrail e Web Push.