Archived
Backend: - New hermes app with ReadingGroup, GroupMeeting, GroupMembership models - NotificationPreference (per-user: enable/disable, frequency daily/weekly) - PaceNotification model for tracking sent/dismissed notifications - Pace calculation service comparing current progress vs meeting targets - API endpoints: pace status, notification preferences CRUD, reminders, dismiss - Ahead/behind/on_track/completed status determination Frontend: - PaceNotification component for in-app alerts (behind/ahead/on_track statuses) - ReadingPaceBanner — persistent banner in reader view - Notification settings in Settings page (enable/disable, frequency, reminders) - API client module (groupsApi) for all notification endpoints
23 lines
857 B
Python
23 lines
857 B
Python
from django.urls import include, path
|
|
from rest_framework.routers import DefaultRouter
|
|
|
|
from apps.groups.views import (
|
|
GroupMeetingViewSet,
|
|
ReadingGroupViewSet,
|
|
dismiss_pace_notification_view,
|
|
notification_preferences_view,
|
|
pace_status_view,
|
|
reminder_view,
|
|
)
|
|
|
|
router = DefaultRouter()
|
|
router.register(r"groups", ReadingGroupViewSet, basename="reading-group")
|
|
router.register(r"meetings", GroupMeetingViewSet, basename="group-meeting")
|
|
|
|
urlpatterns = [
|
|
path("", include(router.urls)),
|
|
path("notifications/preferences/", notification_preferences_view, name="notification-preferences"),
|
|
path("notifications/pace/", pace_status_view, name="pace-status"),
|
|
path("notifications/dismiss/", dismiss_pace_notification_view, name="dismiss-pace"),
|
|
path("notifications/reminders/", reminder_view, name="meeting-reminders"),
|
|
] |