Share Store adalah aplikasi berbagi file dan penyimpanan berbasis web yang dibangun menggunakan Django dan Python untuk backend, dan javascript dan bootstrap untuk frontend. Ini adalah proyek akhir untuk pemrograman web CS50 dengan Python dan JavaScript. Proyek ini berisi satu aplikasi 'drive'.
SHARE STORE memungkinkan pengguna untuk mendaftar, masuk, mengunggah file, dan mengelola izin akses untuk file -file tersebut. Pengguna dapat berbagi file mereka dengan individu tertentu atau membuatnya dapat diakses oleh semua orang. Selain itu, pengguna dapat melihat file yang dibagikan dengan mereka oleh orang lain. Bagikan toko menggunakan penyimpanan firebase untuk penyimpanan file dan pengambilan. Ini menyediakan fitur seperti otentikasi pengguna, unggahan/unduhan file, kontrol akses, perubahan kata sandi, dan penghapusan akun, menjadikannya platform berbagi file yang serba guna.
Demo proyek
(college lecture slides in my case) untuk menyangkal. Sekarang, ketika pengguna mengunggah file yang berisi kata kunci tertentu (misalnya, nama kuliah atau topik seperti matematika atau TOC) dari akun mereka, file -file ini secara otomatis dikirim ke saluran perselisihan yang ditunjuk, sebagaimana ditentukan dalam variabel lingkungan. Integrasi ini menghilangkan kebutuhan akan transfer file manual, menghemat waktu dan memastikan bahwa konten segera dibagikan dengan komunitas Discord yang relevan.Tangkapan layar
Catatan
Tangkapan layar di bawah ini menunjukkan fitur Integrasi Perselisihan, khususnya bagaimana Bot memposting file ke utas/saluran yang ditunjuk di server Discord Anda. Fungsionalitas ini dipicu oleh konfigurasi CHANNEL_MAPPINGS , seperti memasukkan "Maths": "maths thread/channel ID" untuk mengarahkan file terkait matematika ke lokasi perselisihan yang sesuai.
Project Demo Video agak lama, jadi tidak menampilkan fitur ini.

static/drive : Berisi JavaScript untuk menangani izin akses, logo aplikasi, dan stylesheet untuk gaya.
templates/drive : Berisi templat HTML yang bertanggung jawab untuk merender halaman web.
firebase.py : Menginisialisasi Firebase Admin SDK dan membuat referensi untuk penyimpanan Firebase.
models.py : Menentukan model data untuk aplikasi, termasuk File , User , dan Share .
tests.py : Termasuk tes database untuk membuat file, saham, dan pengguna.
urls.py : Menentukan pola URL untuk aplikasi 'drive'.
utils.py : berisi fungsi utilitas untuk mengulangi file yang diambil dari URL eksternal.
views.py : Rumah melihat fungsi yang menangani permintaan HTTP dan menentukan bagaimana halaman web diberikan.
discord_integration.py : Mengelola otomatisasi pengunggahan file ke saluran perselisihan yang ditentukan berdasarkan kriteria tertentu, menggunakan API Discord.
requirements.txt : Daftar paket python eksternal dan dependensi yang diperlukan untuk proyek.
Catatan: Panduan singkat tentang cara membuat proyek Firebase dan menemukan file kunci akun layanan JSON untuk proyek ini diberikan di akhir.
Buat lingkungan virtual (opsional) : Jika Anda lebih suka bekerja dalam lingkungan virtual (disarankan untuk isolasi), Anda dapat membuat dan mengaktifkannya. Arahkan ke direktori proyek Anda dan jalankan perintah berikut:
# 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 Instal Persyaratan : Pastikan Anda menginstal Python di sistem Anda. Arahkan ke direktori proyek Anda dan instal paket Python yang diperlukan yang tercantum dalam requirements.txt . Anda dapat melakukan ini menggunakan pip :
pip install -r requirements.txt
Buat file .env : Buat file bernama .env di direktori proyek Anda. Di file .env, tambahkan baris berikut, mengganti nilai placeholder dengan detail konfigurasi aktual Anda:
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."
Masing -masing variabel ini melayani tujuan tertentu dalam aplikasi Anda, seperti menghubungkan ke basis data, mengintegrasikan dengan perselisihan, dan mengkonfigurasi layanan firebase.
Tip
Jika Anda ingin mencari lebih banyak substring, cukup tambahkan pemetaan di variabel lingkungan CHANNEL_MAPPINGS seperti So: CHANNEL_MAPPINGS={"substring_1": "Channel_ID_1", "substring_2": "Channel_ID_2", "additional_substring": "Additional_Channel_ID"} .
Catatan
Anda harus mendapatkan file kredensial Firebase Admin SDK JSON dari pengaturan proyek Firebase Anda. Jika Anda belum membuat proyek Firebase, Anda dapat melakukannya di sini: Firebase Console
Selain itu, untuk mengatur dan mendapatkan token bot perselisihan Anda, lihat portal pengembang Discord. Instruksi terperinci untuk membuat bot dan mengundangnya ke server Anda dapat ditemukan di sini: Portal Pengembang Perselisihan.
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
GOOGLE_APPLICATION_CREDENTIALS di file .env toko saham Anda ke jalur file kunci json yang diunduh. Kami menyambut kontribusi untuk berbagi toko! Untuk memulai, silakan baca pedoman yang berkontribusi dan ikuti instruksi untuk mengirimkan masalah dan tarik permintaan.
Harap baca kode perilaku kami untuk memahami harapan kami untuk peserta dan kontributor.