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.