filecoin-project / devgrants

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

Omnipeer - P2P Data Transfer & Chat & Data Storage Platform #1294

Closed tolgayayci closed 1 year ago

tolgayayci commented 1 year ago

Open Grant Proposal: Omnipeer

Name of Project: Omnipeer

Proposal Category: app-dev

Proposer: @tolgayayci

(Optional) Technical Sponsor: -

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

Project Description

Omnipeer is a new era data storage & transfer platform that aims to bring the benefits of peer-to-peer technologies to non-technical users in a user-friendly and intuitive way. Inspired by the logic of friendship in social media, Omnipeer allows users to easily perform functions such as file transfer and messaging by adding friends. The platform is designed to be accessible from any device with a browser, enabling cross-platform peer-to-peer communication between smartphones and computers.

The first module of Omnipeer includes features such as file upload to IPFS, p2p file transfer, and p2p chat. However, Omnipeer has ambitious plans to add even more functionality in future modules, expanding the platform's capabilities and making it an even more valuable tool for users.

One of the key features of Omnipeer is its ability to operate within peer networks, which enables users to connect directly with one another without the need for a central server. This not only improves the speed and efficiency of file transfer and messaging, but also enhances the security and privacy of these interactions. By leveraging peer networks, Omnipeer is able to offer users a decentralized and distributed solution for their storage and communication needs, making it a powerful tool for individuals and organizations alike.

We believe that Omnipeer has the potential to revolutionize the way people use the decentralized internet, and we are seeking funding to help us bring this vision to life. With your support, we can create a platform that simplifies users' daily lives and eliminates the complicated terms often associated with peer-to-peer connections. Together, we can build the next generation of solutions for storage and file transfer in the Web3 era.

Website: https://omnipeer.net

Application: https://dev.omnipeer.net (Mobile and Tablet Compatible)

omnipeer-homepage

Application Showcase Video: https://drive.google.com/file/d/10HMDFYOVpXTCIQslS1ouk7SGJlNd6QXc/view?usp=share_link

Google Drive video quality is not enough, please download and watch the showcase video for great quality if you don't see here!

https://user-images.githubusercontent.com/40897846/209478350-673516f7-9f98-4a77-90ea-5c275093f1a0.mov

Value

Values

With these values at the core of our platform, Omnipeer is poised to revolutionize the way people use the internet and connect with one another. We are committed to creating a platform that is accessible, user-friendly, and secure, and we believe that our vision aligns with the values of Filecoin.

Risks

While these risks do exist, we believe that they can be mitigated through careful planning and execution. We are committed to addressing these challenges and delivering a platform that is reliable, efficient, and user-friendly.

Risks that will make executing on Omnipeer difficult

Omnipeer uses libp2p-webrtc-star for peer to peer communications. There are several risks to consider when developing this kind of application related to WebRTC.

  1. Compatibility: WebRTC is supported by most modern browsers, but there may still be some users who are unable to use the application due to compatibility issues.
  2. Network connectivity: WebRTC relies on a stable and fast network connection to function properly. If the connection is poor, the quality of the audio and video may be affected.
  3. Bandwidth: WebRTC applications can be resource-intensive and may require a lot of bandwidth to function properly. This can be a problem for users with limited bandwidth or slow internet connections.

Deliverables

The final deliverable for this project will be a software application with the following functionality:

  1. Web3 Wallet Onboarding: The application will allow users to connect their Web3 wallets and use them to interact with the decentralized application.
  2. IPFS File Upload: The application will allow users to upload files to IPFS using Omnipeer IPFS Daemon, Web3 Storage, NFT Storage, or Pinata.
  3. Bulk File Upload from Cloud Services: The application will allow users to upload large numbers of files from cloud services such as AWS S3 using Omnipeer IPFS Daemon.
  4. NFT Processes: The application will support the creation and transfer of non-fungible tokens (NFTs), including uploading metadata, minting, and transferring NFTs on FEVM or Polygon Network.
  5. Real Time File Transfer: The application will use libp2p-webrtc-star to enable real-time file transfer between users.
  6. Real Time Chat: The application will use libp2p-pubsub to enable real-time chat between users.
  7. In App & Email Notifications: The application will provide in-app and email notifications to users to keep them informed of important events or updates.
  8. Friendship relation on peer processes: The application will support the creation of friendship relationships between users, allowing them to connect and interact with one another on the peer-to-peer network.
  9. Multiple Platforms: The application will be available on multiple platforms, including desktop or mobile browsers, Mac OS, and Windows.
  10. Documentation: The project will include comprehensive documentation to help users understand how to use the application and its various features.
  11. Open Source Releases: Omnipeer releases will be open source all the times.

