Run the application :
bin/dev
Future improvements :
Task expiration :
- move task expiration to a state machine, with callbacks on state transition
- scheduled cron job with solid queue
- broadcast removal when task is expired
- pundit and policies to allow/prevent action if a task is expired
Task to task relationship : Not implemented
- add migration for parent_id
- fetching all_descendant_tasks can be optimized using SQL recursive query instead of active record for performance
- if there is a maximum deepness level on the task-to-task relationship, a Single Table Inheritance can also be implemented, with class : Task, Subtask, ... with different validations on the models
UI, Turbo, interface :
- stimulus controller for highlighting the project that has been selected
- stimulus controller that close all the other inline edit forms if edit is clicked
- "sub-tasks" with a parent task can be displayed dynamically with turbo and have another column on the right, or be displayed inline the task cards
Performance, optimization :
- add indexes for database
- pagination for tasks