/Accord

Discord clone made using node, express.

Primary LanguageJavaScriptMIT LicenseMIT

forthebadge

Accord

A Real Time Chat Application built using Node.js, Express, Mongoose, Socket.io, Peerjs.

Requirements

For development, you will only need Node.js and a node global package, installed in your environement.

Index

Features

  • Uses Express as the application Framework.

  • Manages Authentication using jsonwebtoken package.

  • Authenticates via email and password.

  • Passwords are hashed using bcrypt package.

  • Real-time communication between a client and a server using Socket.io.

  • Uses MongoDB, Mongoose for storing and querying data.

    Users

    • Signup, Login.
    • Change Profile Image.
    • Change Password, Reset Password.
    • Delete your account.

    Servers

    • Create your own Servers like discord.
    • User can join & leave the Server.
    • Author can fully manage his Servers.

    Channels

    • Create multiple voice & text Channels in a Server.
    • Chat with your friends in the Server of your choice.
    • Group voice chat by creating Voice Channels.
    • Only Server author can Create & Delete Channels.

    Messages

    • Enjoy group chat with your friends by sending real-time chat messages.
    • Edit & Delete messages.
    • Reply to a specific message.

Installation

  • Node installation on Windows

    Just go on official Node.js website and download the installer. Also, be sure to have git available in your PATH, npm might need it (You can find git here).

  • Node installation on Ubuntu

    You can install nodejs and npm easily with apt install, just run the following commands.

    $ sudo apt install nodejs
    $ sudo apt install npm
    
  • Other Operating Systems

    You can find more information about the installation on the official Node.js website and the official NPM website.

If the installation was successful, you should be able to run the following command.

$ node --version
v8.11.3

$ npm --version
6.1.0

If you need to update npm, you can make it using npm! Cool right? After running the following command, just open again the command line and be happy.

$ npm install npm -g

Install

$ git clone https://github.com/SelinJodhani/Accord
$ cd Accord
$ npm install

Run using docker compose

Install Docker on your local machine and then run:

  $ docker compose up

OR

  $ docker-compose up

Configure app

Open ./.env then edit it with your settings. You will need:

Server
  • PORT;
  • MONGO_CONNECTION_STRING;
  • JWT_SECRET;
  • JWT_EXPIRES_IN;
Cloudinary credentials
  • CLOUD_NAME;
  • API_KEY;
  • API_SECRET;

Running the project

$ npm start

Simple build for production

$ npm build

Todo

  • Unfriend a friend
  • Implementation of socket for receiving real-time friend requests

Done ✓

  • Sending friend requests
  • Accepting/Rejecting friend request
  • Cancel friend request
  • Private chat with your friends

Support

I've written this script in my free time during my studies. If you find it useful, please support the project by spreading the word.

Contribute

Contribute by creating new issues, sending pull requests on Github or you can send an email at: jodhaniselin.sj@gmail.com

License

Built under MIT license.