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.
👤 Pijush Konar
- Github: @pijushkonar
👤 Saidul Mondal
- Github: @saidul-mondal-au7
For development, you will only need Node.js and a node global package installed in your environement.
-
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). -
You can install nodejs and npm easily with apt install, just run the following commands.
$ sudo apt install nodejs $ sudo apt install npm
-
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
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
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
$ npm run dev
-
@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.
-
Visit Here AttainU Chat
Copyright © 2020 Pijush Konar & Saidul Mondal.