A real-time privacy-first social media platform leveraging feature-rich direct messaging text channels. Built as part of the course project for COSC 310 at UBC.
removed privacy toggle from the navbar in the application shell
migrated the privacy toggle to a SegmentedControl component within the Create text channel modal so chat owners can specify whether a text channel will be private upon channel creation. This means that users can no longer jailbreak the privacy toggle as they could before by refreshing, as the state of the toggle is now stored within our MongoDB database under a field called captureHistory that is added to every text channel. If it is true, we upload the chat history to our MongoDB database. Otherwise, we just rely on real-time SMS via Ably.
Conducted extensive ad-hoc testing for the private and non-private text channels and confirmed that messages save or do not save accordingly. It is ensured that all direct messages are non-private.
Patched an issue where text channels would auto sort themselves by date even after the user sorts them themselves (the draggable text channel feature is now fully functional and robust!)
Features In-Depth
Channels marked as private will not capture message history, and leaving the text channel by clicking on a different text channel and clicking back on the private channel will wipe all message history on your view. The user on the receiving end will experience the same outcome if they click on a different text channel and come back, or if they refresh their browser
Channels not marked as private will capture message history. The messages will persist across channel changes and upon logging in / logging out / refreshing your browser / ending the session
All direct messages capture history and there is no way to disable that as we are assigning the private mode feature as an exclusive feature to text channels
Summary of Changes
removed
privacy toggle from the navbar in the application shellmigrated
the privacy toggle to aSegmentedControl
component within theCreate text channel
modal so chat owners can specify whether a text channel will be private upon channel creation. This means that users can no longer jailbreak the privacy toggle as they could before by refreshing, as the state of the toggle is now stored within our MongoDB database under a field calledcaptureHistory
that is added to every text channel. If it is true, we upload the chat history to our MongoDB database. Otherwise, we just rely on real-time SMS viaAbly
.Features In-Depth
private
will not capture message history, and leaving the text channel by clicking on a different text channel and clicking back on the private channel will wipe all message history on your view. The user on the receiving end will experience the same outcome if they click on a different text channel and come back, or if they refresh their browsernot marked
asprivate
will capture message history. The messages will persist across channel changes and upon logging in / logging out / refreshing your browser / ending the sessionprivate mode
feature as an exclusive feature to text channelsVisual Summary of Changes