krishna-vasudev / ChitChat

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ChitChat- A Django Chat Application

ChitChat Discuss LICENSE website

This is a Django chat application powered by Ajax, Jquery, Django Google Drive Storage that provides main features you'd expect from a chat, such as emoji message support, private chat, admin system, add friend, file sharing etc.

Table of Contents

Introduction

I had seen various chat application projects and tutorials in github ,youtube ,and other online resources. But in most of them it was a room where people can enter and chat, and security feature was not that good. So I decided to develop a chat application in django where one-to-one chat or private chat is possible keeping in mind the security features.

I had faced some difficulties while developing this application. I will brief about them and how to install it in your local system and run it in development server. The link to youtube video for deployment to heroku is provided here.

Screenshots

Demo and link to deployed chat application

The chat application is deployed in heroku platform. This is the link to the deployed application : https://chitprivatechatapp.herokuapp.com/

I have also maade a detailed demo video for this webapp. Check that out here :https://youtu.be/-sf4CbjQKmk

πŸš€ Features

Current features

  • An user can create an account ,the account will be verified through email.
  • Private chat between two people is possible in the application.
  • Messages can be text, emoji or even File uploads.
  • Users can add friends by entering their unique usernames and chat with friends by just a click.
  • If the user forgets his password then he can reset it by entering his username, which results in a password reset email.

Features to add

  • I am also planning to add group chat feature to this application.
  • Also planning to add profile picture feature and advanced searching features to find friends.
  • Time zone support for the message send/receive time.
  • End to end encryption of messages for more privacy.

⭐ Feature request

  • Any other feature you would like to suggest ,then please open an issue for that.😊
  • Connect with me in LinkedIn. I did πŸ’– to hear how you feel using this app.

Technologies and tools used

Prerequisites(Optional)

As this is web application you can use it by simply visiting this link:https://chitprivatechatapp.herokuapp.com/.

But as a developer you might be interested to work on it or see it running in your local system. For that you must have python installed in your system and all evironments settings done properly. Don't know how to install it ,see this tutorial video for reference.

Installation and Setup(Optional)

First clone this repository to your local machine using the following command in git bash:

$ git clone https://github.com/krishna-vasudev/ChitChat

Now open git bash in the root directory of the repository and enter the following command to install the required dependencies:

$ pip install -r requirements.txt

Inside the privatechat directory there is another directory named privatechat which is the django project directory. We have to make a few changes to /settings.py file in this directory.

First create a new google account and turn on less secure app permissions.See this for reference.

Now in /settings.py file find the below code:

EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'Replace with google account you just created'
EMAIL_HOST_PASSWORD = 'Replace with password of your google account'
EMAIL_PORT = 587

Replace the required fields as mentioned in the above code.

Now we are almost done, we have just one more setting to do and the most tricky one.

We will work on setting up django google drive storage. To use this storage you have to:

Put the downloaded json private key file inside the privatechat directory present in the root directory of the repository.

Find the below code in /settings.py file:

GOOGLE_DRIVE_STORAGE_JSON_KEY_FILE = os.path.join(BASE_DIR , "Replace with name of your json private key file")

So we are done✌. Just few more steps to get it running in local server.

Running in the local server(Optional)

Open the git bash inside the privatechat directory present in the root directory of the repository. Run the following commands in order one by one:

$ python manage.py makemigrations
$ python manage.py migrate
$ python manage.py runserver

Follow the link generated after last command and Hurrah!πŸŽ‰ the app is running.

Deploying the app to heroku(Optional)

Now although it's running good in local server but to deploy to heroku we have to make few more changes. Refer to this tutorial for detailed step by step deployment to heroku.

πŸ› Bug Reporting

Feel free to open an issue on github if you find any bug.

πŸ“œ License

This software is open source, licensed under the MIT License.

About

License:MIT License


Languages

Language:HTML 46.7%Language:Python 44.9%Language:CSS 8.4%