Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dfinity/cancan
A scalable video sharing service.
https://github.com/dfinity/cancan
canister dfx ic internet-computer motoko
Last synced: about 1 month ago
JSON representation
A scalable video sharing service.
- Host: GitHub
- URL: https://github.com/dfinity/cancan
- Owner: dfinity
- License: apache-2.0
- Created: 2021-05-06T23:11:55.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-06-05T18:36:41.000Z (7 months ago)
- Last Synced: 2024-08-03T14:08:48.227Z (5 months ago)
- Topics: canister, dfx, ic, internet-computer, motoko
- Language: TypeScript
- Homepage: http://sdk.dfinity.org
- Size: 13.9 MB
- Stars: 335
- Watchers: 25
- Forks: 66
- Open Issues: 32
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- awesome-icp - dfinity/cancan
- awesome-motoko - cancan - A scalable video-sharing service. (Applications / Video)
README
# CanCan
[![Build Status](https://github.com/dfinity/cancan/workflows/CI/badge.svg)](https://github.com/dfinity/cancan/actions)
> A scalable video-sharing service.
## Installation
### Prerequisites
- [Internet Computer SDK](https://sdk.dfinity.org)
- [Node.js](https://nodejs.org)
- [Python](https://www.python.org)
- [[email protected]](https://github.com/dfinity/vessel/releases/tag/v0.6.0)If you don't have vessel yet you can install it by running an install script included in the project:
```shell
$ ./scripts/vessel-install.sh
```
MacOS might ask if you're sure you trust this package. You can safely acceptDouble-check you have [vessel](https://github.com/dfinity/vessel) installed at version 0.6.*, then clone this repository and navigate to the `cancan` directory.
```shell
$ vessel --version
# vessel 0.6.0$ git clone [email protected]:dfinity/cancan.git
$ cd cancan
```Start a local Internet Computer replica.
```shell
$ dfx start
```Execute the following commands in another terminal tab in the same directory.
```shell
$ npm ci # <- This installs packages from the lockfile for consistency$ ./bootstrap.sh
```This will deploy a local canister called `cancan_ui`. To open the front-end, get the asset canister id by running `dfx canister id cancan_ui`. Then open your browser, and navigate to `http://.localhost:8000/sign-in`.
## Frontend Development
To run a development server with fast refreshing and hot-reloading, you can use this command in the app's root directory:
```shell
$ npm run start
```Your default browser will open (or focus) a tab at `localhost:3000`, to which you must then append `/?canisterId=${cancan_ui_canister_id}`, where `cancan_ui_canister_id` is typically (at current) `ryjl3-tyaaa-aaaaa-aaaba-cai`.
Now you can make changes to any frontend code and see instant updates, in many cases not even requiring a page refresh, so UI state is preserved between changes. Occasionally adding a CSS rule won't trigger an update, and the user has to manually refresh to see those changes.
## Internet Identity Locally
Clone and setup [the project](https://github.com/dfinity/internet-identity) and make sure that `internet_identity` is deployed, and you have the front-end available. That should allow you to do auth locally to try out the new Internet Identity service. For production, we will probably configure `identity.ic0.app` to be running this canister, but for now this is how to get it running.