Skip to content

aboelkassem/Listify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Markdownify
Listify

Issues

Listify is an interactive platform where users can Join an Online Room. Your room includes Songs, and songs can be added to your room's Queue, Which enables all the connections in the same room to watch the same song/video at the same time. Including Streaming experience like having a nice chat in the room and Currency to upvote the song in the queue to play first. This currency will gain while you are active in the room.

Inspired Idea

Imagine you are attending your friend's birthday party and guests have song requests they would like to play but differ in tastes of music. Or imagine board game night where everyone has differing music tastes but only 1 device connected to the speaker. Or imagine a situtation where your significant other is remote but you would like to have a shared music experience. Or imagine growing your own following by hosting your own music request channel where members from around the globe can request, upvote, and suggest other songs, or imagine an application to create and manage your own playlists and/or can share them with a global community

Technical Points

  • Backend web api build with ASP.NET core 3.1
  • ORM with SQL Server via Entity Framework core
  • Real time communication via SignalR
  • OAuth with IdentityServer4
  • Object Mapping with AutoMapper
  • Frontend build with Angular 10
  • UI Design with Angular Materials
  • Payment Integration with Paypal Gateway Api

Features

  • The whole project is real-time interactive with many users at the same time
  • Build with most updated technlogies
  • Every user has its own room so can request a song to be played and songs can be added to your room's Queue
  • When users connect to a hosted room, their player begins to play where the host is at in the song, and any skipping / pausing of the video by the host will be reflected in your Player.
  • You will accrue a Currency for the active Room when the player is playing that can be used to Request / Queue Songs or Upvote already queued songs
  • Hosts have the ability to Skip a song in the Queue, and all Currency spent on it is refunded to the viewers.
  • Every room has a chat where the host and viewers can communicate. You can click on a user's username in the chat to open their profile.
  • You can see who is following your room or another host's room
  • You can see the users who are currently online for your room
  • You have Settings Page which enable you to
    • Change your Username, Room Code, Room Title
    • Change your Profile Title, Description
    • Change your Favorite Color
    • Hide your room, lock it with key, Determind if accepts a songs from other connections
  • Platform supports both private playlists and community playlists
  • Playlists can also be imported from YouTube and Spotify
  • Mature Content Filter for room chat, room title, description
  • Purchasing System for Currencies, More Playlists, More Songs for each Playlist

Links

Contributors

Demo and Screen Shots

you can watch this demo video [In Arabic] that explain how to use this platform