Getting Started
- Fork the repository: https://github.com/JointSave-org/Joint_Save
- Clone your fork:
git clone https://github.com/<your-username>/Joint_Save.git
cd Joint_Save
- Create a new branch:
git checkout -b feat/pool-deposit-calendar
Overview
Rotational pool members currently have no way to see their upcoming deposit obligations at a glance across all their pools. The only way to know when a deposit is due is to open each pool's detail page individually and check the round deadline. This becomes especially painful for users in multiple rotational pools — they must manually track when each pool's next round starts and when their deposit is due.
This issue adds a calendar view to the dashboard that shows all upcoming deposit obligations across pools, with the ability to export individual events to iCal/Google Calendar.
Requirements
New Component: DepositCalendar
- Add a new section or tab within the "My Groups" dashboard tab (or a standalone view toggle)
- Monthly calendar view showing deposit deadlines as events
- Each event shows: pool name, deposit amount, pool type badge, and time remaining
- Color coding: green (>7 days away), yellow (2-7 days), red (<2 days or overdue)
- Clicking an event opens the pool detail page directly
Data Source
- For each rotational pool the user is a member of, compute the next deposit deadline from the on-chain
next_payout_time field
- Cross-reference with the
has_deposited map to show which deposits are already completed (marked with a checkmark) vs pending
- Cache computed deadlines alongside the existing pool data in
PoolDataProvider to avoid redundant RPC calls
iCal Export
- Add an "Export to Calendar" button per pool and a "Export All" button
- Generate a valid
.ics file containing VEVENT entries for each upcoming deposit deadline
- Each event should include:
- Summary: "Deposit due: [pool name]"
- Description: "Deposit [amount] [token] to [pool name]. Pool contract: [address]"
- Start time: the deadline timestamp
- Duration: 1 hour (all-day event if no specific time)
- URL: link to the pool detail page
- Use the
ical-generator library (check if already a dependency, otherwise install it)
Mobile Responsiveness
- On mobile (< 768px), switch from monthly grid to a list/timeline view of upcoming deposits sorted by deadline
- Swipeable or scrollable list with pool name, amount, and deadline
Empty State
- When the user has no rotational pools, show a friendly empty state: "You don't have any rotational pools yet. Create or join one to see your deposit schedule here."
Acceptance Criteria
Getting Started
Overview
Rotational pool members currently have no way to see their upcoming deposit obligations at a glance across all their pools. The only way to know when a deposit is due is to open each pool's detail page individually and check the round deadline. This becomes especially painful for users in multiple rotational pools — they must manually track when each pool's next round starts and when their deposit is due.
This issue adds a calendar view to the dashboard that shows all upcoming deposit obligations across pools, with the ability to export individual events to iCal/Google Calendar.
Requirements
New Component:
DepositCalendarData Source
next_payout_timefieldhas_depositedmap to show which deposits are already completed (marked with a checkmark) vs pendingPoolDataProviderto avoid redundant RPC callsiCal Export
.icsfile containing VEVENT entries for each upcoming deposit deadlineical-generatorlibrary (check if already a dependency, otherwise install it)Mobile Responsiveness
Empty State
Acceptance Criteria