Skip to content

Javadlavaei/ComputerScienceSociety

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

پروژه وب‌سایت انجمن علمی دانشگاه

این پروژه یک وب‌سایت انجمن علمی دانشگاهی است که با فریم‌ورک Django توسعه داده شده است. این وب‌سایت شامل بخش‌های مختلفی مانند مدیریت کلاس‌ها، وبلاگ، ثبت‌نام کاربران و... می‌باشد.

پیش‌نیازها

برای راه‌اندازی و اجرای این پروژه، نیاز به نصب موارد زیر دارید:

  • پایتون (نسخه 3.8 یا بالاتر)
  • pip (مدیر بسته‌های پایتون)
  • وابستگی‌های پروژه (در فایل requirements.txt)

راه‌اندازی پروژه

برای راه‌اندازی پروژه، مراحل زیر را دنبال کنید:

1. کلون کردن مخزن

git clone [آدرس مخزن]
cd [نام پوشه پروژه]

2. ایجاد و فعال‌سازی محیط مجازی پایتون

در سیستم‌عامل ویندوز:

python -m venv venv
venv\Scripts\activate

در سیستم‌عامل لینوکس/مک:

python -m venv venv
source venv/bin/activate

3. نصب وابستگی‌ها

pip install -r requirements.txt

4. اجرای مهاجرت‌های پایگاه داده

python manage.py migrate

5. ایجاد کاربر ادمین

python manage.py createsuperuser

6. اجرای سرور توسعه

python manage.py runserver

حالا می‌توانید به آدرس http://127.0.0.1:8000 در مرورگر خود دسترسی داشته باشید و وب‌سایت را مشاهده کنید.

وابستگی‌های پروژه

وابستگی‌های اصلی پروژه عبارتند از:

  • Django==4.2.9
  • Pillow==10.1.0 (برای مدیریت تصاویر)
  • jdatetime==4.1.1 (برای تبدیل تاریخ میلادی به شمسی)
  • django-debug-toolbar==4.2.0 (برای دیباگ)
  • django-jalali==6.0.1 (برای پشتیبانی از تقویم جلالی)

برای نصب همه وابستگی‌ها می‌توانید از فایل requirements.txt استفاده کنید.

ساختار پروژه

ساختار اصلی پروژه به شرح زیر است:

project/
├── accounts/            # اپلیکیشن مدیریت کاربران
├── blog/                # اپلیکیشن وبلاگ
├── classes/             # اپلیکیشن مدیریت کلاس‌ها
├── config/              # تنظیمات اصلی پروژه
├── home/                # اپلیکیشن صفحه اصلی
├── static/              # فایل‌های استاتیک (CSS, JS, images)
├── media/               # فایل‌های آپلود شده توسط کاربران
├── templates/           # قالب‌های پایه مشترک
├── venv/                # محیط مجازی پایتون (در .gitignore)
├── manage.py            # اسکریپت مدیریت جنگو
├── requirements.txt     # وابستگی‌های پروژه
└── README.md            # این فایل

ماژول‌های اصلی

accounts

مدیریت ثبت‌نام، ورود و پروفایل کاربران

blog

مدیریت پست‌های وبلاگی، دسته‌بندی‌ها و نظرات

classes

مدیریت کلاس‌ها، ثبت‌نام در کلاس‌ها و نظرات کلاس‌ها

home

صفحه اصلی و صفحات عمومی وب‌سایت

مسیرهای مهم

  • /admin/ - پنل مدیریت
  • / - صفحه اصلی
  • /accounts/login/ - صفحه ورود
  • /accounts/register/ - صفحه ثبت‌نام
  • /classes/ - لیست کلاس‌ها
  • /classes/detail/<slug>/ - جزئیات کلاس
  • /blog/ - لیست پست‌های وبلاگ
  • /blog/<slug>/ - جزئیات پست وبلاگ

ایجاد فایل requirements.txt

برای ایجاد فایل requirements.txt کامل، می‌توانید از دستور زیر استفاده کنید:

pip freeze > requirements.txt

تنظیمات دیتابیس

پیش‌فرض این پروژه استفاده از SQLite است، اما می‌توانید از دیتابیس‌های دیگر مانند PostgreSQL یا MySQL نیز استفاده کنید. برای این کار، تنظیمات DATABASES در فایل config/settings.py را ویرایش کنید.

تنظیمات فایل‌های استاتیک و مدیا

# در فایل settings.py
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

راه‌اندازی در محیط تولید

برای استقرار پروژه در محیط تولید، موارد زیر را در نظر بگیرید:

  1. تنظیم DEBUG = False در فایل settings.py
  2. تنظیم ALLOWED_HOSTS به دامنه‌های مجاز
  3. استفاده از وب‌سرور مانند Nginx یا Apache
  4. استفاده از Gunicorn یا uWSGI به عنوان WSGI server
  5. استفاده از دیتابیس قوی‌تر مانند PostgreSQL

نکات امنیتی

  1. هرگز کلید مخفی (SECRET_KEY) را در کد منبع عمومی قرار ندهید. از متغیرهای محیطی یا فایل‌های تنظیمات محلی استفاده کنید.
  2. اطمینان حاصل کنید که DEBUG = False در محیط تولید تنظیم شده است.
  3. از HTTPS استفاده کنید.
  4. اگر از Django Admin در محیط تولید استفاده می‌کنید، URL آن را تغییر دهید.

توسعه آینده

برخی از ایده‌ها برای توسعه آینده پروژه:

  • پشتیبانی از پرداخت آنلاین
  • سیستم ارسال اعلان‌ها
  • اضافه کردن API برای اپلیکیشن موبایل
  • بهبود سیستم جستجو

مشارکت

برای مشارکت در این پروژه، لطفاً یک درخواست pull ارسال کنید. برای تغییرات بزرگ، ابتدا یک issue باز کنید تا در مورد آنچه می‌خواهید تغییر دهید بحث کنیم.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages