https://github.com/trumanjchan/socketchat
An online chat app where users can message everyone at once or privately message their friends!
https://github.com/trumanjchan/socketchat
expressjs nodejs socket-io
Last synced: 3 months ago
JSON representation
An online chat app where users can message everyone at once or privately message their friends!
- Host: GitHub
- URL: https://github.com/trumanjchan/socketchat
- Owner: trumanjchan
- Created: 2022-03-26T00:07:15.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-02-10T01:11:25.000Z (over 3 years ago)
- Last Synced: 2025-06-04T08:45:47.106Z (about 1 year ago)
- Topics: expressjs, nodejs, socket-io
- Language: HTML
- Homepage: https://wschat.onrender.com
- Size: 647 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Real-time web app for chatting!
Chat globally, or click names in the player list to private message multiple people at once!
### Color Codes
* Blue - Everything relating to you, such as messages you send
* Black - Incoming global messages sent by other players
* Gray - Incoming whisper messages sent by other players
* Green - Player Joins
* Red - Player Disconnects and Server Offline
* Orange - Whispering statuses only you see
### Chat Features
* Login modal where each player can name themselves uniquely
* Welcome, Disconnect, and Server Offline chat announcements
* Player-has-joined, Received-PM, and Player-has-left sound notifications
* Sound toggling
* Total # of online users
* List of connected users
* Group private messaging
* '{user} is typing' chat notification
* Minecraft-style font
* Responsive web app
### Run This Program Locally
1. `npm install`
2. `node index.js`
#### Sources Used
###### Starting Code
* https://socket.io/get-started/chat#introduction
###### Nicknames
* https://stackoverflow.com/questions/7702461/socket-io-custom-client-id
###### Popping
* https://stackoverflow.com/questions/10024866/remove-object-from-array-using-javascript
###### Whispering
* https://www.codegrepper.com/code-examples/javascript/javascript+get+value+of+clicked+element
* https://stackoverflow.com/questions/13964155/get-javascript-object-from-array-of-objects-by-value-of-property
###### Display static images
* https://stackoverflow.com/questions/15309688/express-js-how-show-image
###### Fonts
* https://www.dafont.com/minecraftia.font
###### Images
* https://www.flaticon.com/free-icon/christmas-sock_3764716?term=sock&related_id=3764716
* https://www.flaticon.com/free-icon/github_4494688?term=github&page=1&position=45&origin=search&related_id=4494688
* https://www.flaticon.com/free-icon/sound-editing_2626036?term=sound&related_id=2626036
###### Sounds
* https://freesound.org/people/GabrielAraujo/sounds/242501/
* https://freesound.org/people/Leszek_Szary/sounds/133283/
* https://freesound.org/people/cabled_mess/sounds/350862/
###### Mobile friendly
* https://dev.to/maciejtrzcinski/100vh-problem-with-ios-safari-3ge9
* https://stackoverflow.com/questions/2989263/disable-auto-zoom-in-input-text-tag-safari-on-iphone
* https://stackoverflow.com/questions/55867558/css-how-to-allow-the-hover-state-only-on-devices-which-support-hover