Abstract
Chat Io is an open-source Full Stack Web Development project. A Real Time Chat Application built using Node.js, Express, Mongoose, Socket.io, Passport, & Redis. It is built using JavaScript, Node.js, Express. Key capabilities include: Uses Express as the application Framework; Manages Sessions using express-session package; Authenticates via username and password using Passport. The complete source code is publicly available on GitHub under the MIT License, making it a useful reference for students building a Full Stack Web Development mini project or final-year project.
1. Introduction
A Real Time Chat Application built using Node.js, Express, Mongoose, Socket.io, Passport, & Redis.
2. Objective
A Real Time Chat Application built using Node.js, Express, Mongoose, Socket.io, Passport, & Redis.
This project demonstrates how JavaScript, Node.js, Express can be applied to a real-world Full Stack Web Development problem.
3. Key Features / Modules
- Uses Express as the application Framework.
- Manages Sessions using express-session package.
- Authenticates via username and password using Passport.
- Passwords are hashed using bcrypt-nodejs package.
- Social Authentication via Facebook and Twitter using Passport.
- Real-time communication between a client and a server using Socket.io.
- Uses MongoDB, Mongoose and MongoLab(mLab) for storing and querying data.
- Stores session in a MongoDB using connect-mongo; a MongoDB-based session store.
- Uses Redis as an Adapter for Socket.io.
- Logging Errors and Exceptions using Winston.
4. Technology Stack
5. System Requirements
General requirements for this technology stack — check the README for exact versions.
- Node.js (LTS) and npm
- A modern web browser
- VS Code or any code editor
- Git (to clone the repository)
6. Installation & Setup
git clone https://github.com/OmarElgabry/chat.io.git
cd chat.io- Create a new Heroku application, and push your chat application to a Git remote repository
- Now, you need to set up configuration variables on Heroku.
- Go to Settings -> Reveal Config Vars.
- Add configuration variables. All needed variables are inside _app/config/index.js_.
- One last step is to add Redis as an Add-on on Heroku.
- Go to Resources -> Add-ons
- Select Heroku Redis
- Open your chat application in the browser
$ heroku create
$ git push heroku master3. One last step is to add [Redis](http://redis.io/) as an Add-on on Heroku.
1. Go to Resources -> Add-ons
2. Select Heroku Redis
> You need to setup a billing account even if the add-on is free.
4. Open your chat application in the browserFull setup instructions are in the project README.
7. Future Enhancements
Suggested extensions you can add to make this your own project.
- Add role-based access control
- Deploy on a VPS or cPanel hosting with a custom domain
- Add automated tests and a CI pipeline
8. Viva / Review Questions
Common questions examiners ask for projects in this domain.
- Explain the frontend, backend and database layers of this application.
- How is user authentication and authorisation implemented?
- Describe the main database tables / collections and their relationships.
- Which REST APIs or routes are exposed and what do they return?
- How would you deploy this application to production?
9. Source Code & License
This project is developed by OmarElgabry and published on GitHub under the MIT License. Please follow the license terms and credit the original author when you use or modify this code.
Want to build this as your internship project?
Work on a Full Stack Web Development project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.
Apply for Full Stack Web Development Internship