Skip to content
All projects
Meus Compromissos logo

Meus Compromissos

Weekly planning web app with available hours, categorized tasks, progress tracking and automatic weekly rollover.

Year
2024
Type
Open Source
Status
In production
Source code
Open

Stack

  • Ruby on Rails
  • Ruby
  • PostgreSQL
  • Sidekiq
  • Tailwind CSS
  • Stimulus
Meus Compromissos project screenshot

About the project

Meus Compromissos is an open-source web app for planning the week around available time. Each task is assigned a number of hours, and the dashboard shows how much of the weekly capacity is already allocated.

Problem

A task list shows what needs to be done but does not always show whether there is enough time to do it. Without connecting activities to available hours, commitments are harder to distribute throughout the week.

Solution

Users set their weekly availability and add tasks with a category and allocated hours. The dashboard shows remaining hours, progress, and active, completed or archived tasks. Charts provide a breakdown by category.

My role

I built the entire project, including data modeling, weekly cycle rules, scheduled jobs, notifications, tests and the interface. The source code is available on GitHub.

Key features

  • Weekly availability settings
  • Tasks with allocated time, category and status
  • Remaining-hours and progress indicators
  • Charts by category
  • Browser notifications
  • Time remaining in the weekly cycle

Architecture and technical decisions

The application uses Ruby on Rails and PostgreSQL, with Tailwind CSS, Stimulus and Turbo for the interface.

A Sidekiq job, scheduled with sidekiq-scheduler to run twice a day, checks weekly cycles. When a cycle reaches seven days, the job closes it, creates the next one and carries over unfinished tasks. These operations run in a database transaction to keep records consistent.

Notifications use Web Push, with handling for expired or invalid subscriptions. PaperTrail maintains task history, Devise handles authentication, and Rails ERD documents the data model as a diagram.

Project validation includes system tests with Capybara and security analysis with Brakeman.

Outcome

Deployed, with source code available on GitHub.

Technologies

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