🎶 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.
2023-10-21.22-03-06.mp4
-
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.
-
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.
-
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.
- 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.
-
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.
- 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.
-
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.
-
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.
- 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.
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.