Share Storeは、DjangoとPythonをバックエンド用に使用して構築されたWebベースのファイル共有およびストレージアプリケーション、およびフロントエンド用のJavaScriptとBootstrapです。これは、PythonとJavaScriptを使用したCS50のWebプログラミングの最終プロジェクトです。このプロジェクトには、単一のアプリ「ドライブ」が含まれています。
Shareストアを使用すると、ユーザーはこれらのファイルのアクセス権限を登録、ログイン、アップロード、および管理できます。ユーザーは、特定の個人とファイルを共有したり、すべての人がアクセスできるようにすることができます。さらに、ユーザーは他の人が共有するファイルを表示できます。 Share Storeは、ファイルストレージと取得にFirebaseストレージを使用します。ユーザー認証、ファイルのアップロード/ダウンロード、アクセス制御、パスワードの変更、アカウントの削除などの機能を提供し、汎用性の高いファイル共有プラットフォームになります。
プロジェクトデモ
(college lecture slides in my case)を自動化する新しい機能でプラットフォームを強化しました。これで、ユーザーがアカウントから特定のキーワード(講義名またはMathやTOCなどのトピックなど)を含むファイルをアップロードすると、これらのファイルは環境変数で指定されているように、指定されたDiscordチャネルに自動的に送信されます。この統合により、手動ファイルの転送の必要性がなくなり、時間を節約し、コンテンツが迅速に関連する不和コミュニティと迅速に共有されるようにします。スクリーンショット
注記
以下のスクリーンショットは、Discord統合機能、特にボットがDiscordサーバーの指定されたスレッド/チャネルにファイルを投稿する方法を示しています。この機能は、 "Maths": "maths thread/channel ID"を含むなどのCHANNEL_MAPPINGS構成によってトリガーされ、適切な不一致の場所に数学関連のファイルを向けます。
プロジェクトデモビデオは少し古いため、この機能を紹介しません。

static/drive :アクセス許可、アプリケーションのロゴ、スタイリング用のスタイルシートを処理するためのJavaScriptが含まれています。
templates/drive :Webページのレンダリングを担当するHTMLテンプレートが含まれています。
firebase.py Admin SDKを初期化し、FireBaseストレージへの参照を作成します。
models.py : File 、 User 、 Shareなど、アプリケーションのデータモデルを定義します。
tests.py :ファイル、共有、ユーザーを作成するためのデータベーステストが含まれています。
urls.py :「ドライブ」アプリのURLパターンを定義します。
utils.py :外部URLから取得されたファイルを反復するためのユーティリティ関数が含まれています。
views.py要求を処理し、Webページのレンダリング方法を定義するハウスビュー機能。
discord_integration.py :特定の基準に基づいて、特定の基準に基づいて、ファイルを指定された不一致チャネルにアップロードする自動化を管理します。
requirements.txt :TXT:プロジェクトに必要な外部Pythonパッケージと依存関係をリストします。
注:Firebaseプロジェクトを作成し、このプロジェクトのJSONサービスアカウントキーファイルを見つける方法に関する簡単なガイドは、最後に記載されています。
仮想環境を作成する(オプション) :仮想環境内で作業することを好む場合(分離に推奨)、それを作成してアクティブ化できます。プロジェクトディレクトリに移動し、次のコマンドを実行します。
# Create a virtual environment
python -m venv myenv
# Activate the virtual environment (Windows)
myenv S cripts a ctivate
# Activate the virtual environment (macOS/Linux)
source myenv/bin/activate要件のインストール:システムにPythonがインストールされていることを確認してください。 Project Directoryに移動し、 requirements.txtにリストされている必要なPythonパッケージをインストールします。txt。 pipを使用してこれを行うことができます:
pip install -r requirements.txt
.envファイルの作成:プロジェクトディレクトリに.envという名前のファイルを作成します。 .envファイルで、次の行を追加し、プレースホルダーの値を実際の構成の詳細に置き換えます。
STORAGE_BUCKET="Storage Bucket Name"
GOOGLE_APPLICATION_CREDENTIALS="Path to your Firebase Admin SDK JSON credential file"
SECRET_KEY="Your Django secret key"
CONNECTION_STRING="Your database connection string (production only)"
SERVER_ID="Your Discord Server ID"
BOT_TOKEN="Your Discord Bot Token"
CHANNEL_MAPPINGS={"substring_1": "Channel_ID_1", "substring_2": "Channel_ID_2"}
P_USERNAME="Specific platform username whose files will be checked for Discord posting."
これらの各変数は、データベースに接続したり、Discordと統合したり、FireBaseサービスの構成など、アプリケーションに特定の目的を果たします。
ヒント
より多くのサブストリングを探したい場合は、 CHANNEL_MAPPINGS={"substring_1": "Channel_ID_1", "substring_2": "Channel_ID_2", "additional_substring": "Additional_Channel_ID"}のように、 CHANNEL_MAPPINGS環境変数にマッピングを追加するだけです。
注記
FireBaseプロジェクト設定からFireBase Admin SDK JSON資格情報を取得する必要があります。 FireBaseプロジェクトをまだ作成していない場合は、こちらでできます:FireBaseコンソール
さらに、Discord Botトークンのセットアップと取得については、Discord Developer Portalを参照してください。ボットを作成してサーバーに招待するための詳細な手順は、こちらをご覧ください:Discord Developer Portal。
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
.envファイルのGOOGLE_APPLICATION_CREDENTIALS環境変数をダウンロードしたJSONキーファイルのパスに設定します。 Share Storeへの寄付を歓迎します!開始するには、貢献ガイドラインを読んで、問題を提出してリクエストを引き出す手順に従ってください。
参加者と貢献者に対する私たちの期待を理解するために、私たちの行動規範を読んでください。