PIP #3: Presence

Author(s): @NooberBoy
Created: 6th June 2024

Summary:

Implement a Presence feature natively in Push Chat to provide users real-time status updates such as online presence, typing indicators, and user activities within the chat.

Abstract:

This proposal aims to introduce a Presence feature to Push chat, enhancing the user experience by providing real-time status updates of the end users. This feature will show who is online, display typing indicators, and reveal user activities within the chat, making interactions more dynamic and engaging.

Motivation:

Push Chat currently lacks real-time presence information, which limits user interaction and engagement.

Presence features are common in most chat applications and offer several benefits:

  • Improved Collaboration: Knowing who’s available for chat can facilitate real-time collaboration and communication. Need help with a project? See if your teammates are online and ready to jump in!

  • Enhanced User Experience: Presence information provides a more dynamic and interactive chat experience.

Introducing a Presence feature will address these issues, fostering a sense of community and connection among users.

Specification:

Overview:

The Presence feature will be implemented by updating the Push chat to track and display user status in real-time.

This includes:

Rationale:

  • Increasing Engagement: Users are more likely to engage in conversations when they can see who is online and typing.

  • Improving Communication: Real-time status updates and typing indicators help users communicate more effectively.

  • Creating a Social Environment: Knowing who is active in a group fosters a sense of community and connection among users.

Potential downsides include making the front end more complicated and possibly longer load times because of the real-time updates. However, the increased user engagement and satisfaction make these downsides worth it.

Implementation:

  • Updating the Push Chat: To track and broadcast user status and activities in real-time.

  • Frontend Development: Modifying the user interface to display presence information.

  • Backend Development: Develop a backend system to manage user presence data. This system should be optimized for scalability and efficiency.

  • Testing and Optimization: Conducting thorough testing to ensure stability and performance, followed by optimization based on feedback.

Timeline:

  • Planning and Design: 2 weeks

  • Backend Development: 4 weeks

  • Frontend Development: 4 weeks

  • Testing and Optimization: 2 weeks

  • Total Estimated Time: 12 weeks

Manpower:

  • Backend Developers: 2 developers

  • Frontend Developers: 2 developers

  • QA Testers: 1 tester

  • Project Manager: 1 manager

Voting:

  • FOR: Implementation of the Presence feature in the Push chat to provide real-time status updates about users.

  • AGAINST: No changes to the current state of the Push chat regarding user presence.

Copyright:

Copyright and related rights waived via CC0.

6 Likes

Hey @NooberBoy, this is a great suggestion. Presence will be a great addition to Push Chat. Could you add some kind of status for read and unread messages to this proposal? I think that will fit nicely with presence.

1 Like

Thank you soo much @SixtyKeys for the feedback! Presence indicators and read receipts are indeed valuable features for enhancing user interaction within Push Chat, but they operate differently and serve distinct purposes.

Presence indicators are focused on showing the real-time status of users, such as who is online, who is typing, and what activities users are engaged in within the chat. These indicators rely on real-time communication like WebSockets to provide immediate updates about user statuses. By maintaining a constant connection, the system can broadcast changes in user status (like going offline or starting to type) to all relevant users instantly.

On the other hand, read receipts are concerned with tracking the status of messages, specifically whether they have been read by the recipient. This feature doesn’t necessarily require real-time communication but does need a reliable method to update the message status.

To implement presence indicators, we need a backend system capable of tracking user activities and a frontend that dynamically displays these statuses. This involves real-time state management and frequent updates to ensure accuracy.

For read receipts, we need to enhance our message handling system to include read status updates. This involves modifying our message schema to track read statuses and ensuring that these updates are communicated back to the sender whenever a message is read.

Both features work well together to give a complete view of user activity and message status, but they use different methods. Adding both will make Push Chat more engaging and clear for users.

3 Likes

IMO this is super interesting and necessary, to make a more fluent user experience, and be easier the way to collab. Great job @NooberBoy. LFG! :bell: :purple_heart: :sunglasses:

3 Likes

I fully support @NooberBoy proposal to add a Presence feature to Push Chat. Here’s why:

Enhanced User Engagement and Experience

Real-time presence information, such as online status, typing indicators, and user activities, will significantly improve user interactions within Push Chat. It will make communication more dynamic and engaging, fostering better collaboration and a stronger sense of community.

Clear and Thoughtful Implementation Plan

The proposal outlines a well-structured plan for backend and frontend development, ensuring efficient implementation within a 12-week timeline. This includes thorough testing and optimization to maintain stability and performance.

Alignment with Industry Standards

Most modern chat applications include presence features for better user engagement. Adding this to Push Chat will align it with industry standards, enhancing its usability and appeal.

Suggestion for Additional Features

Consider adding customizable status messages for users to manually set their availability or activity, further enhancing user interactions and community building.

In conclusion, NooberBoy’s proposal is strategic and promises substantial benefits to Push Chat. I strongly encourage the community to vote in favor of implementing the Presence feature.

FOR: Implementation of the Presence feature in Push Chat to provide real-time status updates about users.

Thank you, NooberBoy, for this valuable proposal!

3 Likes