Git Product home page Git Product logo

chat-app-next's Introduction

Chatter

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.

Demo

Creating Group

creating-group.mp4

Sending Message

sending-message.mp4

Editing Message

editing-message.mp4

Deleting Message

deleting-message.mp4

Deleting Group

deleting-group.mp4

Run Locally

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

Docker

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

Environment Variables

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

Tech Stack

Client: React.js, Next.js, Redux Toolkit, TailwindCSS, DaisyUI, Socket.io

Server: PostgreSQL, Docker, Socket.IO, NextAuth.js, Jest

Roadmap

  • 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

How To

Create A Group

  • Go to the + button
  • Type in the group name

How to message

  • Click on the send message
  • Type in a message you would like to send.
  • Then press enter to send the message.

Invite users

  • Go to the drop down with the group name to invite users

Screenshots

SignIn

image

SignUp

image

Group Page

image

image

Add Group Modal

image

Settings

image

Me Page

image

Mobile Sidebar

image

chat-app-next's People

Contributors

karanvirsb avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.