Share Store est une application de partage de fichiers et de stockage basée sur le Web construite à l'aide de Django et Python pour le backend, et javascript et bootstrap pour le frontend. Il s'agit du projet final de la programmation Web de CS50 avec Python et JavaScript. Ce projet contient un seul «lecteur» d'application.
Share Store permet aux utilisateurs de s'inscrire, de se connecter, de télécharger des fichiers et de gérer les autorisations d'accès pour ces fichiers. Les utilisateurs peuvent partager leurs fichiers avec des personnes spécifiques ou les rendre accessibles à tous. De plus, les utilisateurs peuvent afficher les fichiers partagés avec eux par d'autres. Share Store utilise un stockage de bas de base pour le stockage de fichiers et la récupération. Il fournit des fonctionnalités telles que l'authentification des utilisateurs, le téléchargement / téléchargement de fichiers, le contrôle d'accès, le changement de mot de passe et la suppression du compte, ce qui en fait une plate-forme de partage de fichiers polyvalente.
Démo du projet
(college lecture slides in my case) à Discord. Désormais, lorsque les utilisateurs téléchargent des fichiers contenant des mots clés spécifiques (par exemple, des noms de conférence ou des sujets comme les mathématiques ou les TOC) à partir de leurs comptes, ces fichiers sont automatiquement envoyés à un canal Discord désigné, comme spécifié dans les variables d'environnement. Cette intégration élimine le besoin de transferts de fichiers manuels, de gagner du temps et de s'assurer que le contenu est rapidement partagé avec la communauté Discord pertinente.Captures d'écran
Note
La capture d'écran ci-dessous montre la fonction d'intégration Discord, en particulier la façon dont le bot publie des fichiers à un thread / canal désigné sur votre serveur Discord. Cette fonctionnalité est déclenchée par la configuration CHANNEL_MAPPINGS , telles que l'inclusion "Maths": "maths thread/channel ID" pour diriger les fichiers liés aux mathématiques à l'emplacement de discorde approprié.
La vidéo de démonstration du projet est un peu ancienne, donc elle ne présente pas cette fonctionnalité.

static/drive : contient JavaScript pour gérer les autorisations d'accès, le logo de l'application et une feuille de style pour le style.
templates/drive : Contient des modèles HTML responsables du rendu des pages Web.
firebase.py : initialise le SDK Admin Firebase et crée une référence au stockage Firebase.
models.py : définit les modèles de données pour l'application, y compris File , User et Share .
tests.py : comprend des tests de base de données pour la création de fichiers, de partages et d'utilisateurs.
urls.py : définit les modèles d'URL pour l'application «Drive».
utils.py : contient une fonction utilitaire pour itérer les fichiers obtenus à partir des URL externes.
views.py : Houses Affichez les fonctions qui gèrent les demandes HTTP et définissent comment les pages Web sont rendues.
discord_integration.py : gère l'automatisation du téléchargement de fichiers sur un canal Discord spécifié en fonction de certains critères, en utilisant l'API Discord.
requirements.txt : répertorie les packages et dépendances Python externes requis pour le projet.
Remarque: Un bref guide sur la façon de créer un projet Firebase et de trouver le fichier clé du compte de service JSON pour ce projet est donné à la fin.
Créez un environnement virtuel (facultatif) : Si vous préférez travailler dans un environnement virtuel (recommandé pour l'isolement), vous pouvez en créer un et en activer un. Accédez à votre répertoire de projet et exécutez les commandes suivantes:
# 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 Installer les exigences : assurez-vous que Python soit installé sur votre système. Accédez à votre répertoire de projet et installez les packages Python requis répertoriés dans requirements.txt . Vous pouvez le faire en utilisant pip :
pip install -r requirements.txt
Créez un fichier .env : créez un fichier nommé .env dans votre répertoire de projet. Dans le fichier .env, ajoutez les lignes suivantes, en remplaçant les valeurs d'espace réservé par vos détails de configuration réels:
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."
Chacune de ces variables sert un objectif spécifique dans votre application, comme la connexion aux bases de données, l'intégration à Discord et la configuration des services de base de base.
Conseil
Si vous souhaitez rechercher plus de sous-chaînes, ajoutez simplement le mappage dans la variable d'environnement CHANNEL_MAPPINGS comme: CHANNEL_MAPPINGS={"substring_1": "Channel_ID_1", "substring_2": "Channel_ID_2", "additional_substring": "Additional_Channel_ID"} .
Note
Vous devez obtenir le fichier d'identification JSON SDK Firebase Admin à partir de vos paramètres de projet Firebase. Si vous n'avez pas déjà créé de projet Firebase, vous pouvez le faire ici: Console Firebase
De plus, pour la configuration et l'obtention de votre jeton Discord Bot, reportez-vous au portail Discord Developer. Des instructions détaillées pour créer un bot et l'inviter à votre serveur peuvent être trouvées ici: Discord Developer Portal.
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
GOOGLE_APPLICATION_CREDENTIALS dans le fichier .env de votre magasin de partage sur le chemin d'accès du fichier de clé JSON téléchargé. Nous accueillons des contributions à Share Store! Pour commencer, veuillez lire nos directives de contribution et suivre les instructions pour soumettre des problèmes et les demandes de traction.
Veuillez lire notre code de conduite pour comprendre nos attentes pour les participants et les contributeurs.