My own version of the popular workplace messaging app Slack (Full-stack development)
- 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.
-
run
sqlite3 ./db/belay.db < ./db/20230228T225000-create_tables.sql
to initialize database. If flask is not installed, runpip3 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
- 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.
- Users can check channel list (with unread messages), post messages or replies.
- 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.
- Users can click emoji to react with messages or hover on those emoji to see who reacted with them.
- Users can create channels or change channel's name.