GithubHelp home page GithubHelp logo

cmowe--come-to-see-your-movie-with-everybody's Introduction

An Ethereum dApp to Decentralize the Film Industry and Empower Independent Filmmakers

Project solution proposal video:

Solution proposal

To learn about the product features, design decisions, and security measures of this open source project in detail, read this accompanying report:

Project report

Deployed Contracts

  1. HeartBankCoin.sol: 0x7e4b1d67ffb30d45f46c33e40c60c77b0cd255aa
  2. BoxOffice.sol: 0x0b54d5f632b7e1f0ccf96842263d4750560b9147
  3. Oracle.sol: 0xa8bbbe439fa8cabe6a163d014e0e29c7697024c3
  4. OracleLibrary.sol: 0x55a52c2e16c0b28443d3814fa607c9158e3a92ba
  5. OracleStorage.sol: 0xf4b186b23e3278144ed578d0627cfdc6181e9ee7
  6. OracleRegistry.sol: 0x3dbdf868f9bb14b83b83c82c74710865f6262326

Main Pages

There are four main pages, each mapped to corresponding URL routes for easy bookmarking and search engine optimization. Below are explanations at a high level.

Studio Home Page

Studio Home Page

The studio home page displays all the film projects currently in development, of which users can buy tickets to watch (or re-sell) in advance at a discount. Project-wide stats are also tabulated and shown to perpetuate network effects.

Make Movie Page

Make Movie Page

Here, filmmakers of any background can customize movie details to create ERC20 compatible tickets that are unique to each film. On the blockchain, this means a standard ERC20 smart contract is created for each project.

Movie Token Page

Movie Token Page

After successful creation, anyone with an Ethereum wallet can visit this page to learn about a film project and pre-buy tickets. Project-specific stats are also collected and displayed to elicit excitement.

Movie Theater Page

Movie Theater Page

When the film is ready for commercial release, those with movie tickets can validate their ownership to access protected content. This page exemplifies how the blockchain securely verifies ticket possession.

When the user click on the watch movie button, the background light is dimmed and he is taken to a theatre mode to display the film (Here we can enable our users to use their tokens to watch the film that has been uploaded). Watch movie

How to Install

Follow these steps to install this project onto your local machine.

Setup Project

Fork this repo. Then:

  1. Clone your forked repo:
$ git clone https://github.com/<username>/BoxOffice.git
  1. Change to the root directory:
$ cd ...
  1. Delete the build directory:
$ rm -r build
  1. Install dependencies:
$ npm install

Setup Smart Contracts

To compile the smart contracts and deploy them to a local blockchain, install truffle and ganache-cli globally:

It's possible to simply use the default blockchain that comes with truffle or the ganache desktop version. You just need to change the PORT number to match the correct network in the /config.js file. Then:

  1. Start up local blockchain:
$ ganache-cli
  1. Compile smart contracts:
$ truffle compile
  1. Deploy smart contracts:
$ truffle migrate --network ganache

Test Smart Contracts

Each smart contract has a corresponding test contract in both Solidity and JavaScript. To run the tests, execute:

$ truffle test

How to Play via Frontend

To interact with the contracts through the frontend, install the Chrome Metamask extension. Then:

  1. Start up local server:
$ npm run dev
  1. Visit localhost:
http://localhost:3000

For convenience, the /scripts/oracle.js script can be used to mimic the functionality of an oracle service. To tell the Oracle contract to emit an event that updates its price of ether in USD to the one currently at Coinbase, execute:

$ npm run oracle

- NOTE: Remember to first run the 'npm run oracle' command to deploy the oracle contract so that the other components inside our webpage can run smoothly.

Another useful script is /scripts/boxoffice.js, which automatically populates the BoxOffice contract with dummy data:

$ npm run boxoffice

Help Contribute

Feel free to contribute a pull request to help us decentralize and disrupt the film industry!

cmowe--come-to-see-your-movie-with-everybody's People

Contributors

laxminarayanak avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.