Skip to content

My own version of the popular workplace messaging app Slack (Full-stack development)

Notifications You must be signed in to change notification settings

xqoasis/Slack-Emulated-Online-Chat-App

Repository files navigation

Slack-Emulated-Online-Chat-App

My own version of the popular workplace messaging app Slack (Full-stack development)

Core Behavior

  • It lets users send and read real-time chat messages that are organized into rooms called Channels. Users see a list of all the channels on the server and can click one to enter that channel. Inside, they see all the messages posted to that channel by any user, and can post their own messages. All messages belong to a channel and all channels are visible to all users; we don't need to implement private rooms or direct messages.
  • Any user can create a new channel by supplying a display name. Channel names must be unique. If you wish, You may choose to limit what characters are allowed in channel names.
  • Like Slack, messages may be threaded as Replies in response to a message in a channel. Messages in the channel will display how many replies they have if that number is greater than zero. We don't support nested threads; messages either belong directly to a channel or are replies in a thread to a message that does, but replies can't have nested replies of their own.

Instructions

  • run sqlite3 ./db/belay.db < ./db/20230228T225000-create_tables.sql to initialize database. If flask is not installed, run pip3 install flask.

  • Run flask run --reload to start APP.

  • Access app in your browser at the URL that Flask prints to the command line, e.g. * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

  • You'd better use virtual (If you have created a python virtual environment) environment.

python3 -m venv YOUR_VENV_NAME

. venv/bin/activate

pip3 install Flask

flask run --reload

login and signup page

  • They can be mutual converted by clicking the text in the bottom. User can create an account or log in. The username and password should match, and password and repeat password should match, and the new username cannot repeat with exsited username, otherwise it will alert and stop login/signin. Besides, they cannot be empty.

login signup

Channel-whole-page

  • Users can check channel list (with unread messages), post messages or replies.

channel-whole-page 11471678405876_ pic

  • By clicking settings, users can enter profile page (in the profile page, users can give up changing and back to menu) to change their user information or logout.

11451678405444_ pic 11441678405394_ pic

  • Users can click emoji to react with messages or hover on those emoji to see who reacted with them.

11511678406982_ pic

  • Users can create channels or change channel's name.

11521678407013_ pic 11491678406915_ pic

Narrow screen layout

  • In the narrow screen. The layout would be one-column. There's a new side-menu offering some settings. 11571678408871_ pic

About

My own version of the popular workplace messaging app Slack (Full-stack development)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published