Coder Social home page Coder Social logo

cmuth001 / chat-room-application-php-idyeah Goto Github PK

View Code? Open in Web Editor NEW
8.0 3.0 8.0 5.45 MB

Developed a messaging chat room website like Slack using a LAMP stack, jQuery, PHP, and MySQL.

PHP 55.91% CSS 3.97% JavaScript 10.98% HTML 1.48% TSQL 27.66%
php apache linux mysql jquery javascript db-schema slack gravatar-api github-api recaptcha-verification

chat-room-application-php-idyeah's Introduction

idYeah!

(A messaging chat room website like Slack using a LAMP stack)

Live Site    |    Survival Guide

Introduction

      We took Slack to be our model on which our website was to be based. However, we have also added few additional features in order to meet the expectations of our target audience. Slack is a chatroom which is an acronym for Searchable Log of All Conversation and Knowledge. As the name indicates, all the content is searchable in Slack. Basically, it is a place for collaboration that works by sending an invitation by the admin or owner to work on a specific project. However, it also has room for direct messaging between the users present in the chatroom.

      idYeah! (platform to share and collaborate on ideas) was made for a similar purpose. However, there are ways in which both the chatrooms differ. In idYeah!, only select content is searchable. Also, users can post code snippets along with pictures and URLs as messages in any group and take feedback or suggestions for the same. Basically, the code snippet feature in our chatroom is to bring ideas to life. we have seen a number of websites accepting the credentials of one of the reputed or authentic sites used by a person. Considering this, GitHub based login was implemented. Users can also use a globally recognized avatar as their default image. Account security is a priority, so an optional two-step authentication has been provided. One additional feature is: existing users are gauged based on their participation in the channels on their profile page. Also, a graphical view of their participation is provided in the user options.

Key Functionalities:

  • Can create new public and private channels and add registered members to that channel.
  • Archiving a channel.
  • Like and Dislike for a post.
  • Admin can delete posts from public channels .
  • Admin can delete a member from the public channel.
  • User can upload images, documents and code snippets.
  • User Activity Graph.
  • Two Factor Authentication .
  • User profile search.
  • Login with GitHub.
  • Provided an option to use Gravatar image.

DataBase Schema Design

DB Schema Design
DB Schema Design

Two-step authentication

      Two step authentication has become a common method to implement a secure login process, though we made it available as an option to the user. The user can activate or deactivate this method of authentication by clicking the on and off button in the menu. Once this option is activated the user is sent an email at the time of logging in after verifying his password and captcha, with a one-time passcode prompting authentication. After entering the passcode present in the email, it is verified and the user is redirected to the homepage. Once the passcode is generated by the passcode generator, it is passed through the session variable to the evaluation page and is evaluated against the passcode entered by the user and if it is a match, the user is allowed to the home page.

[2FA OFF] [2FA ON]
2FA OFF 2FA ON
Sample Messaging Room
Sample Messaging Room

GITHUB Integration

      Users have an option of logging in to our website using GITHUB credentials. This is achieved by using the services provided by the GITHUB. Once the user clicks on the Login with GITHUB option, the user is taken to a new page where he is prompted to enter his credentials and is authenticated by GITHUB. GITHUB checks his credentials and sends a response code denting a success or a failure. If the response denotes a success, the user is redirected to his home page, else he is asked to enter the correct credentials. If the response code denotes a success, along with the response user details are also sent which are used to compare with the user list in the Database and provide the user with his information.

GITHUB Login
GITHUB Login

Graphs for Metrics

      Every user’s participation is depicted by the means of a graph. A user’s messages and reaction in a channel are the parameters that are used to measure the performance metrics. The overall performance in a channel is calculated on a scale of 100 units. The metrics keep varying for every new post or reaction by a user.

User Metrics Graphs
User Metrics Graphs

chat-room-application-php-idyeah's People

Contributors

cmuth001 avatar jbrunelle avatar npabb001 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.