Utopian Messaging/Chat Application

Repositories

Backend:
https://github.com/tensor-programming/utopian-chat-server

Frontend:
https://github.com/tensor-programming/utopian-chat-client

New Projects

  • What is the project about?

This application contains the back-end and front-end for the Utopian Messaging Module. This Module is a part of the Utopian Platform. This application adds a messaging service to the Utopian Platform so that users may communicate with one another directly and indirectly. The module will also let the platform serve notifications to users about the status of their projects and contributions.

There is a temporary authentication system which lets users sign in using only their username. The system then fetches the user's avatar from the steem images CDN. A user can then search for any other users that exist inside of the database. The user can then friend another user to add that user to their friends list. The user can select a user from their friends list to initiate a private message chat. If the other user is offline, or not focused on the private chat, they are served notifications which appear next to the sending user's avatar in their friends list.

Users can also search for and create chat groups. Each group has an avatar, which also is from the Steem Images CDN. This avatar will eventually be generated based on the Group name. Groups allow multiple users to join and chat with one another. If a group doesn't exist then a user may create a new group with that name. Other users are free to join that group with no restrictions currently. Groups track the users who are currently a part of the room and also keep track of the messages which have been sent into them.

Users may also send image messages through the chat front-end though the images will not be serve to the other user because the CDN for this service hasn't been fully implemented yet. They can also sign out of groups and unfriend users at their own leisure as well as sign in and out of the module. Currently, the module does not track the user's online status nor do uses have roles; that is to say that all users are equal in this service as it currently is.

  • Technology Stack

This module was built using Node, Vue, Vuex, MongoDB, and Socket.IO. Rather then using a RESTful API which upgrades the requests to Web-socket requests, the Chat uses a pure web-socket architecture. The module also makes use of the PM2 a process manager which makes it easier to scale the application based on needs.

  • Roadmap

In the future, this project will be integrated into the utopian v2 repository. Features that are being looked include a block list, user roles, group chat timeouts, message timeouts and messages to deal with notifications/chat bots.

  • How to contribute?

If you'd like to contribute to this project, feel free to contact the Utopian staff members or myself. You may also create a PR on one of the repositories.

  • Video Reference:

GitHub Account

https://github.com/tensor-programming/

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now
Logo
Center