This project is a simple implementation of a Chat Application such as Slack, Discord, Telegram, etc.
This document will outline the requirements for the project, and the following sections will outline the different components of the project.
- The project should be able to be run on the Web
- There should be a user model that allows a user to securely log in with email and password
- Channels
- Create channels
- Join channels
- Leave channels
- Edit Channels they make
- Delete Channels they make
- Messages
- Send messages to directly to other users
- Receive messages directly from other users
- Delete their own messages
- Edit their own messages
- See their own messages
- See other users' messages
- Format messages with markdown or a WYSIWYG editor, including images and emoji
- Profile
- Create a profile page for the user that shows their name, email, pronouns, and a profile picture (and other relevant information)
- See other users' profile information
- See other users' online status
- See other users' last online time
- Notifications
- Users should get web notifications when they receive a message
- Users should get an email notification when they receive a message and are not online
These requirements were the first step in breaking down the project into smaller digestible pieces. Take a moment to read through these requirements. If you have any questions, please feel free to ask.