Development Roadmap

Omnipeer development roadmap includes three milestones, with the first one already completed. After each milestone is completed, a changelog and blog will be released to provide updates and information on the progress of the project.

Milestone 1

Budget: $20000

Status Deliverables Description
Completed Real Time File Transfer Real Time File Transfer is a feature that allows for the transfer of files between peers in real time using the libp2p-webrtc-star library. One of the benefits of this feature is that it does not require users to know the peer ID's of the parties they are transferring files with, as omnipeer is able to detect and connect to the appropriate peers automatically. This makes it easy and convenient for users to transfer files with others in real time.
Completed Real Time Chat Real Time Chat is a feature that allows users to communicate with one another in real time. With this feature, users can add friends and use the libp2p-pubsub library to send and receive messages. It is important to note that in order to use the Real Time Chat feature, both users must be online at the same time in order to send and receive messages. This feature allows for convenient and immediate communication between users.
Completed Web3 Storage File Upload Web3.storage file upload is a feature that allows users to upload files to a decentralized storage network using the web3.storage API. One of the benefits of this feature is that it allows users to store files in a decentralized way, which can be more secure and resistant to censorship compared to traditional centralized storage solutions. However, it is important to note that this feature has a limited quota, and using it may incur costs in the future.
Completed Usage Stats ( Stream & Upload) Usage Stats is a feature that allows users to track and monitor their usage of a particular service on Omnipeer. The feature includes both Stream and Upload options, which allow users to view and analyze their usage data in real time or upload it for later analysis. This feature can be useful for understanding how a service or application is being used, identifying patterns and trends in usage, and identifying areas for improvement. It can also be helpful for identifying potential problems or issues that may need to be addressed.
Completed Add Friend & Edit Profile Add Friend and Edit Profile are features that allow users to manage their social connections and personal information within a Omnipeer. The Add Friend feature allows users to connect with others and build their network of contacts, while the Edit Profile feature allows users to update and customize their personal information and settings. These features can be useful for building and maintaining relationships within a community, and for ensuring that users' personal information is accurate and up-to-date.
Completed Landing Page Omnipeer Landing Page (https://omnipeer.net)

Milestone 2

Budget: $20000

Estimated Time Deliverables Description
February Omnipeer IPFS Daemon Omnipeer IPFS Daemon is a feature that allows users to perform large file uploads using our nodes. It is designed to provide users with a convenient way to transfer large amounts of data over the Omnipeer, and is free to use for higher quotas. Omnipeer IPFS Daemon runs on our nodes, which means that users can rely on the stability and performance of our infrastructure to ensure their uploads are successful.
February Magic Implementation Magic Implementation is a feature that allows users to easily onboard and authenticate with both Web3 and Web2 using magic links. This feature is powered by the Magic SDK, which enables passwordless authentication and streamlines the process of accessing Web3 and Web2 resources. With Magic Implementation, users can quickly and securely access a wide range of online services without the need for complex passwords or other authentication methods. This feature is particularly useful for applications and services that require secure and seamless access to web-based resources.
February NFT Metadata Upload, Mint & Transfer NFT Metadata Upload, Mint & Transfer is a feature that allows users to create, manage, and transfer their own non-fungible tokens (NFTs). This feature enables users to attach metadata to their NFTs, including information such as the token's name and description, and then mint new NFTs with these unique attributes. The NFT Mint & Transfer feature also allows users to transfer their NFTs to other users. The NFT Metadata Upload process can be performed using Omnipeer IPFS Daemon, NFT.storage, Pinata, or Web3.storage, depending on the user's preference. The NFT Mint & Transfer portion of the feature will be handled by the FEVM or Polygon Network. This feature is useful for creators and collectors of NFTs, as it provides a convenient and efficient way to create, manage, and trade their unique digital assets.
February Bulk File Upload from AWS S3 Bulk File Upload from AWS S3 is a feature that allows users to easily transfer large quantities of files from Amazon Web Services' Simple Storage Service (S3) to the InterPlanetary File System (IPFS). This feature is handled by Omnipeer IPFS Daemon, which provides users with a convenient way to move their files from AWS S3 to IPFS. With Bulk File Upload from AWS S3, users can easily and quickly transfer their files to IPFS, allowing them to take advantage of the decentralized nature of the platform. This feature is particularly useful for users who need to transfer large quantities of data and require a reliable and efficient way to do so.
February In App & Email Notifications In App & Email Notifications is a feature that allows users to receive notifications about various events or updates within an application or service. This feature can be used to notify users about new messages, updates to their account or profile, or any other relevant information. In App & Email Notifications can be delivered through the application itself, or via email if the user prefers. This feature is useful for keeping users informed and up-to-date with the latest happenings within the Omnipeer services. It can also help users stay organized and on top of important tasks or events.
February Upload, Stream and NFT Stats Upload, Stream, and NFT Stats is a feature that allows users to track and monitor various metrics related to their file uploads, streams, and non-fungible tokens (NFTs).

Milestone 3

Budget: $20000

Estimated Time Deliverables Description
March Continuous Real Time Transfers Continuous Real Time Transfers is a feature that allows users to transfer files in real-time without interruption. This feature is particularly useful for transferring large files or for situations where a stable connection is important. With Continuous Real Time Transfers, users can transfer files without the need to start the process over if the connection is lost. This feature is powered by libp2p-webrtc-star, which is designed to provide a stable and reliable connection for file transfers. In the event that the connection is lost, the transfer process will continue from wherever it left off, eliminating the need to restart the process. This feature is convenient and efficient for users who need to transfer large files in real-time without interruption.
March Mac OS Application Omnipeer Mac OS Application
March Windows Application Omnipeer Windows Application
March Documentation Omnipeer documentation includes detailed information about the various features and functionality of the Omnipeer platform, including bulk upload from AWS S3, NFT management, file upload, real-time transfer, and chat. This documentation is designed to provide users with the information they need to effectively use these features and get the most out of the Omnipeer platform. The bulk upload from AWS S3 documentation likely covers topics such as how to transfer large quantities of files from AWS S3 to Omnipeer, any requirements or limitations that apply to the feature, and any troubleshooting guidance that may be helpful. The NFT documentation may include information on how to create, manage, and transfer NFTs, as well as details on the various attributes and metadata that can be assigned to NFTs. The upload documentation may cover topics such as how to upload files to Omnipeer, file size limits, and any other relevant information. The real-time transfer documentation may include guidance on how to transfer files in real-time, any requirements or limitations that apply, and troubleshooting tips. The chat documentation may include information on how to use the chat feature, any features or functionality that are available, and any relevant troubleshooting guidance.
March Blog Omnipeer blog is a platform where users can find informative and educational articles on decentralized storage and transfer. The blog likely covers a range of topics related to decentralized storage and transfer, including the benefits and challenges of these technologies, how they work, and how they can be used in various applications. The articles on the Omnipeer blog may also discuss the latest developments and trends in decentralized storage and transfer, and provide insights and best practices for implementing these technologies. The blog is likely aimed at a technical audience, such as developers and IT professionals, but may also be of interest to anyone interested in decentralized storage and transfer.

Total Budget Requested

$60000

I will hire a fullstack developer and content creator for 5 months if this proposal approved for later milestones and product development.

Maintenance and Upgrade Plans

By following these plans, I can help ensure that Omnipeer users have a seamless and enjoyable experience with peer to peer technologies.

Team

Team Members

Tolga Yaycı

Team Member LinkedIn Profiles

https://www.linkedin.com/in/tolgayayci/

Relevant Experience

As a full stack developer with 2 years of experience and a background in developing dApps for the past year, I have gained valuable skills and knowledge in the field of software development. I have a particular interest in the Web3 and NFT space, and have created a few apps related to this area. In addition to my technical skills, I have also been actively involved in the wider tech community. I have served as a Chainlink Community Advocate, Aave Turkey Community Manager, and Founding Chair of Gazi University ACM Student Chapter. My previous role as a Microsoft Learn Student Ambassador has also given me the opportunity to share my knowledge and experience with others. I have set of experiences and skills and particularly in the areas of full stack software development and community management.

Team code repositories

https://github.com/tolgayayci/omnipeer/tree/dev

Additional Information

I took the microgrant with “Slack IPFS App “project and learned about open grants at this time.

Omnipeer is a new era platform for end users to easily transfer datas, make uploads and create NFTs with a friendship relation and uses mostly libp2p & IPFS technologies. I hope to take a support from Filecoin Foundation and take this project further.

Email: tolgayayci@protonmail.com

tolgayayci commented 1 year ago

Hey @eshon, hope you are well! Omnipeer will use FEVM for NFT functionalities, could you possible to add the fvm tag for appropriate review?

ErinOCon commented 1 year ago

Hi @tolgayayci, thank you for your patience with our review. Unfortunately, we will not be moving forward with a grant at this time. As a next step, I would highly recommend checking out accelerator opportunities!

Wishing you the best of luck as you continue to build!