Slick is a web application inspired by a well-known communication app, Slack. While maintaining all of Slack's basic functionalities such as live chatting system and the flexibilities of chatting group, to it, certain personal flavors in colors, fonts, designs, and extra utilities were added.
Features and implementation
To provide most sensible explanation of what Slick is capable of, its features will be described in the following order:
Slick allows user to create, read, update its information. Creation of users are done in the frontpage, where new users are invited to join the app. Once signed up or logged in, user can update their profile information (firstname, lastname, email, picture) in the edit section of the app.
Channels and Subscriptions
Channels & Subscriptions can be created, read, and destroyed. Updating channel information has been intentionally left out to ensure that the choices of name and descriptions are carefully chosen at their creation.
There are three types of channels in Slick - private, public, and Direct Message. The difference between private and public is that all users can see public chat, but they cannot see private chats. Then, the difference between private chats and direct messages is that users do not have to go through naming and describing them.
Channels can be created at the left channel navigation of the application. Once initiated, creator of the channel are welcomed to invite any other users available in the app. Lastly, direct messages can be created similar to private & public channels, or the user can simply click the list of participants in the right column of the app.
Messages are created when the user submits content in the most bottom part of middle column. Upon submitting, the message will be displayed in the main message content. After the message has been created, author is able to delete and update the messages within the postings. Users may also reply to existing messages. Replies are designed with polymorphic and self association to messages.
Live chat is not an option for any chat application. Slick users pusher api to establish connection between all users of the app. There are three events that happen in real time, which are:
- Channel Invitations
- Participant changes
Going hand to hand with live chat functionality, user can also experience notifications during these events. Bottom left space has been purposely left out to allow users to see any notifications during their navigation around the app. Users will receive following notifications:
- Message from other user in the other channel
- Joining of channel
- Successful profile update
- Attempt for invalid modifications
Other Notable Features
There are few noteworthy features in Slick.
- Inviting other users to created channel
- Joining a public channel
Future Directions for the Project
As for future directions, following are desired features for Slick:
- Persisting emoticon data
- Creation of replies
- Addition of giphy support