Skip to content

attainu/robin-chat-app-two

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Robin - Chat App

The objective of this website/project is to provide a platform to all who can just visit and log in to our website and they can create their own chat room where they can talk to their friend anywhere from the world, share their location. We have user specified Dashboard where the user can check their account details, update their details, set/upload their own Profile picture, they can also remove their profile picture and delete their account. We have additional feature of listing music from Spotify.


Project Authors

Check Us Out

👤 Pijush Konar

👤 Saidul Mondal


Requirements

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


Node

  • 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 -v
    v12.16.2

    $ npm -v
    6.14.4

Project Installation

After installing node, this project will need many NPM Packages, so just run the following command to install all.

$ git clone Here(https://github.com/attainu/robin-chat-app-two)
$ cd robin-chat-app-two
$ npm i

Configuration

Open robin-chat-app-two\config then create and dev.env file and edit it with your infos. You will need:

  • PORT=Your Desired Port
  • MONGODB_URL=Your Database Address
  • SENDGRID_API_KEY=Enter Your SendGrid Email API Register On Sendgrid

Running The Project

    $ npm run dev

NPM Packages Used -

  • @sendgrid/mail - It’s Mail Service npm for the SendGrid v3 Web Email API. We used it to send signup emails and account deletion emails to the users. You can find it out here - @sendgrid/mail
  • bad-words - It is a javascript filter for bad words. It’s an npm module that you can find it out here at bad-words. We have used this to add as a profanity filter in our chat room, to save our users from abuses/hatered of any sort inside the chat room.
  • bcryptjs - We are using bcrypt.js module to hash password of the user. It’s an npm module that you can find it out here at bcryptjs.
  • connect-flash - It is used for the flash messages, you can look for more details here connect-flash.
  • ejs - It is the Embedded JavaScript templates. This is the view engine we used in our project. You can find more details here ejs.
  • express - It's the web framework for Node.js that we used to structure our web application. You can find more details here express.
  • express-ejs-layouts - It's the layout support for ejs in express. You can find more details here express-ejs-layouts.
  • express-session - It's for the storage of the cookies. Session data is not saved in the cookie itself, just the session ID. Session data is stored server-side. For more details check here express-session.
  • mongoose - We used Mongoose because it provides schema-based solution to model our application data with MongoDB. Which has many features to use example - validation of user's data. For more details check here mongoose.
  • multer - We used Multer for handling the image upload we provided in our web-application. As Multer is a node. js middleware which is used for handling multipart/form-data , which is primarily used for uploading files. For more details check here multer.
  • passport - We have used Passport for authentication as it is one of the best authentication middleware available for Node.js. For more details check here passport.
  • passport-local - We used Passport-local for authenticating user data for login, Passport strategy authenticates with a username and password here we are using the email and password to authenticate the user. For more details check here passport-local.
  • sharp - We used sharp to resize the image uploaded by the user, as it is one of the high speed Node.js module to convert large images in common formats to smaller, web-friendly JPEG, PNG and WebP images of varying dimensions. For more details check here sharp.
  • socket.io - We used Socket.IO as it enables real-time bidirectional event-based communication. For more details check here socket.io.
  • validator - We used validator to validate user data for example - user's entered email address. For more details check here validator.

Project Demo Website Hosted On Heroku -

Project Screenshots

  • Welcome Page/Default Page

  • Signup Page

  • Login Page

  • Main Page/Dashboard

  • Account Details Page

  • Account Details Update Page

  • Profile Picture Upload Page

  • Account Delete Page

  • Chat Room Create Page

  • Chat Room Page

  • Listen Music Feature

📝 License

Copyright © 2020 Pijush Konar & Saidul Mondal.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •