filecoin-project / devgrants

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

DappCinemas #1673

Closed Daltonic closed 6 months ago

Daltonic commented 9 months ago

1. Project Overview

The "Dapp Cinemas" is a Next.js and Solidity-based web3 application for cinema management, offering features such as movie management, ticket booking, and movie streaming. We aim to transform it into an online movie streaming platform by integrating with Filecoin Virtual Machine for secure movie file storage, enhancing the online cinema experience. Currently, videos are hosted on IPFS and YouTube, but we plan to transition to Filecoin's decentralized storage platform.

2. Project links

Link to Github repo: https://github.com/Daltonic/dappCinemasX Link to demo or website: https://dapp-cinemas-x.vercel.app License: MIT

3. a) How is IPFS, Filecoin, or related technology used in this project?

In this project, IPFS is used as a decentralized storage system for storing movie files. The project uses the ipfs-http-client library to interact with IPFS.

Here's a brief overview of how IPFS is used in the project:

  1. In the add.tsx file, an instance of the IPFS client is created with the Infura IPFS service. The Infura API keys are stored in the .env file and used to authenticate the client.
const auth =
  'Basic ' +
  Buffer.from(
    process.env.NEXT_PUBLIC_INFURIA_API_KEY +
      ':' +
      process.env.NEXT_PUBLIC_INFURIA_API_SECRET
  ).toString('base64')

const client = create({
  host: 'ipfs.infura.io',
  port: 5001,
  protocol: 'https',
  headers: {
    authorization: auth,
  },
})
  1. When a user wants to add a new movie, they select a video file from their local system. This file is then uploaded to IPFS using the client.add() function. The IPFS hash of the uploaded file is returned.
const created = await client.add(videoFile)
  1. The IPFS hash is then used to construct a URL to the video file on the IPFS network. This URL is stored as part of the movie data.
const videoUrl = `https://ipfs.io/ipfs/${created.path}`
movie.videoUrl = videoUrl
  1. When a user views a movie, the video file is streamed directly from IPFS using the stored URL.

3. b) Is this project building with the current microgrants focus area (FVM)? (Yes or No)

Yes

4. How will you improve your project with this grant? What steps will you take to meet this objective?

The grant will be instrumental in improving the project in several ways:

4. a) Grant Objectives

  1. Enhanced Speed of File Delivery: By integrating Filecoin, we can leverage its faster file delivery compared to IPFS. This will significantly improve the user experience, especially when streaming large video files.

  2. Increased Reliability: Filecoin provides a dedicated storage facility, which will increase the reliability of our data storage. This is crucial for a project of this nature where consistent access to data is paramount.

  3. Improved Data Privacy: Filecoin's infrastructure offers enhanced data privacy features, which are essential for this project. By ensuring the privacy and security of our users' data, we can build trust and grow our user base.

4. b) Implementation Plan

Number Grant Deliverable Briefly describe how you will meet deliverable objectives Timeframe (within 3 months)
1. Filecoin Integration We will update our storage and retrieval functions to use Filecoin, replacing or augmenting our current IPFS setup. Weeks 1-4
2. Testing and Optimization We will conduct extensive testing to ensure the Filecoin integration is working as expected. We will also optimize our usage of Filecoin to ensure we are getting the best performance. Weeks 5-8
3. Documentation Update We will update our project documentation to reflect the changes and benefits brought by the Filecoin integration. Week 9
4. User Feedback and Iteration We will collect user feedback on the new Filecoin integration and make any necessary adjustments. Weeks 10-12

5. Monthly Updates

Yes, we agree to provide monthly updates on this Github issue for the duration of the project.

6. Community Code of Conduct?

Yes, our proposal complies with the Community Code of Conduct.

7. Links and submissions

8. Additional questions:

ErinOCon commented 6 months ago

Hi @Daltonic, thank you for your proposal and for all of your patience with our review process. Unfortunately, we will not be moving forward with a grant at this time. Wishing you the best as you continue building!