I am attempting to develop a mobile social media application that will focus on allowing users to broadcast live streams, view saved live streams, and challenge other users. Additionally, users will be able to upload an audio file (mp3, wav, etc) to a repository which they or other users can use as a background track for their live stream.
The application will need basic social media functionality such as:
Stream Feed (will show recent broadcasts and challenges of users that are followed)
The ability to follow other users
The 'challenge' feature will allow one user to challenge another either immediately or in a scheduled fashion. I will provide a document detailing this feature further upon awarding the project. This will allow 2 users to co-host a broadcast and will be divided into 3-5 rounds (with the option to choose round length, ex: 30 sec, 60 sec).
Another primary component of the application will be a geo-located "leaderboard" that will display a ranked list of users within the local area (state/province) of the person viewing the leaderboard, but will have the option to sort via country or city as well. User's profiles will have a "score" which is determined by the amount of overall views on their streams and the amount of followers they have. This is also detailed further in the document.
There will also be a "trending" area that will list trending streamers, challenges, and "uploads". In this context an upload is the previously mentioned mp3/wav file.
I prefer that the application be written using Flutter/Dart, though I am not completely opposed to React Native. For the streaming components, we will be using the "Dacast" platform so any bidders with relevant experience using Dacast APIs will take priority. The rest of the application backend will utilize Google App Engine (containerized, built for use with kubernetes, etc). For the database of the application, I would prefer Postgresql + a golang REST API.
Lastly, I will need an administrator panel for moderating/administering the community around the application which will be a web application. Users with access to this application will be able to block users from streaming, ban users and IPs , end currently running stream, and delete saved streams and uploaded Mp3/wav files. This panel will essentially be a CMS for me and my team to manage the content submitted to the app.