ahmet-uzgor / chattyio

Advanced chat api with Socket.io (web sockets) , Redis (Server Side Caching) ,Mongodb ,Express.js framework on top of Node.js

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CREATED BY AHMET UZGOR

Chatty.io is an advanced chat program which is written on top of Node.js.

Login system uses gmail ### oauth2.0 authentication via passport.js and passport-google-oauth-20

It uses express-session, connect-redis & socket authorization to manage online sessioning.

API uses use REDIS as database for caching , online session adapter ,chat room registry and messages . Also MongoDb keeps signed up users and creates an user_id.

CICD ==> Heroku + Travis.ci + Github For testing , integration & Deployment

For Frontend => Angular.js is used for chat and user service

Instant Message system communicates on Web-Socket technology via Socket.io

How to use this application ?

Firstly clone or download this repository to your computer and follow instructions in the below ;

$ git clone https://github.com/ahmet-uzgor/chattyio.git
$ cd chattyio
$ npm install // To install necessary packages
$ npm start 
--> open http://127.0.0.1:3000 or localhost:3000 and login via google authentication
  • Chatty.io api uses, my test mongodb database and my local redis database so to be able to use effectively please install and your redis database to your computer and open a file in the main folder of project which is ".env" and set parameters in the below with your data.Also for google authentication you need Google oauth key and configuration.For more information and google oauth key click
Environment KEY VALUE
DB_STRING mongodb-string
GOOGLE_CLIENT_ID Google-Client-ID
GOOGLE_LOGIN_SECRET_ID Secret- ID
GOOGLE_LOGIN_CALLBACK_URL /auth/google/callback
SESSION_SECRET_KEY AHMETUZGORCHATTYIO
REDIS_URI 127.0.0.1
REDIS_PORT 6379
REDIS_PASS Empty if not specified

About

Advanced chat api with Socket.io (web sockets) , Redis (Server Side Caching) ,Mongodb ,Express.js framework on top of Node.js


Languages

Language:JavaScript 52.3%Language:CSS 38.6%Language:HTML 9.1%