Share Store是一個基於Web的文件共享和存儲應用程序,使用Django和Python為後端構建,而JavaScript和Bootstrap用於前端。這是使用Python和JavaScript進行CS50的Web編程的最終項目。該項目包含一個單一的應用程序“驅動器”。
共享商店允許用戶註冊,登錄,上傳文件和管理這些文件的訪問權限。用戶可以與特定的個人共享他們的文件,也可以使每個人都可以訪問所有人。此外,用戶可以查看其他人共享的文件。共享商店採用firebase存儲進行文件存儲和檢索。它提供了諸如用戶身份驗證,文件上傳/下載,訪問控制,密碼更改和帳戶刪除之類的功能,使其成為一種多功能文件共享平台。
項目演示
(college lecture slides in my case)的過程自動化。現在,當用戶上傳包含特定關鍵字的文件(例如,從其帳戶中使用了數學或TOC等主題)時,這些文件將自動發送到“環境變量”中指定的指定不和諧通道。這種集成消除了對手動文件傳輸的需求,節省了時間並確保與相關的不和諧社區迅速共享內容。屏幕截圖
筆記
下面的屏幕截圖演示了Discord集成功能,特別是機器人如何將文件發佈到Discord服務器上指定的線程/頻道。該功能是由CHANNEL_MAPPINGS配置觸發的,例如"Maths": "maths thread/channel ID"將與數學相關的文件引導到適當的不和諧位置。
項目演示視頻有點舊,因此不會顯示此功能。

static/drive :包含用於處理訪問權限,應用程序徽標和样式表的JavaScript。
templates/drive :包含負責渲染網頁的HTML模板。
firebase.py :初始化Firebase Admin SDK並創建對Firebase存儲的引用。
models.py :定義應用程序的數據模型,包括File , User和Share 。
tests.py :包括用於創建文件,共享和用戶的數據庫測試。
urls.py :定義“驅動器”應用程序的URL模式。
utils.py :包含一個實用程序功能,用於迭代從外部URL提取的文件。
views.py :包含處理HTTP請求並定義網頁呈現方式的視圖功能。
discord_integration.py :利用Discord API,根據某些條件管理將文件自動化到指定的Discord通道。
requirements.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。導航到您的項目目錄,並安裝requirements.txt中列出的所需的python軟件包。您可以使用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環境變量中添加映射,例如: CHANNEL_MAPPINGS={"substring_1": "Channel_ID_1", "substring_2": "Channel_ID_2", "additional_substring": "Additional_Channel_ID"} :
筆記
您應該從Firebase項目設置中獲取Firebase Admin SDK JSON憑據文件。如果您尚未創建Firebase項目,則可以在這裡這樣做:Firebase Console
此外,要設置和獲取您的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密鑰文件的路徑。 我們歡迎分享商店的捐款!要開始,請閱讀我們的貢獻指南,並遵循提交問題和拉請求的說明。
請閱讀我們的行為準則,以了解我們對參與者和貢獻者的期望。