Chatter is a chat tool that allows you to quickly and easily connect with your friends, family, and coworkers. You can create and join channels for various themes, as well as send and receive messages.
creating-group.mp4
sending-message.mp4
editing-message.mp4
deleting-message.mp4
deleting-group.mp4
Clone the project
git clone https://github.com/karanvirsb/chat-app-next.git
Go to the project directory
cd chat-app-next
Install dependencies
pnpm install
Start the server
pnpm run dev
version: "3.8"
services:
container_name: chatApp_postgres_container
image: "postgres:14.5"
environment:
POSTGRES_USER: chatAppUser
POSTGRES_PASSWORD: [Your Password]
POSTGRES_DB: chat_app_test
PGDATA: /var/lib/postgresql/data
ports:
- 5432:5432
networks:
- chat_app_network
restart: unless-stopped
healthcheck:
test: ["CMD", "pg_isready -U chatAppUser"]
interval: 5s
timeout: 5s
retries: 5
volumes:
- db-data:/var/lib/postgresql/data
pgadmin:
container_name: pgadmin4_container
image: dpage/pgadmin4
restart: always
networks:
- chat_app_network
environment:
PGADMIN_DEFAULT_EMAIL: [email protected]
PGADMIN_DEFAULT_PASSWORD: [YOUR PASSWORD]
PGADMIN_LISTEN_PORT: 80
ports:
- "8080:80"
volumes:
- pgadmin-data:/var/lib/pgadmin
volumes:
db-data:
pgadmin-data:
networks:
chat_app_network:
driver: bridge
To run this project, you will need to add the following environment variables to your .env file
These environment variables are given by https://sightengine.com
SANITIZE_API_USER
SANITIZE_API_SECRET
PGUSER
- Should match dockers POSTGRES_USER
PGHOST
- The host name such as 'localhost'
PGPASSWORD
- Should match dockers POSTGRES_PASSWORD
PGDATABASE
- Should match dockers - POSTGRES_DB
PGPORT
- Should match dockers ports
TEST_DATABASE
- Name of test data should match POSTGRES_DB
API_DOMAIN
=http://examples:port/api
WEBSITE_DOMAIN
=http://examples:port
NEXTAUTH_SECRET
- You need to generate this!
NEXTAUTH_URL
=http://examples:port
Client: React.js, Next.js, Redux Toolkit, TailwindCSS, DaisyUI, Socket.io
Server: PostgreSQL, Docker, Socket.IO, NextAuth.js, Jest
- Add Users to Group
- Add Group Channels
- Add Group Messages
- Add Notifications
- Add Custom Status
- Add Private Messages
- Add Updating Email and Password
- User Group Roles
- Go to the + button
- Type in the group name
- Click on the send message
- Type in a message you would like to send.
- Then press enter to send the message.
- Go to the drop down with the group name to invite users