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.
- Introduction
- Screenshots
- Demo and link to deployed chat application
- Features
- Technologies and tools used
- Prerequisites(Optional)
- Installation and Setup(Optional)
- Running in the local server(Optional)
- Deploying the app to heroku(Optional)
- Bug Reporting
- License
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.
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
- 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.
- 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.
- 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.
- Django-python
- Ajax request using Jquery
- Django Google Drive Storage
- Html
- CSS
- JavaScript
- Python
- Bootstrap
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.
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:
- set up a project and application in the Google Developers Console for newly created google account
- obtain the json private key file (OAuth 2.0 for Server to Server Applications) for your Google Project associated with Google Drive service
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.
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.
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.
Feel free to open an issue on github if you find any bug.
This software is open source, licensed under the MIT License.