ColinLefter / Accord

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.
5 stars 1 forks source link
direct-messaging mongodb nextjs react social-media social-network typescript

Accord: Real-Time Privacy-First Direct Messaging | UBC Software Engineering

LandingHero HomePage FriendsAddition Application

About

Accord is an engaging social platform where users can leverage our feature-rich instant messaging interface to chat and hang out with friends and communities. We are building a web application that uses TypeScript and Next.js as the full-stack framework for our application development alongside MongoDB Atlas as our database.

Our tech stack aligns with the increasing popularity of Next.js as the top choice for full-stack web development while leveraging the strict type-checking properties of TypeScript that improve our development workflow by simplifying the process of test-driven development.

Milestone 2 Update

High-level overview

Our platform will support peer-to-peer direct messaging as well as group conversations.

Discussions take place through group chats or discussion servers dedicated to context-driven conversations via roles and threads. We believe everyone has the right to privacy, and offering end-to-end encryption across all our messaging services allows us to accomplish our ambition. Users will have access to a range of privacy controls that allow for flexible user interactions—from specifying the duration of message history to deleting all chat history after every discussion through private mode, user-driven data privacy is our priority.

Communities are central to our platform, and we intend to put users in control of how they engage with communities through server roles. Owners of discussion servers can assign roles to participating users to drive user engagement. Users design these servers with purpose by organizing discussions through text channels that act as individual conversation threads.

Requirements:

  1. Allow users to create an account on the platform.
  2. Allow the user to log in to the platform with an existing account.
  3. Allow the user to log out of their account.
  4. Allow the user to edit their account (username, password, email, etc.).
  5. Allow the user to send text messages.
  6. Allow user to receive text messages.
  7. Allow users to search for other users on the platform.
  8. Allow the user to add another user as a friend.
  9. Allow users to remove another user from their friend list.
  10. Allow the user to create a group chat.
  11. Allow group chat owners to manage a group chat.
  12. Allow server owners to create a text channel.
  13. Allow server owners to edit text channels.
  14. Allow users to add other users to the server.
  15. Allow server owners to remove a user from a server.
  16. Allow server owners to delete a message from a server.
  17. Allow users to access servers.