Share Store-это веб-приложение для обмена файлами и хранением, созданное с использованием Django и Python для бэкэнда, а также JavaScript и начальная загрузка для Frontend. Это последний проект для веб -программирования CS50 с Python и JavaScript. Этот проект содержит одно приложение «диск».
Share Store позволяет пользователям регистрировать, входить в систему, загружать файлы и управлять разрешениями доступа для этих файлов. Пользователи могут делиться своими файлами с конкретными людьми или сделать их доступными для всех. Кроме того, пользователи могут просматривать файлы, общие с ними другими. Share Store использует Firebase Storage для хранения и поиска файлов. Он предоставляет такие функции, как аутентификация пользователей, загрузка/загрузку файлов, управление доступа, изменение пароля и удаление учетной записи, что делает его универсальной платформой обмена файлами.
Проект Демо
(college lecture slides in my case) . Теперь, когда пользователи загружают файлы, содержащие определенные ключевые слова (например, имена лекций или темы, такие как Math или TOC), из своих учетных записей, эти файлы автоматически отправляются в назначенный канал дискордов, как указано в переменных среды. Эта интеграция устраняет необходимость в ручной передаче файлов, экономя время и обеспечение того, чтобы контент был незамедлительно совместно распространен с соответствующим сообществом Discord.Скриншоты
Примечание
Приведенный ниже скриншот демонстрирует функцию интеграции Discord, в частности, как BOT публикует файлы в указанный поток/канал на вашем сервере 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 для приложения «Drive».
utils.py : содержит функцию утилиты для итерации над файлами, извлеченными из внешних URL -адресов.
views.py : Домашние функции просмотра, которые обрабатывают HTTP -запросы и определяют, как отображаются веб -страницы.
discord_integration.py : управляет автоматизацией загрузки файлов в указанный канал Discord на основе определенных критериев, используя API Discord.
requirements.txt : перечисляет внешние пакеты Python и зависимости, необходимые для проекта.
Примечание. Краткое руководство о том, как создать проект Firebase, и найти файл ключа учетной записи JSON Service для этого проекта, приведен в конце.
Создайте виртуальную среду (необязательно) : если вы предпочитаете работать в виртуальной среде (рекомендуется для изоляции), вы можете создать и активировать ее. Перейдите в свой каталог проектов и запустите следующие команды:
# 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. Перейдите к своему каталогу проектов и установите необходимые пакеты Python, перечисленные в requirements.txt . Вы можете сделать это с помощью pip :
pip install -r requirements.txt
Создайте .env file : создайте файл с именем .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 , например, SO: CHANNEL_MAPPINGS={"substring_1": "Channel_ID_1", "substring_2": "Channel_ID_2", "additional_substring": "Additional_Channel_ID"} .
Примечание
Вы должны получить файл учетных данных Firebase Admin SDK JSON из настройки проекта Firebase. Если вы еще не создали проект Firebase, вы можете сделать это здесь: Консоль Firebase
Кроме того, для настройки и получения токена бота Discord обратитесь к порталу разработчиков Discord. Подробные инструкции по созданию бота и приглашения на ваш сервер можно найти здесь: портал Discord Developer.
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
GOOGLE_APPLICATION_CREDENTIALS в файле вашего .env Share Store на путь загруженного файла ключа JSON. Мы приветствуем взносы в Share Store! Чтобы начать, прочитайте наши рекомендации по содействию и следуйте инструкциям по отправке вопросов и запросов.
Пожалуйста, прочитайте наш Кодекс поведения, чтобы понять наши ожидания для участников и участников.