Share Store ist eine webbasierte Dateifreigabe- und Speicheranwendung, die mit Django und Python für das Backend sowie JavaScript und Bootstrap für das Frontend erstellt wurde. Es ist das letzte Projekt für die Webprogrammierung von CS50 mit Python und JavaScript. Dieses Projekt enthält eine einzelne App "Laufwerk".
Mit Share Store können Benutzer registrieren, sich anmelden, Dateien hochladen und Zugriffsberechtigungen für diese Dateien verwalten. Benutzer können ihre Dateien mit bestimmten Personen teilen oder sie für alle zugänglich machen. Darüber hinaus können Benutzer von anderen mit ihnen geteilte Dateien anzeigen. Share Store verwendet Firebase -Speicher für Dateispeicher und Abruf. Es bietet Funktionen wie Benutzerauthentifizierung, Datei-Upload/Download, Zugriffskontrolle, Kennwortänderung und Kontolöschung, wodurch es zu einer vielseitigen Plattform für die Sharing-Sharing-Datei wird.
Projektdemo
(college lecture slides in my case) auf Discord automatisiert. Wenn Benutzer nun Dateien hochladen, die bestimmte Schlüsselwörter (z. B. Vorlesungsnamen oder Themen wie Mathematik oder TOC) aus ihren Konten enthalten, werden diese Dateien automatisch an einen benannten Discord -Kanal gesendet, wie in den Umgebungsvariablen angegeben. Diese Integration beseitigt die Notwendigkeit manueller Dateiübertragungen, spart Zeit und stellt sicher, dass der Inhalt unverzüglich an die entsprechende Discord -Community weitergegeben wird.Screenshots
Notiz
Der folgende Screenshot zeigt die Funktion der Discord -Integration, insbesondere wie der Bot Dateien in einem bestimmten Thread/Kanal auf Ihrem Discord -Server veröffentlicht. Diese Funktionalität wird durch die Konfiguration CHANNEL_MAPPINGS ausgelöst, z. B. "Maths": "maths thread/channel ID" um mathematische Dateien an den entsprechenden Discord-Speicherort zu leiten.
Project Demo Video ist etwas alt und zeigt diese Funktion nicht.

static/drive : Enthält JavaScript für die Behandlung von Zugriffsberechtigungen, das Logo der Anwendung und ein Stylesheet zum Styling.
templates/drive : Enthält HTML -Vorlagen, die für die Wiedergabe von Webseiten verantwortlich sind.
firebase.py : Initialisiert das Firebase Admin SDK und erstellt einen Verweis auf Firebase -Speicher.
models.py : Definiert Datenmodelle für die Anwendung, einschließlich File , User und Share .
tests.py : Enthält Datenbanktests zum Erstellen von Dateien, Freigaben und Benutzern.
urls.py : Definiert URL -Muster für die "Drive" -App.
utils.py : Enthält eine Versorgungsfunktion zum Iterieren über Dateien, die von externen URLs abgerufen wurden.
views.py : Häuseransicht Funktionen, mit denen HTTP -Anfragen verarbeitet werden, und definieren, wie Webseiten gerendert werden.
discord_integration.py : Verwaltet die Automatisierung des Hochladens von Dateien in einen bestimmten Discord -Kanal basierend auf bestimmten Kriterien unter Verwendung der Discord -API.
requirements.txt : Listet externe Python -Pakete und Abhängigkeiten auf, die für das Projekt erforderlich sind.
HINWEIS: Eine kurze Anleitung zum Erstellen eines Firebase -Projekts und der Suche nach der JSON -Servicekonto -Schlüsseldatei für dieses Projekt wird am Ende angegeben.
Erstellen Sie eine virtuelle Umgebung (optional) : Wenn Sie es vorziehen, in einer virtuellen Umgebung (für die Isolation empfohlen) zu arbeiten, können Sie eine erstellen und aktivieren. Navigieren Sie zu Ihrem Projektverzeichnis und führen Sie die folgenden Befehle aus:
# 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 Anforderungen anbauen : Stellen Sie sicher, dass Python auf Ihrem System installiert ist. Navigieren Sie zu Ihrem Projektverzeichnis und installieren Sie die erforderlichen Python -Pakete, die in requirements.txt aufgeführt sind. Sie können dies mit pip tun:
pip install -r requirements.txt
Create .Env -Datei : Erstellen Sie eine Datei mit dem Namen .Env in Ihrem Projektverzeichnis. Fügen Sie in der .EnV -Datei die folgenden Zeilen hinzu und ersetzen Sie Platzhalterwerte durch Ihre tatsächlichen Konfigurationsdetails:
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."
Jede dieser Variablen dient einem bestimmten Zweck in Ihrer Anwendung, z. B. eine Verbindung zu Datenbanken, die Integration in Discord und die Konfiguration von Firebase -Diensten.
Tipp
Wenn Sie nach weiteren Substrings suchen möchten, fügen Sie einfach die Zuordnung in der Umgebungsvariable CHANNEL_MAPPINGS wie SO hinzu: CHANNEL_MAPPINGS={"substring_1": "Channel_ID_1", "substring_2": "Channel_ID_2", "additional_substring": "Additional_Channel_ID"} .
Notiz
Sie sollten die FireBase Admin SDK JSON -Anmeldeinformationsdatei aus Ihren Firebase -Projekteinstellungen erhalten. Wenn Sie noch kein Firebase -Projekt erstellt haben, können Sie dies hier tun: Firebase Console
Zum Einrichten und Erhalt Ihres Discord Bot -Tokens finden Sie außerdem das Portal des Discord -Entwicklers. Detaillierte Anweisungen zum Erstellen eines Bots und zur Einladung zu Ihrem Server finden Sie hier: Discord Developer Portal.
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
GOOGLE_APPLICATION_CREDENTIALS in der .env Ihres Share Store auf den Pfad der heruntergeladenen JSON -Tastendatei ein. Wir begrüßen Beiträge zum Share Store! Wenn Sie loslegen, lesen Sie bitte unsere beitragenden Richtlinien und befolgen Sie die Anweisungen zum Einreichen von Problemen und Anfragen.
Bitte lesen Sie unseren Verhaltenskodex, um unsere Erwartungen an Teilnehmer und Mitwirkende zu verstehen.