Giter Site home page Giter Site logo

geek-chat's Introduction

GeekChat

What is GeekChat?

GeekChat is a simple bi-directional communication app where users can join rooms and have live text messaging with other users present in the room. It works on the functionalities of Web Sockets and simple HTTPS requests.Visit here

And don't forget to star โญ the repo, it helps ^^.

Tech Stack

  • Nodejs
  • Express
  • Socket.io
  • HTML
  • CSS(SCSS)
  • Javascript

Local Setup

Pre-Requisites

How to Setup?

  • Fork the repo.
  • Clone it to your local setup by using the command git clone <repo link>
  • Run the following command in the root directory of the project npm install
  • After the process is completed run the command node app.js
  • The website will be live on localhost:3000

Brief Project Structure

/
|-- public/			
    |-- css/           #Contains the scss styling files
    |-- images/        #Contains images used in the project
    |-- js/            #Contains client side js files
    |-- index.html     #First webpage of the project
    |-- main.html      #Main chatting page of the website
|    
|-- utils/
    |-- message.js     #Contains all functions and variables concerning Chat Messages.
    |-- users.js       #Contains all functions and variables concerning Users
|    
|-- app.js             #Main Server file that setups and runs the node server.

Guidelines

Please help us follow the best practice to make it easy for the reviewer as well as the contributor. We want to focus on the code quality more than on managing pull request ethics.

  • Single commit per pull request and name the commit as something meaningful, example: Adding <-your-name-> in students/mentors section.

  • Reference the issue numbers in the commit message if it resolves an open issue.Follow the PR template strictly.

  • In case you want to change the styling of the website do not change the .css files instead change the .scss files and then compile them.More details

  • Do not use unneccesary variables or functions and follow a easy and understandable code structure with proper comments.

  • Provide the link to live heroku pages from your forked repository or relevant screenshot for easier review.

  • Pull Request older than 3 days with no response from the contributor shall be marked closed.

  • Do not make PR which is not related to any issues. You can create an issue and solve it once we approve them.

  • Avoid duplicate PRs, if need be comment on the older PR with the PR number of the follow-up (new PR) and close the obsolete PR yourself.

  • Be polite: Be polite to other community members.

Communicate

Whether you are working on a new feature or facing a doubt please feel free to ask us on our discord channel. We will be happy to help you out.

geek-chat's People

Contributors

99anjali avatar a-spiral-forge avatar abhijeet452 avatar agrimverma avatar ashutosh3027 avatar asingh1601 avatar atif0604 avatar batflarrow avatar codesanta142 avatar diyawaghmare avatar gudelakshmi avatar homewardgamer avatar isharawat avatar janhaviiii avatar karankc23 avatar ksathwik03 avatar mayank-kr avatar mitul16 avatar mukilan-2003 avatar neha-oo1 avatar raghavgoel25 avatar seriousconjurer avatar shlesh avatar shreya-0508 avatar shubhi2002 avatar sneh16shah avatar sravyakaviti avatar try-catch-stack avatar varunkt001 avatar vineethkumarm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

geek-chat's Issues

Add auto scroll feature.

Currently, the Chatting page cannot scroll to the bottom automatically when new messages are added. You need to implement this feature.FYI: It can be done with just one line of code!

Add a dark mode feature.

Implement a dark and light theme feature. The dark mode should look good, not just the inversion of colours, also store the mode preference in the local storage also.

Style the messages send and received differently

Currently all the messages are styled in the same way. I want you to differentiate the styling between the messages send and those received by the User. Make the styling for both light and dark mode. End result should be like this

Text_Message_Chat_window
.

Show typing status of Users.

In this Issue, you have to find a way so that if a user is typing a message, then it shows that XYZ is typing ... with slight animation of three dots. Also if more than one user is typing a message it should show User1, User2 are typing ...
For more than 3 Users it should show Many people are typing ... just like in discord. Implement this feature with a nice UI and understandable code.

Fix captcha not loading Issue

In the Heroku deployment sometimes the Recaptcha is not loading. This happens when an HTTPS connection is made. check the console logs for more details on this.

Change formatting text messages

Currently Users can send HTML tags as text messages and they are rendered in that way.I want you to change that to allow markdown formatting in the messages and not HTML text formatting.Send a live heroku deployment link when you add your PR for the Issue

Setup project and add yourself in contributors.md

