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密钥文件的路径。 我们欢迎分享商店的捐款!要开始,请阅读我们的贡献指南,并遵循提交问题和拉请求的说明。
请阅读我们的行为准则,以了解我们对参与者和贡献者的期望。