A Share Store é um aplicativo de compartilhamento de arquivos e armazenamento baseado na Web criado usando Django e Python para o back-end, e JavaScript e Bootstrap para o front-end. É o projeto final para a programação da Web do CS50 com Python e JavaScript. Este projeto contém um único aplicativo 'unidade'.
O Share Store permite que os usuários se registrem, faça login, envie arquivos e gerencie permissões de acesso para esses arquivos. Os usuários podem compartilhar seus arquivos com indivíduos específicos ou torná -los acessíveis a todos. Além disso, os usuários podem visualizar os arquivos compartilhados com eles por outras pessoas. A Share Store emprega o Firebase Storage para armazenamento e recuperação de arquivos. Ele fornece recursos como autenticação do usuário, upload/download de arquivos, controle de acesso, alteração de senha e exclusão de contas, tornando-o uma plataforma versátil de compartilhamento de arquivos.
Demonstração do projeto
(college lecture slides in my case) para discórdias. Agora, quando os usuários enviam arquivos contendo palavras -chave específicas (por exemplo, nomes de palestras ou tópicos como matemática ou TOC) de suas contas, esses arquivos são enviados automaticamente para um canal Discord designado, conforme especificado nas variáveis do ambiente. Essa integração elimina a necessidade de transferências manuais de arquivos, economizando tempo e garantindo que o conteúdo seja prontamente compartilhado com a comunidade discordada relevante.Capturas de tela
Observação
A captura de tela abaixo demonstra o recurso de integração do Discord, especificamente como o bot publica arquivos em um thread/canal designado no seu servidor Discord. Essa funcionalidade é acionada pela configuração CHANNEL_MAPPINGS , como a inclusão de "Maths": "maths thread/channel ID" para direcionar arquivos relacionados à matemática para o local apropriado da discórdia.
O vídeo da demonstração do projeto é um pouco antigo, por isso não mostra esse recurso.

static/drive : contém JavaScript para lidar com permissões de acesso, o logotipo do aplicativo e uma folha de estilo para estilo.
templates/drive : contém modelos HTML responsáveis por renderizar páginas da web.
firebase.py : inicializa o Firebase Admin SDK e cria uma referência ao armazenamento do Firebase.
models.py : define modelos de dados para o aplicativo, incluindo File , User e Share .
tests.py : inclui testes de banco de dados para criar arquivos, compartilhamentos e usuários.
urls.py : define padrões de URL para o aplicativo 'drive'.
utils.py : contém uma função de utilidade para iterar os arquivos extraídos a partir de URLs externos.
views.py : As casas visualizam funções que lidam com solicitações HTTP e definem como as páginas da web são renderizadas.
discord_integration.py : gerencia a automação do upload de arquivos para um canal Discord especificado com base em determinados critérios, utilizando a API do Discord.
requirements.txt : lista os pacotes e dependências de Python externos necessários para o projeto.
Nota: Um breve guia sobre como criar um projeto Firebase e encontrar o arquivo de chave da conta de serviço JSON para este projeto é fornecido no final.
Crie um ambiente virtual (opcional) : se você preferir trabalhar em um ambiente virtual (recomendado para isolamento), pode criar e ativar um. Navegue até o diretório do seu projeto e execute os seguintes 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 Instale requisitos : verifique se você está instalado no seu sistema. Navegue até o diretório do seu projeto e instale os pacotes Python necessários listados no requirements.txt . Você pode fazer isso usando pip :
pip install -r requirements.txt
Criar arquivo .env : crie um arquivo chamado .env no diretório do seu projeto. No arquivo .env, adicione as seguintes linhas, substituindo os valores de espaço reservado por seus detalhes de configuração reais:
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 uma dessas variáveis serve a um objetivo específico em seu aplicativo, como conectar -se a bancos de dados, integração à discórdia e configurar serviços do FireBase.
Dica
Se você deseja procurar mais substringas, basta adicionar o mapeamento na variável de ambiente CHANNEL_MAPPINGS como assim: CHANNEL_MAPPINGS={"substring_1": "Channel_ID_1", "substring_2": "Channel_ID_2", "additional_substring": "Additional_Channel_ID"} .
Observação
Você deve obter o arquivo de credencial JSON de Admin SDK JSON do Firebase Admin a partir das configurações do projeto Firebase. Se você ainda não criou um projeto Firebase, pode fazê -lo aqui: Console do Firebase
Além disso, para configurar e obter o seu token de bot de discórdia, consulte o portal do Discord Developer. Instruções detalhadas para criar um bot e convidá -lo ao seu servidor podem ser encontradas aqui: Portal do Discord Developer.
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
GOOGLE_APPLICATION_CREDENTIALS no arquivo .env da sua loja de ações no caminho do arquivo de chave JSON baixado. Congratulamo -nos com contribuições para compartilhar a loja! Para começar, leia nossas diretrizes contribuintes e siga as instruções para enviar questões e obter solicitações.
Leia nosso código de conduta para entender nossas expectativas para os participantes e colaboradores.