Share Store เป็นแอปพลิเคชันการแชร์และจัดเก็บข้อมูลบนเว็บที่สร้างขึ้นโดยใช้ Django และ Python สำหรับแบ็กเอนด์และ JavaScript และ Bootstrap สำหรับส่วนหน้า มันเป็นโครงการสุดท้ายสำหรับการเขียนโปรแกรมเว็บของ CS50 ด้วย Python และ JavaScript โครงการนี้มีแอพเดียว 'ไดรฟ์'
Share Store อนุญาตให้ผู้ใช้ลงทะเบียนเข้าสู่ระบบอัปโหลดไฟล์และจัดการสิทธิ์การเข้าถึงสำหรับไฟล์เหล่านั้น ผู้ใช้สามารถแบ่งปันไฟล์ของพวกเขากับบุคคลเฉพาะหรือทำให้ทุกคนสามารถเข้าถึงได้ นอกจากนี้ผู้ใช้สามารถดูไฟล์ที่แชร์โดยผู้อื่น Share Store ใช้ที่เก็บข้อมูล Firebase สำหรับการจัดเก็บไฟล์และการดึงข้อมูล มันมีคุณสมบัติเช่นการรับรองความถูกต้องของผู้ใช้การอัปโหลด/ดาวน์โหลดไฟล์การควบคุมการเข้าถึงการเปลี่ยนรหัสผ่านและการลบบัญชีทำให้เป็นแพลตฟอร์มแบ่งปันไฟล์อเนกประสงค์
การสาธิตโครงการ
(college lecture slides in my case) เป็น Discord ตอนนี้เมื่อผู้ใช้อัปโหลดไฟล์ที่มีคำหลักเฉพาะ (เช่นชื่อการบรรยายหรือหัวข้อต่างๆเช่นคณิตศาสตร์หรือ TOC) จากบัญชีไฟล์เหล่านี้จะถูกส่งไปยังช่อง Discord ที่กำหนดโดยอัตโนมัติตามที่ระบุไว้ในตัวแปรสภาพแวดล้อม การรวมนี้ไม่จำเป็นต้องมีการถ่ายโอนไฟล์ด้วยตนเองประหยัดเวลาและทำให้มั่นใจได้ว่าเนื้อหาจะถูกแบ่งปันทันทีกับชุมชน Discord ที่เกี่ยวข้องภาพหน้าจอ
บันทึก
ภาพหน้าจอด้านล่างแสดงให้เห็นถึงคุณสมบัติการรวม Discord โดยเฉพาะวิธีที่ BOT โพสต์ไฟล์ไปยังเธรด/ช่องที่กำหนดบนเซิร์ฟเวอร์ Discord ของคุณ ฟังก์ชั่นนี้ถูกทริกเกอร์โดยการกำหนดค่า CHANNEL_MAPPINGS เช่นรวมถึง "Maths": "maths thread/channel ID" เพื่อส่งไฟล์ที่เกี่ยวข้องกับคณิตศาสตร์ไปยังตำแหน่ง Discord ที่เหมาะสม
วิดีโอสาธิตโครงการค่อนข้างเก่าดังนั้นจึงไม่แสดงคุณสมบัตินี้

static/drive : มี JavaScript สำหรับการจัดการสิทธิ์การเข้าถึงโลโก้ของแอปพลิเคชันและสไตล์ชีทสำหรับสไตล์
templates/drive : มีเทมเพลต HTML ที่รับผิดชอบในการแสดงผลหน้าเว็บ
firebase.py : เริ่มต้นผู้ดูแลระบบ Firebase SDK และสร้างการอ้างอิงถึงที่เก็บของ Firebase
models.py : กำหนดรูปแบบข้อมูลสำหรับแอปพลิเคชันรวมถึง File User และ Share
tests.py : รวมการทดสอบฐานข้อมูลสำหรับการสร้างไฟล์การแชร์และผู้ใช้
urls.py : กำหนดรูปแบบ URL สำหรับแอพ 'ไดรฟ์'
utils.py : มีฟังก์ชั่นยูทิลิตี้สำหรับการวนซ้ำผ่านไฟล์ที่ดึงมาจาก URL ภายนอก
views.py : บ้านดูฟังก์ชั่นที่จัดการคำขอ HTTP และกำหนดวิธีการแสดงผลหน้าเว็บ
discord_integration.py : จัดการระบบอัตโนมัติของการอัปโหลดไฟล์ไปยังช่อง Discord ที่ระบุตามเกณฑ์บางอย่างโดยใช้ Discord API
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 . txt คุณสามารถทำได้โดยใช้ pip :
pip install -r requirements.txt
สร้างไฟล์. ENV : สร้างไฟล์ชื่อ. ENV ในไดเรกทอรีโครงการของคุณ ในไฟล์. ENV ให้เพิ่มบรรทัดต่อไปนี้แทนที่ค่า placeholder ด้วยรายละเอียดการกำหนดค่าจริงของคุณ:
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 เช่น SO: CHANNEL_MAPPINGS={"substring_1": "Channel_ID_1", "substring_2": "Channel_ID_2", "additional_substring": "Additional_Channel_ID"}
บันทึก
คุณควรได้รับไฟล์ข้อมูลรับรองผู้ดูแลระบบ Firebase SDK JSON จากการตั้งค่าโครงการ Firebase ของคุณ หากคุณยังไม่ได้สร้างโครงการ Firebase คุณสามารถทำได้ที่นี่: Firebase Console
นอกจากนี้สำหรับการตั้งค่าและรับโทเค็นบอท Discord ของคุณให้ดูพอร์ทัลนักพัฒนา Discord คำแนะนำโดยละเอียดสำหรับการสร้างบอทและเชิญชวนไปยังเซิร์ฟเวอร์ของคุณสามารถดูได้ที่นี่: พอร์ทัลนักพัฒนา Discord
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
GOOGLE_APPLICATION_CREDENTIALS ในไฟล์. .env ของคุณไปยังเส้นทางของไฟล์คีย์ JSON ที่ดาวน์โหลด เรายินดีต้อนรับการมีส่วนร่วมในการแบ่งปันร้านค้า! ในการเริ่มต้นโปรดอ่านแนวทางการสนับสนุนของเราและทำตามคำแนะนำสำหรับการส่งปัญหาและการร้องขอการดึง
โปรดอ่านจรรยาบรรณของเราเพื่อทำความเข้าใจความคาดหวังของเราสำหรับผู้เข้าร่วมและผู้มีส่วนร่วม