Game Stream Win - Join the Pros on ProStream
ProStream is a low latency video streaming platform just like Twitch
Explore ProStream »
ProStream is a low latency video streaming platform just like Twitch. Streamer can share and stream their content, collect tips from their fans and withdraw the money into their bank account. A viewer can watch any live stream and they can recharge their wallet to tip their favorite streamers.
ProStream is built as a team of three members
. The backend of ProStream is built on Django
and the client app is built using React
.
ProStream Django Backend APIs is deployed on AWS EC2
in Ubuntu 22.04 server.
ProStream React Client is deployed on Vercel.
The DNS for the ProStream
platform domain for APIs is hosted on Route53
.
-
The authentication system of ProStream is built from scratch. No
3rd party
packages has been used. -
Users can request
OTP
while login if they haveforgotten their password
to access ProStream. -
Set new password using
OTP
if password is forgotten.
-
A regular user can register as a streamer. After registration, the
user
can live stream their content after registering as astreamer
. -
Non-verified
streamers can only stream their content, in order toaccept tips from viewers
, they have to start an accountverification
process. -
The account verification is approved upon successful documentation verification uploaded by the streamer.
-
Once approved, The streamer start earning money
accepting tips from viewers
. -
ProStream takes
22%
commission from the earnings of the streamer, and the rest of the money could be withdrawn to the bank account of the streamer. -
Streamer can send a
customize message
to theemail
of thebiggest tipper
of the streamer as anappreciation gesture
. -
The streamer should follow the ProStream `rules and policies.
-
The streamer is subject to be banned from ProStream platform after repeatedly violating the
terms and conditions
of live streaming in ProStream platform.
-
Any user can register in the ProStream platform and start watching their favorite streamer's contents.
-
User can recharge their wallet to tip to support their favorite streamer.
-
Wallet money from user's account can not be withdrawn to their bank account.
-
Viewer can
follow/unfollow
astreamer
or acategory
.
-
While starting a live stream, the streamer has to declare any potential brand promotion content, recorded content they want to stream.
-
The streamer should flag is the stream is an age restricted content or not meant for general viewership such as
extreme activities
,dark content
etc. -
Any live stream
could be reported
by the viewers to the authority of ProStream for potential violation ofterms of conditions
of ProStream. -
Stream can be scheduled.
-
Stream goes live under a category.
- Streamers can form a
team
and work together as a content creators.
- ProStream administration has authority to manage ProStream without any discretion.
ProStream administration are subject to perform the following duties
Document Verification
Payment Processing
Reported Content Analysis
Warn/Ban Streamer for t/c violation of ProStream
ProStream is built using the below tech-stacks.
a. Django as backend.
b. Django Rest Framework for API
c. PostgreSQL for database.
d. AWS S3 to store static and mediafiles.
e. Agora to process streaming.
f. SSLCommerz for payment gateway.
g. AWS EC2 Ubuntu 22.04 server to host the Django backend APIs.
h. Vercel to host the React client app.
-
ProStream is a team project. The first challenge we faced as a team was to communicate with the team members for a smooth workflow. We were a diverse team. As I, Mahboob Alam, am from India, and the other two members Abul Bashar Atiq and Abdullah Al Saimun of ProStream was from Bangladesh.
-
While building an application like ProStream, we struggled in
database design
. We have researched and builtPoC
of database design before integrating it into the ProStream platform.
My (Mahboob Alam) Learning
-
I have learnt to communicate with diverse team a remote software developer.
-
I had the opportunity to manage and maintain the the project from
dev-to-production
, I have gathered valuable understanding how to shipbug-free
software. -
I had the opportunity to deploy the project in
AWS EC2 Ubuntu 22.04
server. While doing so, I have gained practical understanding of provisioning and deploying a project to aCloud VPC
. -
I was responsible to
API design
anddatabase design
, I have learnt best practices of database design,UML Diagram
,ERD Diagram
.
-
The SDLC of the project taught us how we as a team can research, plan, and choose the right and best suited option to integrate to a project without re-inventing the wheel for faster software delivery.
-
We as a team learnt how a team-play works and how as a team we can collaborate to bring better result.
-
As a team, we have learnt from each others experiences and valuable inputs during the meetings.
-
We used Jira to manage our tasks. We were not limited to met only during stand-up meetings, we were prompt to meet if there was an emergency during the development or production of ProStream.