Skip to content

Post POC

Jelle edited this page Dec 18, 2017 · 4 revisions

Goal (medium term)

  • paratii-lib contains and abstracts all code that does

    • communication with blockchain, wallet handling, etc.
    • runs a local ipfs node, communicaties with other ipfs nodes
    • communicates with db index
  • Embeddable Media Player: An embeddable player whose UX is focuses on playing a single video:

    • can play a given video
    • discovery is limited to 6 suggestions (no playlists, no search - these will be on the web site)
    • it has a wallet, but the wallet is handled mostly transparently (no transaction history, no sending, we show only total values - any complex operations --> site)
    • it will need some UI to show errors and resolve errors ("wallet found", "you got no money", "no ipfs peers found"). Perhaps also log in functions)
  • Paratii Web site. Will

    • discovery
    • managing your account
    • manage your money
    • uploader and video data editor
    • tools for organizing content (playlists, ...)
    • ....

Technology stack

Embeddable player

The code of the embeddable player is mostly UI and event handling, and offload complexity to Clappr (for media playing and related event handling) and to paratii-lib. The current plan is:

  • Clappr Playback plugin to play hls streams from ipfs (mostly done, but should use paratii-lib)
  • Clappr Media Control plugin = the paratii skin
  • Paratii Media Player that handles stuff that is not directly related to the media player (for example, CSS that is specific for the embed but not used for the site, any UI that is related to the wallet, links to the web site, ...)

(One decision point is whether to develop the whole embeddable player as a media control plugin for clappr. Given that the clappr plugin will also be used elsewhere (for example, the web site), it seems better to not have too much styling/embed-specific in a clappr media control plugin, but instead keep that separate. Stil open to suggestions....)

Paratii Web site

Also this will be a "serverless" app (browser js only). Tech stack is still to be decided.

Road map

Currently, a lot of our code is hidden in the meteor application.

Roughly, we have two migration paths:

  1. Safe but slow Keep working in the current Meteor code in https://github.com/Paratii-Video/paratii-player - Migrate functions to paratii-lib and clappr, and re-integrate these functions in the player. Develop upload functionality within web site in parallel. When paratii-lib and clappr plugin are stable, start migrating/re-implementing the remain functionality towards player and app. pros low risk, player development can progress cons we spend time on code that will be obsolete within a month.

  2. Clean cut. Drop development on player completely - except for urgent bugs. pros no time wasted on old stuff cons there will be no updates to announce during this period, especially if the migration takes longer than exptec this may be a problem.

Clone this wiki locally