Summary
Currently, tasks in DailyForge are static library entries that users manually drag onto each day of the weekly grid. There is no concept of recurrence — a task like "Morning Run" cannot be set to automatically populate every Monday, Wednesday, and Friday without the user dragging it manually each time. This creates unnecessary friction for building consistent habits.
Problem
- The Task model (
Task.model.js) does not contain any recurrence field (frequency, repeatDays, etc.).
- Users building consistent weekly routines must manually re-place the same tasks every week, defeating the purpose of a "routine" builder.
- The Routine Templates feature partially addresses this, but templates require manual re-application and do not auto-populate on a schedule.
- There is no mechanism for the backend to generate routine slots for a new week based on recurring preferences.
Impact
- Users who rely on DailyForge for weekly habit-building face repetitive manual work.
- The value proposition of "design and visualize your weekly routines" is diminished when routines must be reconstructed each week.
- Competing productivity tools (e.g., TickTick, Habitica) offer recurrence as a core feature.
Proposed Solution
I would like to implement a task recurrence system with the following scope:
Backend (Task.model.js):
Add a recurrence field to the Task schema:
recurrence: {
type: {
type: String,
enum: ['none', 'daily', 'weekly', 'custom'],
default: 'none',
},
days: {
type: [Number], // 0=Sun, 1=Mon, ..., 6=Sat
default: [],
},
}
Backend (routineController.js):
Add logic to auto-populate routine slots at the start of a new week based on tasks where recurrence.type !== 'none' for the authenticated user.
Frontend (Task Creation Modal):
Add a "Repeat" section in the task creation/edit form with toggles for each day of the week — only visible when "Weekly" or "Custom" frequency is selected.
Frontend (Routine Builder):
Display a visual indicator (e.g., a small repeat icon) on tasks that are auto-populated from recurrence rules, distinguishing them from manually placed tasks.
Additional Notes
- I will update the
PUT /api/tasks/:id endpoint to accept and persist the recurrence object.
- Auto-populated slots will be generated lazily (on the weekly grid load) rather than via a background cron job, keeping the implementation simple and dependency-free.
- I will ensure backward compatibility — existing tasks without a
recurrence field default to 'none'.
Could you assign this to me? I am happy to discuss the schema design further before implementation.
Summary
Currently, tasks in DailyForge are static library entries that users manually drag onto each day of the weekly grid. There is no concept of recurrence — a task like "Morning Run" cannot be set to automatically populate every Monday, Wednesday, and Friday without the user dragging it manually each time. This creates unnecessary friction for building consistent habits.
Problem
Task.model.js) does not contain any recurrence field (frequency,repeatDays, etc.).Impact
Proposed Solution
I would like to implement a task recurrence system with the following scope:
Backend (
Task.model.js):Add a
recurrencefield to the Task schema:Backend (
routineController.js):Add logic to auto-populate routine slots at the start of a new week based on tasks where
recurrence.type !== 'none'for the authenticated user.Frontend (Task Creation Modal):
Add a "Repeat" section in the task creation/edit form with toggles for each day of the week — only visible when "Weekly" or "Custom" frequency is selected.
Frontend (Routine Builder):
Display a visual indicator (e.g., a small repeat icon) on tasks that are auto-populated from recurrence rules, distinguishing them from manually placed tasks.
Additional Notes
PUT /api/tasks/:idendpoint to accept and persist therecurrenceobject.recurrencefield default to'none'.Could you assign this to me? I am happy to discuss the schema design further before implementation.