Share Store es una aplicación de intercambio de archivos y almacenamiento basada en la web construida con Django y Python para el backend, y JavaScript y Bootstrap para el interfaz. Es el proyecto final para la programación web de CS50 con Python y JavaScript. Este proyecto contiene una sola aplicación 'unidad'.
Share Store permite a los usuarios registrarse, iniciar sesión, cargar archivos y administrar permisos de acceso para esos archivos. Los usuarios pueden compartir sus archivos con personas específicas o hacerlos accesibles para todos. Además, los usuarios pueden ver archivos compartidos con ellos por otros. Share Store emplea el almacenamiento de Firebase para el almacenamiento y la recuperación de archivos. Proporciona características como autenticación de usuario, carga/descarga de archivos, control de acceso, cambio de contraseña y eliminación de cuenta, lo que lo convierte en una plataforma versátil de intercambio de archivos.
Demostración del proyecto
(college lecture slides in my case) a Discord. Ahora, cuando los usuarios cargan archivos que contienen palabras clave específicas (por ejemplo, nombres de conferencias o temas como Math o TOC) de sus cuentas, estos archivos se envían automáticamente a un canal de discordia designado, como se especifica en las variables de entorno. Esta integración elimina la necesidad de transferencias de archivos manuales, ahorrando tiempo y garantizando que el contenido se comparta rápidamente con la comunidad de discordias relevante.Capturas de pantalla
Nota
La captura de pantalla a continuación demuestra la función de integración de Discord, específicamente cómo el bot publica los archivos en un hilo/canal designado en su servidor de discordias. Esta funcionalidad es activada por la configuración CHANNEL_MAPPINGS , como incluir "Maths": "maths thread/channel ID" para dirigir los archivos relacionados con las matemáticas a la ubicación de discordia apropiada.
El video de demostración del proyecto es un poco antiguo, por lo que no muestra esta función.

static/drive : contiene JavaScript para manejar los permisos de acceso, el logotipo de la aplicación y una hoja de estilo para el estilo.
templates/drive : Contiene plantillas HTML responsables de representar páginas web.
firebase.py : inicializa el SDK de administrador de Firebase y crea una referencia al almacenamiento de Firebase.
models.py : Define los modelos de datos para la aplicación, incluido File , User y Share .
tests.py : incluye pruebas de base de datos para crear archivos, acciones y usuarios.
urls.py : Define los patrones de URL para la aplicación 'Drive'.
utils.py : contiene una función de utilidad para iterar sobre archivos obtenidos de URL externos.
views.py : las casas vea las funciones que manejan las solicitudes HTTP y definen cómo se representan las páginas web.
discord_integration.py : administra la automatización de la carga de archivos a un canal de discordia especificado basado en ciertos criterios, utilizando la API de Discord.
requirements.txt : enumera los paquetes y dependencias de Python externos necesarios para el proyecto.
Nota: Al final se proporciona una breve guía sobre cómo crear un proyecto Firebase y encontrar el archivo de clave de cuenta de servicio JSON para este proyecto.
Cree un entorno virtual (opcional) : si prefiere trabajar dentro de un entorno virtual (recomendado para aislamiento), puede crear y activar uno. Navegue a su directorio de proyecto y ejecute los siguientes comandos:
# 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 Requisitos de instalación : asegúrese de tener Python instalado en su sistema. Navegue a su directorio de proyecto e instale los paquetes de Python requeridos enumerados en requirements.txt . Puedes hacer esto usando pip :
pip install -r requirements.txt
Crear archivo .env : cree un archivo llamado .env en su directorio de proyecto. En el archivo .env, agregue las siguientes líneas, reemplazando los valores del marcador de posición con sus detalles de configuración reales:
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."
Cada una de estas variables tiene un propósito específico en su aplicación, como conectarse a bases de datos, integrarse con Discord y configurar los servicios de Firebase.
Consejo
Si desea buscar más sustros, simplemente agregue la asignación en la variable de entorno CHANNEL_MAPPINGS como: CHANNEL_MAPPINGS={"substring_1": "Channel_ID_1", "substring_2": "Channel_ID_2", "additional_substring": "Additional_Channel_ID"} .
Nota
Debe obtener el archivo de credencial SDK JSON de Firebase Admin de su configuración del proyecto Firebase. Si aún no ha creado un proyecto de Firebase, puede hacerlo aquí: Firebase Console
Además, para configurar y obtener su token Bot Discord Bot, consulte el portal del desarrollador de Discord. Las instrucciones detalladas para crear un bot e invitarlo a su servidor se pueden encontrar aquí: Discord Developer Portal.
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
GOOGLE_APPLICATION_CREDENTIALS en el archivo .env de su tienda compartido en la ruta del archivo de clave JSON descargado. ¡Agradecemos contribuciones a Share Store! Para comenzar, lea nuestras pautas contribuyentes y siga las instrucciones para enviar problemas y extraer solicitudes.
Lea nuestro código de conducta para comprender nuestras expectativas para los participantes y colaboradores.