filecoin-project / devgrants

👟 Apply for a Filecoin devgrant. Help build the Filecoin ecosystem!
Other
371 stars 308 forks source link

Open Grant Proposal: Video Chat App - Web3RTC #1021

Closed utkucy closed 1 year ago

utkucy commented 1 year ago

Open Grant Proposal: Video Chat App - Web3RTC

Name of Project: Video Chat App - Web3RTC

Proposal Category: app-dev

Proposer: @utkucy

(Optional) Technical Sponsor: No

Do you agree to open source all work you do on behalf of this RFP and dual-license under MIT, APACHE2, or GPL licenses?: Yes GPLv3

Project Description

It has been observed that people with different needs (work, social, school, etc.) seek different solutions to meet the increasing need for online meetings. Web3RTC is a video chat application built on completely decentralized technologies. It aims to establish connections between users without the need for any central server to store data or transmit media resources.

Web3RTC uses peer connections for both storing and transmitting operations:

Store Operations
Authentication processes (register - login), creating and retrieving room data (participant list, chat messages, etc.), storing and retrieving past meetings information, storing past meeting records, allowing to make changes for user preferences.

Transmitting Media Source Operations
Establishing connections between peers in the rooms with both voice (source: microphone) and video (source: camera, screen share) sources.

Since Web3RTC will use OrbitDB for database operations, Web3Storage for storing meeting records, and finally WebRTC for the media transmitting operations, it guarantees that every action that users can take on the apps would be established by peer-to-peer connections. Although there is just a web app that exists at the moment, my goal is to develop this app for 5 different platforms if the proposal would be approved. A web app, an IOS app, an android app, a macOS app, and finally a Windows app.

App Dashboard 1

Screen Shot 2022-09-25 at 18 48 45


App Room with Connected Peers

photo_2022-09-25 18 39 06


Demo app can be found on: https://jade-sunburst-1968ce.netlify.app/

Value

Web3RTC is a smooth way of the transaction from web2 to web3 ecosystems. The main purpose of these apps is to be cost-efficient and accessible from anywhere to anyone at any time. Since all the applications will use the same P2P logic for every action, it will lower the cost of the programs. With the applications planned for 5 different platforms, Web3RTC would have a wide usage case.

Last but not least, I believe that it would have a great impact on the Filecoin community for educational purposes about how to use these technologies since it will be published as open source projects.

However, there may be constraints on the app usage because of the used technologies. WebRTC constraints can affect the streaming quality, total peer connection number (since WebRTC uses local computer resources, restricting connections may be a must), or being able to connect with other peers (NAT traversal problem for WebRTC). Also please note that OrbitDB is alpha-stage software. It means OrbitDB hasn't been security audited and programming APIs and data formats can still change.

Deliverables

There will be 5 apps as final products: IOS app, android app, Desktop Apps (macOS, windows), Web App)

Common features:

For more information please check the development roadmap.

Development Roadmap

Milestone 1

Budget: $20,000 Estimated Time: 2 weeks

Milestone Steps
[x] Creating and publishing the web app
[x] Normal authentication flow (login-register) added
[x] Ability to Create a room
[x] Ability to Share voice and camera source
[x] Ability to Change media sources
[x] Ability to Add other users to the contact list
[x] Ability to List Past Meetings
[x] Ability to List Contact List
[x] Ability to Manage App Settings
[x] Ability to Record a screen sharing and download it in WebP format to a local computer
[ ] Custom domain for the web app
[ ] Publishing the web app's code as open source with GNU GPLv3 license on GitHub.


If the proposal would be approved, I will focus on creating a product team to continue the development process at the end of this milestone.

Milestone 2

Budget: $20,000 Estimated Time: 3-4 weeks

Milestone Steps
[] Ability to Chat with others in the room
[] Metamask authentication process will be added to web app
[] Web3Storage will be added as another option to store the recorded meeting file
[] Creating and publishing the Desktop apps for both macOS and Windows Platforms. All milestone steps mentioned in Milestone 1 and 2 will be completed for the apps.

Additionally, mobile app developments and new UI/UX design processes for all of the apps would be started at this milestone.


Milestone 3

Budget: $20,000 Estimated Time: 3-4 weeks

Milestone Steps
[] Creating both the IOS and Android apps. All of the common features stated in the Deliverables section will be implemented for both apps.
[] Both mobile apps will be published in their app stores.
[] Redesign process for all 5 apps.
[] End-to-end testing process for all 5 apps
[] A detailed README file will be prepared for all 5 apps to explain the logic of the used techs and programs.

Total Budget Requested

$60,000

Maintenance and Upgrade Plans

I am committed to maintaining the development of the project. I will continue to maintain and upgrade all of the products.

Team

Team Members

Utkucan Yıldırım

Relevant Experience

Team code repositories

https://github.com/utkucy/ipfs-webrtc

Additional Information

I learned the Open Grants Program while researching about the Filecoin ecosystem.

Email: yil.utkucan@gmail.com

ErinOCon commented 1 year ago

Hi @utkucy, thank you for your proposal! This grant has been approved. Look out for an email to discuss next steps.

utkucy commented 1 year ago

Hi @ErinOCon,

Do you have any updates for the first milestone status that we discussed earlier? I could not reach you with email.