Skip to content

Messaging, Profiles, and Following System – Feature Completion & API Enhancements#17

Merged
hussein-m-kandil merged 46 commits intomainfrom
dev
Feb 2, 2026
Merged

Messaging, Profiles, and Following System – Feature Completion & API Enhancements#17
hussein-m-kandil merged 46 commits intomainfrom
dev

Conversation

@hussein-m-kandil
Copy link
Copy Markdown
Owner

Summary

This PR delivers a complete set of core features for a profile-based messaging application. It introduces profile management, following relationships, and a full chat/messaging workflow, alongside API consistency improvements, test fixes, and tooling updates.


Key Features

Profiles

  • Create, update, and retrieve profiles with pagination and name-based filtering.
  • Support fetching profiles by ID or username.
  • Include fullname in name-based filtering.
  • Return followedByCurrentUser flag when retrieving profiles.
  • Middleware to automatically update profile lastSeen.
  • Profile data is now included in auth responses.
  • Database seed script creates users with profiles.

Following System

  • Create and delete follow relationships.
  • Fetch profile followers and following lists.

Chats & Messaging

  • Full chat lifecycle:
    • Create chats (including self-chats via empty profile ID array).
    • Get all chats for a profile.
    • Get chats with a specific profile.
    • Delete a chat.
  • Message lifecycle:
    • Create messages (text, image, or image-only).
    • Retrieve messages for a chat.
    • Mark messages as seen by the current user.
  • Seen/received logic:
    • seen / received placed in chat–profile relation (profile data included).
    • Messages are initialized as seen by the sender.
    • Returned messages are marked as received by the current user.

Maintenance & Quality

  • Updated dependencies and resolved minor TypeScript issues.
  • Upgraded ESLint configuration.
  • Fixed broken tests.

Add logic that omit an intangible profile for a message's seen-by list,
and omit all profiles from a message's seen-by list when retrieved by
an intangible profile. In other words, chat members cannot know that
an intangible member have seen the messages, and the intangible member
cannot know whether its message have been seen or not.
@hussein-m-kandil hussein-m-kandil merged commit 1193c58 into main Feb 2, 2026
1 check 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