Share Store는 백엔드 용 Django 및 Python을 사용하여 구축 된 웹 기반 파일 공유 및 스토리지 응용 프로그램이며, 프론트 엔드 용 JavaScript 및 Bootstrap입니다. Python 및 JavaScript를 사용한 CS50의 웹 프로그래밍을위한 최종 프로젝트입니다. 이 프로젝트에는 단일 앱 '드라이브'가 포함되어 있습니다.
Share Store를 사용하면 사용자가 해당 파일에 대한 액세스 권한을 등록, 로그인, 파일 업로드 및 관리 할 수 있습니다. 사용자는 자신의 파일을 특정 개인과 공유하거나 모든 사람이 액세스 할 수 있도록 할 수 있습니다. 또한 사용자는 다른 사람이 공유하는 파일을 볼 수 있습니다. Share Store는 파일 저장 및 검색에 Firebase Storage를 사용합니다. 사용자 인증, 파일 업로드/다운로드, 액세스 제어, 암호 변경 및 계정 삭제와 같은 기능을 제공하여 다용도 파일 공유 플랫폼이됩니다.
프로젝트 데모
(college lecture slides in my case) 를 자동화하는 새로운 기능으로 플랫폼을 향상 시켰습니다. 이제 사용자가 계정에서 특정 키워드 (예 : 수학 또는 TOC와 같은 강의 이름 또는 주제)가 포함 된 파일을 업로드 할 때이 파일은 환경 변수에 지정된대로 지정된 불일치 채널로 자동 전송됩니다. 이 통합은 수동 파일 전송이 필요하지 않으며 시간을 절약하고 컨텐츠가 관련 불일치 커뮤니티와 즉시 공유되도록합니다.스크린 샷
메모
아래의 스크린 샷은 Discord 통합 기능, 특히 BOT가 Discord 서버의 지정된 스레드/채널에 파일을 게시하는 방법을 보여줍니다. 이 기능은 "Maths": "maths thread/channel ID" 포함하여 수학 관련 파일을 적절한 불화 위치로 지시하는 등 CHANNEL_MAPPINGS 구성에 의해 트리거됩니다.
프로젝트 데모 비디오는 조금 오래 되었으므로이 기능을 보여주지 않습니다.

static/drive : 액세스 권한을 처리하기위한 JavaScript, 응용 프로그램 로고 및 스타일을위한 스타일 시트가 포함되어 있습니다.
templates/drive : 웹 페이지 렌더링을 담당하는 HTML 템플릿이 포함되어 있습니다.
firebase.py : FireBase Admin SDK를 초기화하고 FireBase 스토리지에 대한 참조를 만듭니다.
models.py : File , User 및 Share 포함하여 응용 프로그램의 데이터 모델을 정의합니다.
tests.py : 파일, 공유 및 사용자 생성을위한 데이터베이스 테스트가 포함되어 있습니다.
urls.py : '드라이브'앱의 URL 패턴을 정의합니다.
utils.py : 외부 URL에서 가져온 파일을 반복하기위한 유틸리티 함수가 포함되어 있습니다.
views.py : 주택은 http 요청을 처리하고 웹 페이지 렌더링 방법을 정의하는 기능을 봅니다.
discord_integration.py : 불화 API를 사용하여 특정 기준을 기반으로 파일을 지정된 불화 채널로 업로드하는 자동화를 관리합니다.
requirements.txt : 프로젝트에 필요한 외부 Python 패키지 및 종속성을 나열합니다.
참고 : Firebase 프로젝트를 작성 하고이 프로젝트의 JSON 서비스 계정 키 파일을 찾는 방법에 대한 간단한 안내서가 마지막에 제공됩니다.
가상 환경 생성 (선택 사항) : 가상 환경 내에서 작업하는 것을 선호하는 경우 (격리에 권장)를 작성하고 활성화 할 수 있습니다. 프로젝트 디렉토리로 이동하여 다음 명령을 실행하십시오.
# 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이 설치되어 있는지 확인하십시오. 프로젝트 디렉토리로 이동하여 requirements.txt 에 나열된 필수 파이썬 패키지를 설치하십시오. pip 사용 하여이 작업을 수행 할 수 있습니다.
pip install -r requirements.txt
.env 파일 작성 : 프로젝트 디렉토리에서 .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."
이러한 각 변수는 응용 프로그램에서 데이터베이스 연결, 불화와 통합 및 Firebase 서비스 구성과 같은 특정 목적을 제공합니다.
팁
더 많은 하위 문자열을 찾으려면 CHANNEL_MAPPINGS 환경에 매핑을 추가하기 만하면 다음과 같습니다. CHANNEL_MAPPINGS={"substring_1": "Channel_ID_1", "substring_2": "Channel_ID_2", "additional_substring": "Additional_Channel_ID"} .
메모
Firebase 프로젝트 설정에서 Firebase Admin SDK JSON 자격 증명 파일을 얻어야합니다. Firebase 프로젝트를 아직 만들지 않았다면 여기에서 그렇게 할 수 있습니다 : Firebase Console
또한 Discord Bot Token을 설정하고 얻으려면 Discord Developer Portal을 참조하십시오. 봇 생성 및 서버에 초대하는 자세한 지침은 여기에서 찾을 수 있습니다 : 불화 개발자 포털.
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
.env 파일에서 GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 다운로드 된 JSON 키 파일의 경로로 설정하십시오. 우리는 Share Store에 대한 기여를 환영합니다! 시작하려면 기고 가이드 라인을 읽고 문제를 제출하고 요청을 가져 오는 지침을 따르십시오.
참가자와 기고자에 대한 우리의 기대치를 이해하려면 행동 강령을 읽으십시오.