メインコンテンツまでスキップ

プロジェクトの概要を掴もう

👋 ICP Encrypted Notes 開発プロジェクトへようこそ!

このプロジェクトでは、暗号技術を使用してノートを暗号化し、それをInternet Computer上で安全に共有するWebアプリケーションの構築方法を学びます。

このプロジェクトを進めるには以下の技術が必要です。

※ ICPでの開発が初めての方は、まずICP-Static-SiteICP-Basic-DEXのプロジェクトから始めることをお勧めします ☺️

いますべてを理解している必要はありません。

わからないことがあったらインターネットで検索したり、コミュニティで質問しながらプロジェクトを進めていきましょう!

🛠 何を構築するのか?

今回開発するものは、ノートの作成・編集・削除ができるWebアプリケーションです。ただし、単にテキストデータを保存するのではなく、暗号化を行い保存します。本プロジェクトは、以下の機能を実装します。

  1. Internet Identityを使用したユーザー認証
  2. ノートの作成・編集・削除
  3. ノートの暗号化・復号(クライアント側のエンドツーエンドの暗号化)
  4. ノートの共有

完成したアプリケーションはこのような見た目になります 💪

🌍 プロジェクトをアップグレードする

UNCHAIN のプロジェクトはすべてオープンソース(MIT ライセンス)で運用されています。

プロジェクトに参加していて、「こうすればもっと分かりやすいのに!」「これは間違っている!」と思ったら、ぜひpull requestを送ってください。

GitHubから直接コードを編集して直接pull requestを送る方法は、こちらを参照してください。

どんなリクエストでも大歓迎です 🎉

また、プロジェクトを自分のGitHubアカウントにForkして、中身を編集してからpull requestを送ることもできます。

  • プロジェクトをForkする方法は、こちら を参照してください。
  • Forkからpull requestを作成する方法は、こちら です。

⚡️ Issueを作成する

pull request送るほどでもないけど、提案を残したい! と思ったら、こちらIssueを作成してみましょう。

Issueの作成方法に関しては、こちらを参照してください。

pull requestissueの作成は、実際にチームで開発を行う際に重要な作業になるので、ぜひトライしてみてください。

UNCHAINのプロジェクトをみんなでより良いものにしていきましょう ✨


環境構築をしよう

🗂 環境構築をしよう

まず、node / npmを取得する必要があります。 お持ちでない場合は、下記のリンクにアクセスをしてインストールしてください。

なお、本プロジェクトは以下のバージョンを推奨しています。

$ node -v
v18.17.0

$ npm -v
9.6.7

🦀 Rust の環境構築をする

Rust インストール手順を参考に、RustとCargoのインストールを行いましょう。

curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh

次に、プログラムをWebAssemblyにコンパイルするためのビルドターゲットを追加しましょう。

rustup target add wasm32-unknown-unknown

🧰 IC SDK をインストールする

IC SDKは、Internet Computerブロックチェーン上でキャニスタースマートコントラクトを作成・管理するためのソフトウェア開発キットです。

IC SDK のインストールを参考に、IC SDKをインストールをしましょう。下記のように、バージョン0.14.1を指定してください。

DFX_VERSION=0.14.1 sh -ci "$(curl -sSL https://internetcomputer.org/install.sh)"

下記を実行してバージョンを確認してみましょう。

$ dfx --version
dfx 0.14.1

🍽 Git リポジトリをあなたの GitHub にフォークする

まだGitHubのアカウントをお持ちでない方は、こちら の手順に沿ってアカウントを作成してください。

GitHubのアカウントをお持ちの方は、下記の手順に沿ってプロジェクトの基盤となるリポジトリをあなたのGitHubにフォークしましょう。

1. ICP-Encrypted-Notesにアクセスをして、ページ右上のForkボタンをクリックします。

2. Create a new forkページが開くので、「Copy the main branch only」という項目にチェックが入っていることを確認します

設定が完了したらCreate forkボタンをクリックします。あなたのGitHubアカウントにICP-Encrypted-Notesリポジトリのフォークが作成されたことを確認してください。

それでは、フォークしたリポジトリをローカル環境にクローンしましょう。

まず、下図のように、CodeボタンをクリックしてSSHを選択し、Gitリンクをコピーしましょう。

ターミナル上で作業を行う任意のディレクトリに移動し、先ほどコピーしたリンクを用いて下記を実行してください。

git clone コピーした_github_リンク

無事に複製されたらローカル開発環境の準備は完了です。

📦 パッケージをインストールする

下記のコマンドを実行して、パッケージのインストールをしましょう。

npm install

問題なくインストールが行われることを確認します。

アプリケーションを立ち上げるには

必要な実装が不足しているため、今の状態でアプリケーションを立ち上げると失敗してしまいます。そのため、ここでは実際に実行しませんが、手順のみ提示しておきます。

1. バックグラウンドでローカル実行環境を起動します。

dfx start --clean --background

2. プロジェクトの登録・ビルド・デプロイを行います。

npm run deploy:local

3. 開発サーバーを立ち上げ、アプリケーションを起動します。

npm run start

4. Loopback:に表示されたURLにアクセスをします。

ローカルの実行環境を停止するには、下記のコマンドを実行します。

dfx stop

🙋‍♂️ 質問する

ここまでの作業で何かわからないことがある場合は、Discordの#icpで質問をしてください。

ヘルプをするときのフローが円滑になるので、エラーレポートには下記の4点を記載してください ✨

1. 質問が関連しているセクション番号とレッスン番号
2. 何をしようとしていたか
3. エラー文をコピー&ペースト
4. エラー画面のスクリーンショット

次のセクションに進み、ノートを管理する機能を実装しましょう 🎉