Skip to content

A platform to watch youtube videos synchronously together and chat in real-time

Notifications You must be signed in to change notification settings

khush2706/fullhouse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction and Motivation

🎶 Motivation: I started the journey to create FullHouse because, after Discord removed music bots, my friends and I felt the need for a shared online space where we could hang out, listen to music, and chat. Discord used to be our go-to spot for social interaction, but with the d of music bots, we saw an opportunity to create a platform that brings back the joy of shared music experiences, introduces innovative features, encourages real-time interactions, and offers seamless music synchronization.

🚀 Inspiration: FullHouse is the result of our passion to recreate and enhance the shared music experience. It's about revitalizing the heartwarming social aspect of online communities, making digital spaces feel just as warm and inviting as physical ones.

Demo

2023-10-21.22-03-06.mp4

Features

1. 🏠 Create and Join Rooms

  • Create Your Own Virtual Room: With FullHouse, users can create their own virtual rooms, setting the stage for unique music and social experiences. These rooms serve as a digital gathering place where you and your friends can hang out.

  • Join Existing Rooms: In addition to creating rooms, FullHouse allows users to join existing rooms, making it easy to connect with friends or like-minded individuals who share your musical interests.

2. 🎵 Create Your Own Playlist

  • Build and Manage Playlists: FullHouse empowers users to curate and manage their own playlists. You can add your favorite tracks, rearrange them, and customize the musical experience within your room.

  • Personalized Music Selection: Whether you're in the mood for some upbeat tunes, soothing melodies, or a mix of everything, your playlist is your personal audio canvas.

3. 🎶 Listen to Songs Synchronously

  • Real-Time Music Playback: One of FullHouse's core features is the ability to enjoy music synchronously with your friends. As songs play in the room, everyone hears them simultaneously, creating a shared listening experience regardless of geographical distances.

  • Unified Musical Journey: Whether you're hosting a virtual dance party, having a chill-out session, or simply hanging out with friends, FullHouse ensures that everyone in the room stays in perfect harmony with the music.

4. Voting

  • Vote to skip a Song: Users can like or dislike the current song. If at least half of the people in the room have disliked the music, it will be skipped. Although this feature is a prototype right now, I plan to execute this as a feature end-to-end.

5. 💬 Chat in Real Time

  • Real-Time Chat Functionality: Communication is key to any social experience, and FullHouse offers a real-time chat feature that allows users to interact seamlessly. You can chat with your friends, share thoughts about the music, or simply catch up in real time.

  • Enhanced Interactivity: The chat feature enhances the overall interactivity of the platform, making it easy to coordinate, exchange ideas, and build connections with others in the room.

6. 🔍 Explore Music Together

  • Discover New Music: FullHouse is an excellent platform for music discovery. Whether it's introducing friends to your favorite songs or exploring new tracks together, it creates an atmosphere where musical exploration is encouraged.

7. 🔐 Security

  • User Authentication: FullHouse employs robust user authentication mechanisms, including JWT-based authentication. This ensures secure and reliable user access to the platform.

  • User Accounts: To ensure a secure and personalized experience, FullHouse offers user account registration and authentication.

8. 🚀 Robust Technologies

  • MERN Stack: FullHouse leverages the power of the MERN (MongoDB, Express, React, Node.js) stack, ensuring a robust and scalable foundation for the application.

  • Socket.IO: Real-time room functionality is achieved through the use of Socket.IO, enabling seamless synchronization of music and chat.

  • Redis Integration: The project incorporates Redis for faster data access and optimized read/write operations, contributing to a smooth and responsive user experience.

Challenges

  • Given this is my first fullstack project, everything in the backend domain was very new to me.
  • Getting the YouTube embed to synchronize the currently playing song for all connected users was extremely difficult. Many bugs went unnoticed initially.
  • I decided to use Styled-Components for the flexibility it provides in building dynamic styled components, but the overhead of writing my own CSS slowed down the development process.

Future Scope

FullHouse is an evolving project with exciting possibilities on the horizon. Here's a glimpse of what the future holds:

🔍 Seek Feature: I am actively working on introducing a seek feature that will allow users to skip forward or backward within songs. This enhancement will provide greater control over the music playback experience, ensuring you don't miss a beat.

🎮 Real-Time Games: As a step towards reimagining social interaction, I'm exploring the inclusion of real-time games within FullHouse. Imagine playing interactive games with your friends while listening to music, all within the same platform. This addition will take the concept of shared experiences to a whole new level.

Implementing end-to-end testing using Jest: I also plan to learn Jest and add test suites for both frontend and backend.

I am constantly striving to make the platform more engaging and interactive, and your feedback will play a significant role in shaping its future.

About

A platform to watch youtube videos synchronously together and chat in real-time

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published