Skip to content

Add event-based notification system - #153

Merged
cengique merged 2 commits into
developfrom
feat/notifications
Sep 13, 2026
Merged

cengique merged 2 commits into
developfrom
feat/notifications

Conversation

@mohab-elshamy

Copy link
Copy Markdown
Collaborator

Summary

Implemented an extensible notification system for AnalySim with persistent in-app notifications and configurable user preferences.

Notifications are event-based: controllers publish a NotificationEvent, while INotificationService handles recipients, preferences, persistence, and email delivery where supported.

What Changed

  • Added notification entities, preferences, EF Core mappings, and migration.

  • Added INotificationService to centralize notification handling.

  • Added APIs for notifications, unread count, read state, and preferences.

  • Added notifications for:

    • Comment replies
    • Users added to projects
    • Users following/joining projects
    • Project log creation and updates
  • Existing comment reply emails now go through the shared notification service.

Notifications UI

Added a navbar notification bell, unread badge, and notifications dropdown.

Notifications dropdown

Notification Preferences

Added user-level notification preference settings for supported notification types.

Notification preferences

Verification

  • dotnet ef database update
  • dotnet run --environment Development

@cengique cengique left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Confirmed that it works for comments, joining, and project updates!

Some feedback:

  • clicking outside of notification popup should close it
  • couldn't test "users added to projects" because join button doesn't work? How to add people to projects? But I did get a notification that a user has been added, although the user does not actually get added to the project.

@cengique
cengique merged commit 1a64830 into develop Sep 13, 2026
2 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.

2 participants