Giter Site home page Giter Site logo

dzzirima / accord Goto Github PK

View Code? Open in Web Editor NEW

This project forked from selinjodhani/accord

0.0 0.0 0.0 501 KB

Discord clone made using node, express.

Home Page: https://accord-two.vercel.app

License: MIT License

JavaScript 99.74% Dockerfile 0.26%

accord's Introduction

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: [email protected]

License

Built under MIT license.

accord's People

Contributors

selinjodhani 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.