Skip to content

Slack clone - TypeScript + AdonisJS + Vue3 + Quasar + Vuex + PostgreSQL

Notifications You must be signed in to change notification settings

melisekm/lack-chat-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💬 Lack - IRC like chat app

Slack clone full stack app

Description

Used technologies:

  • Back-end: AdonisJS, PostgreSQL
  • Front-end: Vue.js - Quasar - SPA
  • Socket.io modification for websocket instant message sending

Docker installation

docker-compose up --build -d

First time database setup

Make migrations:

docker exec -it {name_of_container} bash where the {name_of_container} is the backend server container

Run node ace migration:refresh --seed

Restart lack-be container docker restart {name_of_container}

Locally installed apps

lack-backend

  • npm install
  • setup .env
  • node ace migration:refresh --seed
  • npm run dev

lack-frontend

  • npm install
  • npm run dev

seeded users:

passwords are: 123456

Features:

  • Register/Login
  • Actions can be performed with commands or through the UI
  • Channels
    • Create channel [public, private]
    • Join channel - /join channelName [private]
    • Leave channel - /cancel
    • Delete channel - /quit
    • Show users - /list
    • Invite users to channel - /invite nickName
    • Kick users from channel - /kick nickName or /revoke nickName
    • Ban users if admin of a channel or if 3 users kick someone
  • Messages
    • Send instantly to channel
    • View in real time who is typing and read currently typed message
    • Address message to user by including @nickname
    • Infinite scrolling in channel
  • OS based notifications
  • Channel is deleted after 30 days of inactivity
  • Status
    • Online, DND, offline
    • Status is shown to other users
    • DND mutes notifications
    • Offline leaves sockets and after going online loads up new messages