Exochat
Next Gen Content Based Interaction
This chrome extension allows people to communicate and express there thoughts in a whole new way using hop.io and modern technology. Take Advantage of our application's live chat feature and timestamp marking on youtube videos to take your notetaking experience or brainstroming session to the next level.
Inspirations
People
- The Coding Train (Youtube)
- Gary Simmons aka DesignCourse (Youtube)
- Brad Traversy aka Traversy Media
Apps
- Liner
- Discord
- Youtube
How I Built This Project?
- Started with a barebones chrome extension
- Landing Page Design & Implementation
- Simple Live Chat Integration using hop.io API
- Server-side Message Persistence using Express & MongoDB
- Simple username and password authentication
- DOM Api from chrome
- Video Timestamp Manipulation using DOM element manipulation
What I Learned?
- I learn't how the chrome extension development works.
- The Relationship between content-script, page-script and background-workers
- Design Techniques
- Color Scheme Selection
- Font Selection
- Web Socket Instant Updates
Challenges I Faced?
- Hop.io helped a lot in instant messaging side.
- State Management and Updates
- Authentication
- Unclear Docs for chrome extension development by google
- Large Package Sizes
- Manifest.json Fequently changing structure and requirement (chrome extension)
Experience with Hop?
Extremely good, very nice UI design and UX
What would i have done differently?
Better Code Structuring so better productivity in later stages of development
Whats next?
- Better UI
- Private Room
- File and Media Sharing
How to run this on your local machine?
Follow these steps:
Check the alternate commands if you face issues
Tested on node v16
Install mongodb on your localmachine and get connection url string for exochat database.
or run the below command if you have docker
docker run -d -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=secret -p 27017:27017 mongothen, you connection url will be : mongodb://admin:secret@localhost:27017/exochat
Update the Connection string in "exochat-server/.env"
Install The Packages in "exochat-server" folder
npm installGo to "exochat" folder and Install the packages (if the package install doesnt work, try using -f )
npm installIf the packages are not installed then, run
npm install --legacy-peer-depsIf that also doesn't work, just extract the "build.zip" file and use it to load extension
Start the express server by going to "exochat-server" and run
npm run startGoto the "exochat" folder and run
npm run buildGoto "chrome://extensions" and enable developer mode ( toggle on the top right of the screen )
Click Load Unpacked
Choose the "exochat/build" folder
Voila! You have loaded the extension.
Create a Exochat account
Go to a youtube video url
Start Chatting
Log in or sign up for Devpost to join the conversation.