mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-05-05 20:56:13 -05:00
Specify /my-calendar epic
This commit is contained in:
parent
4ea7b43c7c
commit
5a4612a101
42
.beans/sendou.ink-0q9m--my-calendar-page-and-components.md
Normal file
42
.beans/sendou.ink-0q9m--my-calendar-page-and-components.md
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
---
|
||||
# sendou.ink-0q9m
|
||||
title: My calendar page and components
|
||||
status: todo
|
||||
type: task
|
||||
created_at: 2026-01-11T11:45:35Z
|
||||
updated_at: 2026-01-11T11:45:35Z
|
||||
parent: sendou.ink-om3i
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
Build the `/my-calendar` page with list view and event card components.
|
||||
|
||||
## Details
|
||||
|
||||
**Page requirements:**
|
||||
- Route: `/my-calendar`
|
||||
- Login required (redirect if not authenticated)
|
||||
- List view grouped by day (chronological)
|
||||
- Empty state with links to /calendar and /scrims
|
||||
|
||||
**Event card info:**
|
||||
- Name (tournament name or scrim opponent)
|
||||
- Time
|
||||
- Status
|
||||
- Check-in window (for tournaments)
|
||||
- Click navigates directly to tournament/scrim page
|
||||
|
||||
**Component sharing:**
|
||||
- Build components that can be reused by sidebar My Calendar section
|
||||
- Handle both tournament and scrim event types
|
||||
|
||||
## Checklist
|
||||
|
||||
- [ ] Add route to routes.ts
|
||||
- [ ] Create page component with loader
|
||||
- [ ] Create event list component (grouped by day)
|
||||
- [ ] Create event card component (handles tournament + scrim)
|
||||
- [ ] Implement empty state with links
|
||||
- [ ] Add translations
|
||||
- [ ] Style with CSS modules
|
||||
|
|
@ -3,8 +3,11 @@
|
|||
title: Show times on mobile My Calendar panel
|
||||
status: todo
|
||||
type: task
|
||||
priority: normal
|
||||
tags:
|
||||
- my-calendar-epic
|
||||
created_at: 2026-01-11T09:48:18Z
|
||||
updated_at: 2026-01-11T09:48:18Z
|
||||
updated_at: 2026-01-11T11:45:42Z
|
||||
parent: sendou.ink-6eko
|
||||
---
|
||||
|
||||
|
|
|
|||
42
.beans/sendou.ink-d6vh--my-calendar-data-layer.md
Normal file
42
.beans/sendou.ink-d6vh--my-calendar-data-layer.md
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
---
|
||||
# sendou.ink-d6vh
|
||||
title: My calendar data layer
|
||||
status: todo
|
||||
type: task
|
||||
created_at: 2026-01-11T11:45:35Z
|
||||
updated_at: 2026-01-11T11:45:35Z
|
||||
parent: sendou.ink-om3i
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
Create the data fetching layer for the My Calendar page that combines tournaments and scrims into a unified event list.
|
||||
|
||||
## Details
|
||||
|
||||
**Data sources to combine:**
|
||||
- Tournaments user is registered for
|
||||
- Tournaments user is organizing
|
||||
- Scrims with scheduled matches
|
||||
- Scrims in looking-for-match state
|
||||
|
||||
**Output:**
|
||||
- Single sorted list of events (chronological)
|
||||
- Each event needs: name, time, status, type (tournament/scrim)
|
||||
- Tournament events need: check-in window info, handle two-day tournaments
|
||||
- Filter to upcoming events only (no past)
|
||||
|
||||
## Technical approach
|
||||
|
||||
- Create loader at `/my-calendar` route
|
||||
- Repository functions to fetch user tournaments and scrims
|
||||
- Merge and sort by start time
|
||||
- Design data structure that works for both page and sidebar (shared)
|
||||
|
||||
## Checklist
|
||||
|
||||
- [ ] Create repository function for user's upcoming tournaments
|
||||
- [ ] Create repository function for user's upcoming scrims
|
||||
- [ ] Create unified event type/interface
|
||||
- [ ] Create loader that combines and sorts events
|
||||
- [ ] Verify data structure works for sidebar consumption
|
||||
|
|
@ -3,8 +3,11 @@
|
|||
title: Show scrims in My calendar
|
||||
status: todo
|
||||
type: task
|
||||
priority: normal
|
||||
tags:
|
||||
- my-calendar-epic
|
||||
created_at: 2026-01-11T09:44:26Z
|
||||
updated_at: 2026-01-11T09:44:26Z
|
||||
updated_at: 2026-01-11T11:45:42Z
|
||||
parent: sendou.ink-6eko
|
||||
---
|
||||
|
||||
|
|
|
|||
31
.beans/sendou.ink-oiw2--my-calendar-navigation-links.md
Normal file
31
.beans/sendou.ink-oiw2--my-calendar-navigation-links.md
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
---
|
||||
# sendou.ink-oiw2
|
||||
title: My calendar navigation links
|
||||
status: todo
|
||||
type: task
|
||||
created_at: 2026-01-11T11:45:36Z
|
||||
updated_at: 2026-01-11T11:45:36Z
|
||||
parent: sendou.ink-om3i
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
Add links to My Calendar page in sidebar (desktop) and mobile menu.
|
||||
|
||||
## Details
|
||||
|
||||
**Desktop sidebar:**
|
||||
- Add "My Calendar" link
|
||||
- Placement TBD (near existing Calendar link?)
|
||||
- Only show when logged in
|
||||
|
||||
**Mobile menu:**
|
||||
- Add "My Calendar" link in appropriate location
|
||||
- Only show when logged in
|
||||
|
||||
## Checklist
|
||||
|
||||
- [ ] Add My Calendar link to desktop sidebar
|
||||
- [ ] Add My Calendar link to mobile menu
|
||||
- [ ] Ensure links only appear when authenticated
|
||||
- [ ] Add translations for link text
|
||||
|
|
@ -1,29 +1,65 @@
|
|||
---
|
||||
# sendou.ink-om3i
|
||||
title: My calendar page
|
||||
status: draft
|
||||
status: todo
|
||||
type: epic
|
||||
priority: normal
|
||||
created_at: 2026-01-11T09:45:51Z
|
||||
updated_at: 2026-01-11T09:45:51Z
|
||||
updated_at: 2026-01-11T10:37:00Z
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
A dedicated page for viewing the user's personal calendar with all their commitments.
|
||||
A dedicated page (`/my-calendar`) for viewing the user's personal calendar with all their upcoming commitments in one centralized view.
|
||||
|
||||
## Why
|
||||
|
||||
While the sidebar shows a quick glance at upcoming events, players need a full page view to see their complete schedule at a glance
|
||||
Users struggle to see all their commitments (tournaments, scrims) in one place. While the sidebar shows a quick glance, players need a full page view to see their complete schedule.
|
||||
|
||||
## Scope
|
||||
## Scope (Initial)
|
||||
|
||||
TBD - This is a placeholder epic for future planning.
|
||||
**Must have:**
|
||||
- Tournaments user is registered for
|
||||
- Tournaments user is organizing
|
||||
- Scrims (scheduled matches)
|
||||
- Scrims (looking-for-match posts)
|
||||
|
||||
## Potential features
|
||||
|
||||
- Calendar view (week/month) of all user events
|
||||
- Tournament matches and check-in times
|
||||
- Scheduled scrims
|
||||
**Future consideration:**
|
||||
- SendouQ sessions
|
||||
- Team practice times
|
||||
- Integration with external calendars (Google, etc.)
|
||||
- External calendar integration (Google, etc.)
|
||||
|
||||
## Design
|
||||
|
||||
**View format:** Simple list view, grouped by day (chronological)
|
||||
|
||||
**Event card info:**
|
||||
- Name (tournament name or scrim opponent)
|
||||
- Time
|
||||
- Status
|
||||
- Check-in window (for tournaments, e.g. "Check-in opens in 2 hours")
|
||||
- Handle two-day tournaments appropriately
|
||||
|
||||
**Time range:** All upcoming events only, no past events
|
||||
|
||||
**Interaction:** Clicking an event navigates directly to the tournament/scrim page
|
||||
|
||||
**URL:** `/my-calendar` (login required)
|
||||
|
||||
**Empty state:** Simple message ("No upcoming events") with links to /calendar and /scrims
|
||||
|
||||
**iCal export:** Support .ics file export for subscribing in external calendars (similar to existing /calendar feature)
|
||||
|
||||
## Technical Notes
|
||||
|
||||
- Share components and data fetching logic with sidebar "My Calendar" section
|
||||
- Related tasks: `sendou.ink-kw6u` (scrims in sidebar), `sendou.ink-1kb8` (times on mobile panel)
|
||||
|
||||
## Navigation
|
||||
|
||||
- Add link to sidebar (desktop)
|
||||
- Add link to mobile menu
|
||||
|
||||
## Completion Criteria
|
||||
|
||||
All child tasks resolved.
|
||||
35
.beans/sendou.ink-yyzj--my-calendar-ical-export.md
Normal file
35
.beans/sendou.ink-yyzj--my-calendar-ical-export.md
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
---
|
||||
# sendou.ink-yyzj
|
||||
title: My calendar iCal export
|
||||
status: todo
|
||||
type: task
|
||||
created_at: 2026-01-11T11:45:35Z
|
||||
updated_at: 2026-01-11T11:45:35Z
|
||||
parent: sendou.ink-om3i
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
Add .ics file export for the user's personal calendar, allowing subscription in external calendar apps.
|
||||
|
||||
## Details
|
||||
|
||||
**Feature:**
|
||||
- Generate .ics file containing user's tournaments and scrims
|
||||
- Similar to existing /calendar iCal feature but personalized
|
||||
- Users can subscribe in Google Calendar, Apple Calendar, etc.
|
||||
|
||||
**Events to include:**
|
||||
- Tournaments user is registered for
|
||||
- Tournaments user is organizing
|
||||
- Scheduled scrims
|
||||
- Looking-for-match scrims (optional - may not make sense)
|
||||
|
||||
## Checklist
|
||||
|
||||
- [ ] Research existing /calendar iCal implementation
|
||||
- [ ] Create endpoint for personal calendar .ics
|
||||
- [ ] Generate iCal events from user's tournaments
|
||||
- [ ] Generate iCal events from user's scrims
|
||||
- [ ] Add subscription URL/button to My Calendar page
|
||||
- [ ] Test subscription in external calendar app
|
||||
Loading…
Reference in New Issue
Block a user