Setup the project and attach a screenshot of the chatting page in the PR. Also, add yourself to the CONTRIBUTORS.md file !
P.S. No need to claim the issue just create a PR for this and it will be merged!

Add reply to message feature

Add a feature where users can reply or quote other User's messages. You can take examples of UI implementation from Whatsapp or Discord. Add this feature with a fitting UI improvement also.Also, keep in mind to use an effective coding algorithm in this make sure the UI is good too.

Add delete message feature

Allow Users to Delete messages sent by them, these messages will be deleted across all Users present in the room. You have to think of a nice UI to implement this feature in the current UI.

Implement feature for avatars.

Things to do in this Issue-

  • Implement a choose avatar screen on the front page.
  • In the User section of the chat page show the avatar along with the Username.
  • In the chatting section display the avatar with every message of the User.
  • The UI should be clean and perfect, which should match the current UI of the app.
  • Crop the avatars from the below image.
    Avatars (1)

Format chat messages options

Currently, as we hover over the message it shows three options reply, edit and delete, this has made the message very crowded and makes the UI very difficult. Fix this by adding three dots on which you can hover to find all the three options in a nice manner. Be sure to match the current app UI

Refactoring the code

In this Issue, you are required to-

  • Remove all the console.log
  • Remove unnecessary comments
  • Give all the code proper structuring and add a format script to format all the javascript in the code using prettier.
  • Add comments wherever necessary.

Style GeekChat bot messages differently

Currently the messages send by the Geek-Chat bot are styled in the same way as all the other messages.Implement a way to style it differently and in a better UI.
This Issue will be assigned to the first 3 people to claim it.You all will be required to submit your PRs before 10 October 10:00pm.The PR with the best styling will only be merged and given points, rest will be rejected.

Remove blank message bug.

Currently, on adding a space or few spaces, we are able to send the messages. This creates a blank message in the room. Fix that.

Fix theme transition

The transition on the first page is not consistent, the background changes faster than the text and thus the transitions look weird. Also when changing front dark to light mode the background changes abruptly without any effect. Fix that.

Save User data in local storage.

Implement local storage and show the last joined room on the front page dropdown list. Also, auto-fill the last used username on the front page form.

Change the message sending div.

Currently, the message sending input box and the send button is square-shaped and of an old theme. I want you to turn it more trendy. Turn the send button into a Floating Action Button with an arrow symbol and make the input element rounder.Use the Material UI FAB buttons only.Also make sure you implement the colours for dark mode also.

Show online Users at the front page

Show the number of online users in a room at the front page in front of the respective room name in the drop-down menu.Also don't forget to share a live heroku link when you create the PR.

Add Edit Message Feature

Allow users to edit the messages sent by them, also, update the time of the message with the update time and add a small (edited) text along with the message. Implement this feature keeping in mind the current UI of the webApp.

Improve front page layout

Improve the Frontpage layout. Make the front page layout better and more styled. If the work done is good Points can be increased too.

Allow Users to create new rooms.

In the Issue, you have to allow Users to create new rooms. These rooms will be temporary and will remain active on the website until there is no one in the room.

Implement rooms feature.

Currently, different rooms functionality is not present in the chat app. The final result should be that one person that enters the room can talk and chat with only those people that are present in the same room, also display the room name in the Room Name section of the main page. Implement that feature with proper code structuring.

Allow Users to add custom avatars.

Allow Users to add custom avatars to the already provided set of avatars, these can be any png, jpg, jpeg images that can be set by the User as custom avatars.

Show online users in a specific room.

Currently the left side panel has only some placeholder text and doesn't show the active users in the room. Implement the feature, also create a live heroku link when you add your PR.

Redesign the complete UI of the GeekChat app

In this Issue, you have to redesign the complete UI of the GeekChat app, this includes both the front page and the main page. You have to redesign it using Figma. Check the Design folder for the tempate.json file.

You have to follow the template and create a file named <GITHUB_USERNAME>.json. In the PR that you will create, include screenshots of the redesign also.

  • Designs need to be minimal and intuitive.
  • You have to make designs for both dark and light mode.
  • Only the top 3 designs will be merged.
  • The deadline to submit your PR is 16th Oct.
  • This is a open for all issue so no need to claim it.
    All the best!

Correct time on heroku deployment

As of now the time showing in the Heroku deployment of the web App is wrong. Fix that issue. Provide a live Heroku link with the PR.

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.