/ProStream

Game, Stream, Win - Join the Pros on ProStream. ProStream is a low latency live streaming platform just like twitch.

Primary LanguageJavaScript


Logo

Game Stream Win - Join the Pros on ProStream

ProStream is a low latency video streaming platform just like Twitch

Explore ProStream »

General Information

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.

Deployment

Deployment Information

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.

Features

Features of ProStream

A. Authentication
  • The authentication system of ProStream is built from scratch. No 3rd party packages has been used.

  • Users can request OTP while login if they have forgotten their password to access ProStream.

  • Set new password using OTP if password is forgotten.

B. Streamer
  • A regular user can register as a streamer. After registration, the user can live stream their content after registering as a streamer.

  • Non-verified streamers can only stream their content, in order to accept tips from viewers, they have to start an account verification 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 takes22% 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 the email of the biggest tipper of the streamer as an appreciation 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.

C. Viewer
  • 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 a streamer or a category.

D. Stream
  • 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 of terms of conditions of ProStream.

  • Stream can be scheduled.

  • Stream goes live under a category.

E. Team
  • Streamers can form a team and work together as a content creators.
F. ProStream Administration
  • 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

Tech Stack of ProStream

Tech Stack

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. 

Watch in Action

A. Long Video (Describes all the features)

Watch the video

B. Short Video (Only core features)

Watch the video

Challenges and Learnings

Challenges

  • 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 built PoC of database design before integrating it into the ProStream platform.

Learning

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 ship bug-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 a Cloud VPC.

  • I was responsible to API design and database design, I have learnt best practices of database design, UML Diagram, ERD Diagram.

Learning as a Team
  • 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.

Languages and Tools:

aws css3 django git heroku javascript linux nginx nodejs postgresql postman python react redux tailwind

Connect with me:

imahboob_a i-mahboob @imehboob @imehboob mahboob-alam