- NodeJS v18.13.0
- PostgresSQL 10.23
npm install knex -g
Database Name: group_chat
knex migrate:latest; knex seed:run;
npm install
npm start
npm test
- Login : POST -
{server}/auth/login
{ "email": "", "password": "" }
- Create Normal User by Admin : POST -
{server}/admin/users
{ "email": "", "first_name": "", "last_name": "" }
- Update Normal User by Admin : PATCH -
{server}/admin/users/:userid
{ "first_name": "", "last_name": "" }
- Get list of chat groups : GET -
{server}/groups
- Create a new chat group : POST -
{server}/groups
{ "name": "" }
- Get a particular group : GET -
{server}/groups/:groupid
- Update a group : PATCH -
{server}/groups/:groupid
{ "name": "" }
- Delete a group : DELETE -
{server}/groups/:groupid
- Search by group name : GET -
{server}/groups?search={{search-text}}
- Add member to a group : POST -
{server}/groups/:groupid/add_member
{ "user_id": "" }
- Get all members in a group : GET -
{server}/groups/:groupid/users
- Save message in a group : POST -
{server}/groups/:groupid/chats
{ "message": "", "message_props": "", "created_by": "", "group_id": "" }
- Get Group chats and likes : GET -
{server}/groups/:groupid/chats
- Like message : POST -
{server}/groups/:groupid/chats/:chatid/like
- Dislike message : POST -
{server}/groups/:groupid/chats/:chatid/dislike
joined-user
- Storing users connected in a group in memory and Emitting New Username to Clients{ "userid": "", "username": "", "groupid": "" }
online-users
- Send online users arraychat
- Emitting messages to Clients{ "userid": "", "username": "", "message": "", "chatid": "" }
like-message
- Emitting message likes to Clients{ "userid": "", "chatid": "" }
typing
- Broadcasting the user who is typing{ "groupid": "", "userid": "", "username": "" }