Stream-Sync Project Report (TG-10)
Stream-Sync Project Report (TG-10)
of the degree of
BACHELOR OF ENGINEERING
by
Supervisor:
1
CERTIFICATE
This is to certify that the project entitled “Stream-Sync” is a Bonafide work of “Kapil
Shandilya” (Roll No. 41) , “ Vinayak Singh ” (Roll No. 48) , “Aniket
2
Thesis Approval for Mini Project for T.E. for
Partial Fulfilment B.E.
Examiners
1. -----------------------------------------
2. ------------------------------------------
Date:
Place:
3
Declaration
I declare that this written submission represents my ideas in my own words and
where others' ideas or words have been included, I have adequately cited and
referenced the original sources. I also declare that I have adhered to all
principles of academic honesty and integrity and have not misrepresented
or fabricated or falsified any idea/data/fact/source in my submission. I
understand that any violation of the above will be cause for disciplinary action
by the Institute and can also evoke penal action from the sources which have
thus not been properly cited or from whom proper permission has not been taken
when needed.
--------------------------------
--------------------------------
--------------------------------
Date:-
----------------------------
4
ACKNOWLEDGEMENT
In completing this project report on project titled Stream-Sync I had to take the
help and guideline of a few respected people, who deserve my greatest gratitude.
I would like to show my gratitude to Prof. Uma Ade for giving me a good
guideline for project throughout numerous consultations. I would also like to
expand my deepest gratitude to all those who have directly and indirectly guided
us in writing this project report.
5
ABSTRACT
6
Problem statement
7
Table of Contents Page Number
1. Introduction
Introduction to Stream-Sync 09
Reason for the project 09
Aims & Objectives 10
Scope of the Project 10
Summary 10
2. Literature Review
3. Methodology
Research Methodology 14
Tools and Technologies Used 15
4. System Design
System Architecture 20
Functional Requirements 21
Non-Functional Requirements 21
User Interface (UI) Design 22
5. Testing
Testing Methodology 24
Test cases and scenarios 26
6. Future Scope
Proposed Enhancements 27
7. Conclusion 28
8
8. Appendices & References 29
1. INTRODUCTION
1.1 Introduction to Stream-Sync :-
We are pleased to introduce the future of entertainment with our Live Streaming
Platform. In an increasingly interconnected world driven by digital experiences,
our platform seeks to revolutionize the way we engage with and consume
content and have a chat with the creator in real time.
This innovative initiative caters to the increasing need for real-time engagement,
offering users a dynamic and interactive platform to engage in live events,
collaborate with creators, and share experiences in an immersive digital
environment.
9
Stream-Sync aims for providing the best platform to be on in this modern era of
content creation and consumption where other platforms are full of sketchy
schemes behind the scenes trying to scam the creator or the viewer
1.4 Scope :-
No individual is same and with the help of our project we provide an platform
to every creator to express their creative and unique personality to world wide
audience Live using internet
We also provide platform to a wide verity of audience looking for a place for
entertainment and interacting with the creator simultaneously
1.5 Summary :-
This project deals with the Development of an Live Streaming Platform namely
”Stream-Sync” where an user can be a creator or a casual viewer being able
to interact with each-others live with an minimal delay of 200ms
(Milli-Seconds).
10
2. LITERATURE REVIEW
2.1 Overview of Live Steaming Technologies :-
1. Content Delivery Networks (CDNs):
CDNs are essential for live streaming as they ensure reliable and scalable
delivery of content to viewers worldwide.
They use distributed servers strategically placed around the globe to
reduce latency and deliver content efficiently.
2. Streaming Protocols:
Encoders are used to convert audio and video signals into a format suitable
for streaming over the internet.
Software encoders like OBS Studio, XSplit, and Wirecast are popular
choices for live streaming, offering features like scene composition,
overlays, and streaming to multiple platforms simultaneously.
Hardware encoders provide dedicated encoding capabilities and are often
used for professional live productions, offering higher reliability and
performance.
11
2.2 Evaluation of Existing Platforms :-
1. YouTube Live:
2. Twitch:
Pros: Focused on gaming and esports, strong community engagement
features like chat, subscriptions, and emotes, monetization options
including ads, subscriptions, and donations, customizable channel pages.
Cons: Limited audience outside gaming niche, high competition, content
discovery challenges for new streamers.
3. Instagram Live:
Pros: Integration with Instagram platform, high engagement among younger
audiences, features like questions and polls during live streams, easy to use for
influencers and brands.
Cons: Limited monetization options, shorter maximum duration for live streams,
content discovery challenges.
12
2.3 WHIP Protocol
Once the ICE/DTLS session is set up, the media will flow unidirectionally from
the encoder/media producer (WHIP client) to the broadcasting ingestion
endpoint (media server). In order to reduce complexity, no SDP renegotiation is
supported, so no tracks or streams can be added or removed once the initial SDP
offer/answer over HTTP is completed.
13
3. METHODOLOGY
3.1 Research Methodology :-
14
3.2 Tools and Technologies used :-
Technologies Used:
HTML-5:-
TailWind CSS
JavaScript (JS)
Node JS
Next JS
TypeScript (TS) [ Framework ]
React JS
Shad-CN UI [ Components Library ]
Tools Used :
VS Code
Clerk [ Authentication ]
Prisma ORM [ Database and Server Connection ]
Aiven Console [ Online MySQL DataBase ]
LiveKit [ Live Streaming Platform SDK ]
UploadThing [ Live Stream Service Provider ]
NGROK [ Making Website Live Tool ]
15
HTML :-
Web browsers receive HTML documents from a web server or from local
storage and render the documents into multimedia web pages. HTML describes
the structure of a web page semantically and originally included cues for its
appearance.
TailWind CSS :-
JavaScript (JS) :-
ReactJS :-
NodeJS :-
Next. JS :-
17
client-side browser, Next.js extends this functionality to include applications
rendered on the server-side.
TypeScript (TS) :-
ShadCN-UI :-
With Shad-CN, you can quickly and easily create user interfaces that are both
stylish and functional. If you are looking for a way to build modern, stylish, and
accessible web applications with Next. js, then Shadcn is a great option.
VS Code :-
Visual Studio Code is a streamlined code editor with support for development
operations like debugging, task running, and version control. It aims to provide
just the tools a developer needs for a quick code-build-debug cycle and leaves
more complex workflows to fuller featured IDEs, such as Visual Studio IDE.
Clerk :-
18
Prisma ORM :-
Aiven Console :-
The Aiven platform takes the pain out of cloud data infrastructure management.
Aiven's all-in-one cloud data platform combines all the tools you need to
connect to the data services you use, on all major cloud providers.
LiveKit :-
LiveKit is an open source WebRTC stack that gives you everything needed to
build scalable and real-time video, audio, and data experiences in your
applications.
UploadThing :-
UploadThing is the easiest way to add file uploads to your full stack TypeScript
application. Many services have tried to build a "better S3", but in our opinion,
none found the right compromise of ownership, flexibility and safety.
NGROK :-
19
4. System Design
Back-End Services:
Authentication and Authorization: Implement mechanisms for user
authentication and authorization to ensure secure access to the system.
Database Management: Manage databases for storing research data, user
profiles, survey responses, interview transcripts, and analytical results.
Business Logic: Implement business logic for processing user inputs,
conducting data analysis, generating reports, and delivering insights.
20
4.2 Functional Requirements :-
Good Internet
NodeJS Version 18.20 or ABOVE
Shad-CN UI
Prisma
Aiven Console
UploadThing
LiveKit
NGROK
Clerk
22
Sign-Up Page
Log-In Page
Creator DashBoard
23
5. Testing
24
Set up a testing environment that mirrors the production environment,
including hardware, software, networks, and data.
Deploy the system components, testing tools, and dependencies needed for
testing.
Unit Testing:
Conduct unit testing to validate the functionality of individual system
components, modules, and classes.
Write unit tests using frameworks like JUnit, NUnit, or PyTest to verify
that each unit behaves as expected and handles various inputs and edge
cases correctly.
Integration Testing:
Perform integration testing to verify the interaction and interoperability of
different system components and modules.
Test integration points, data flows, and communication channels between
system elements to ensure seamless operation and data consistency.
System Testing:
Execute system-level tests to validate end-to-end functionality,
performance, and usability of the entire system.
Test core features, user interactions, data processing, analysis, and
reporting capabilities to ensure they meet requirements and user
expectations.
Acceptance Testing:
Conduct acceptance testing to validate that the system meets stakeholder
expectations and business requirements.
Involve stakeholders, end users, and domain experts in reviewing the
system, providing feedback, and verifying that it meets their needs.
Performance Testing:
25
Perform performance testing to evaluate the scalability, reliability, and
responsiveness of the system under various load conditions.
Use tools like Apache JMeter, LoadRunner, or Gatling to simulate realistic
user traffic and measure system performance metrics such as response
time, throughput, and resource utilization.
Security Testing:
Conduct security testing to identify vulnerabilities, threats, and risks
associated with the system architecture.
Perform penetration testing, vulnerability scanning, and code review to
assess the effectiveness of security controls and safeguards.
Usability Testing:
Conduct usability testing to evaluate the user experience, accessibility, and
ease of use of the system interface and features.
Involve representative users in performing tasks, providing feedback, and
identifying usability issues or pain points.
Regression Testing:
Perform regression testing to ensure that changes, updates, or fixes do not
introduce new defects or regressions in existing functionality.
Re-run previously executed tests and verify that all previously
implemented features and functionalities still work as expected.
Documentation and Reporting:
Document test results, findings, defects, and recommendations in a
comprehensive test report.
Provide detailed insights into the system's strengths, weaknesses, and areas
for improvement, along with actionable recommendations for stakeholders
and development teams.
26
5.2 Test Case and Scenarios :-
The Software was tested under an heavy usage 5-10Streamss running at a time
together with such a loadand still it worked flawlessly while ensuring all the
features are accessible and usable throughout the live session.
6. Future Scope
27
7. Conclusion :-
In conclusion, the system architecture proposed for evaluating live streaming
platforms represents a meticulously crafted framework designed to facilitate
comprehensive analysis, insightful findings, and informed decision-making
within the dynamic landscape of online media consumption. By integrating
robust testing methodologies, user-centric design principles, and cutting-edge
technologies, this architecture endeavors to empower researchers, content
creators, and industry stakeholders with a powerful toolkit for understanding,
optimizing, and harnessing the potential of live streaming platforms.
28
Through rigorous requirement analysis, meticulous planning, and diligent
execution, this architecture aims to ensure the reliability, scalability, security,
and usability of the evaluation platform, thereby fostering trust, engagement, and
collaboration among users and stakeholders. From data collection and analysis to
reporting and presentation, every aspect of the system is meticulously crafted to
deliver value, insights, and actionable recommendations that drive innovation
and excellence in the realm of live streaming.
Ultimately, this system architecture embodies a commitment to excellence,
innovation, and user empowerment, poised to make a meaningful impact in the
ever-evolving landscape of live streaming technology. By embracing the
challenges of testing, iteration, and continuous improvement, it aspires to be a
catalyst for positive change, fostering a future where live streaming platforms
thrive as vibrant hubs of creativity, connectivity, and community engagement.
29
30
31
32
References :-
Next JS Documentations
https://nextjs.org/learn?utm_source=next-site&utm_medium=homepage-
cta&utm_campaign=home
Shad-CN UI
https://ui.shadcn.com/docs/installation/next
33
PRISMA ORM
https://www.prisma.io/docs/orm/overview
Node JS Documentations
https://nodejs.org/docs/latest/api/
Research Links
https://www.ietf.org/archive/id/draft-ietf-wish-whip-01.html
https://www.youtube.com/watch?v=Y_CrHrEYwR4
https://www.youtube.com/@codewithantonio
https://itgenio.net/blog/advantages-and-disadvantages-of-using-twitch
https://www.reddit.com/r/NewTubers/comments/s11dhu/
youtube_a_good_career_or_waste_of_time/?rdt=36718
https://www.twitch.tv/jobs/en/#:~:text=Twitch%20is%20a%20remote-
friendly,way%20that%27s%20best%20for%20you.&text=Meaningful
%20experiences%20empower%20us%20to%20do%20our%20best%20work .
34