Skip to content

Add Community Calendar with recurring entries and admin management#38

Merged
karolswdev merged 1 commit intomainfrom
feature/community-calendar
Mar 30, 2026
Merged

Add Community Calendar with recurring entries and admin management#38
karolswdev merged 1 commit intomainfrom
feature/community-calendar

Conversation

@karolswdev
Copy link
Copy Markdown
Owner

Summary

  • Community Calendar page (/calendar) with FullCalendar month/week/agenda views, category filter chips, and item detail popovers — aggregates events, polls, announcements, and recurring calendar entries into one unified view
  • Dashboard calendar widget showing the current + next week at a glance with color-coded dots, clickable to navigate to the full calendar
  • Admin Calendar Entry management (/admin/calendar) with full CRUD, flexible recurrence configuration (daily/weekly/biweekly/monthly/quarterly/yearly), seasonal bounds, and exception management (skip or move individual occurrences to different dates)
  • Server-side recurrence expansion that generates individual occurrences for any requested date range, respecting exceptions and seasonal bounds
  • 27 passing E2E tests covering dashboard widget, member calendar page, and admin CRUD flows
  • Updated user guides (Member, Admin, and main User Guide) documenting all new functionality

What's included

Backend (14 new files)

  • 3 migrations (calendar_entries, calendar_entry_exceptions, override_date addition)
  • 2 Sequelize models with associations
  • 2 services (calendar entry CRUD + recurrence engine, aggregate calendar service)
  • 2 controllers, 2 route files, 1 validator
  • Routes mounted in app.js

Frontend (5 new files, 5 modified)

  • CalendarPage.tsx — FullCalendar with category filters and detail popover
  • AdminCalendarPage.tsx — AdminDataTable with recurrence config dialog and exception management
  • CalendarWidget.tsx — compact 2-week dashboard widget
  • Types, API methods, navigation, and routing additions

Documentation

  • Member guide: Community Calendar section + dashboard widget docs
  • Admin guide: Calendar Entry Management section with recurrence examples, exception (skip/move) workflows, and best practices
  • Main user guide: Both member and admin calendar sections

Test plan

  • E2E: 27 tests passing (dashboard widget, calendar page views/filters/navigation, admin CRUD/recurrence/exceptions, auth guards)
  • Manual: Create recurring entries (trash weekly, meetings monthly), verify they expand correctly on the calendar
  • Manual: Add exceptions — skip a date, move a date — verify calendar reflects changes
  • Manual: Verify existing events, polls, and announcements appear on the calendar alongside calendar entries
  • Manual: Verify dashboard widget shows items and navigates to /calendar

🤖 Generated with Claude Code

…admin management

Implements a unified Community Calendar that aggregates events, polls, announcements,
and new recurring calendar entries (trash pickup, recycling, meetings, dues deadlines)
into month/week/agenda views powered by FullCalendar. Admins can create recurring
entries with flexible scheduling (weekly, biweekly, monthly, quarterly, yearly) with
seasonal bounds and exception management (skip or move individual occurrences).
Includes a dashboard widget showing the current and next week at a glance, 27 passing
E2E tests, and updated user guides for both members and administrators.
@karolswdev karolswdev merged commit f20e6f0 into main Mar 30, 2026
9 of 13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant